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

来源:互联网 发布:九城软件多少钱 编辑:程序博客网 时间:2024/04/28 23:54

环境: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”目录。