lchl0388 发表于 2016-11-17 08:05:22

DB2备份和复原数据库(复原失败找不到log文件的解决方案)

  环境:db2 v8.1.7.455

  要求:备份数据库,并利用备份重新建立一个新的数据库
  

  1、备份。可以使用命令backup或者利用控制中心界面操作(数据库上右键菜单中有备份功能),命令格式如下

BACKUP DATABASE db_name TO destination_path
  

  2、复原。可利用命令restore或者利用控制中心界面操作(数据库上右键菜单中有复原功能),命令格式大致如下

restore db db_name from destination_path taken at 20010320122644
  

  出现的问题:在复原时会失败,主要问题是找不到相应的log文件
  

  3、解决方案:
  (1)数据库日志记录有两种模式,循环日志和归档日志,默认为循环日志。当复原时找不到log一般情况为必须把数据库的日志记录设置为归档模式,具体操作如下
  (2)断开数据库,执行命令

terminate


(3)修改日志模式为归档模式,首先建立一个目录,如d:\db_name\archive,执行如下命令
UPDATE DB CFG FOR db_name USING LOGARCHMETH1 "Disk:d:\db_name\archive"


(4)连接数据库
connect to db_name
  这时将导致连接不上,信息一般如下

连接失败并显示以下错误消息:
  SQL1116N A connection to or activation of database db_name cannot be made because of backup pending: SQLSTATE=57019



(5)出现错误消息的原因是,日志模式已经从循环更改为归档,并且需要执行完全数据库备份。数据库处于循环日志模式时执行的备份并不充分,因此当切换模式后需要执行新备份。执行如下命令备份数据库
BACKUP DATABASE db_name TO destination_path


(6)在尝试连接数据库,成功了  (7)这时再复原数据库成功了,这里需要注意设置刚才log的验证目录,就是我们建立的那个“d:\db_name\archive”目录。
页: [1]
查看完整版本: DB2备份和复原数据库(复原失败找不到log文件的解决方案)