db2数据库备份和恢复

  • 格式:txt
  • 大小:4.32 KB
  • 文档页数:2

db2 "insert into t1(c1,c2) values(1,'offline test')"
db2 "select * from t1"
db2 backup db testdb to "/home/db2inst1/dbbackup"
db2 restore db testdb from "/home/db2inst1/dbbackup"
db2 restore db testdb continue
前滚数据库,使之可用
db2 rollforward db testdb to end of logs and complete
db2 connect to testdb
db2 "select * from t2"
增量备份,注意添加了incremental参数。增量备份后注意备份日至文件。
4.1手工还原增量备份的数据库。
先还原增量备份的数据库。
db2 restore db testdb incremental from /dbbackup/" taken at 20111103154729
还原后要前滚数据库。
db2 "rollforward db testdb to end of logs and complete overflow log path ('/home/db2inst1/dbdata/dbbackup/logs/')"
连接数据库。
4.2自动还原增量备份的数据库。
用automatic参数自动还原增量备份的数据库。
备份数据库,然后模拟灾难删除数据库。
db2 backup db testdb to "/home/db2inst1/dbdata/dbbackup"
备份的时候不包含online的话,不用备份日志也可以恢复。完全备份没有日志也可以恢复到最小状态。属于空前滚。
db2 drop db testdb
还原数据库。
路径就是日志文件所在的路径。
4、数据库的增量备份以及恢复。
增量备份即使备份变动过的数据。增量备份有两种,分别是:incremental(备份上次完全备份以来备份变动过的数据)、detal(备份上次备份以来备份变动过的数据)
db2 update db cfg testdb using TRACKMOD on
5、数据库表空间重定向的恢复。
在不同机器上的表空间的位置会有所不同。如果要修改表空间的位置就要用到表空间的重定向。
建议常规表空间。
db2 "create regular tablespace tb4k pagesize 4 k managed by database using ( FILE '/home/db2inst1/dbdata/tb4k' 5000 ) bufferpool IBMDEFAULTBP"
db2 connect to testdb
db2 "insert into t1(c1,c2) values(2,'online test')"
db2 backup db testdb online to "/home/db2inst1/dbdata/dbbackup"
在线备份后需要把日志文件也备份出现,方法是用db2 get db cfg for testdb 找出参数,并且找到Path to log files 。把制定目录下的日至拷贝出来。
1、数据库离线备份和在线备份的差别。
离线备份的数据库日志是循环使用的(超过参数配置的值);而在线数据库的日志是不循环使用的。
2、离线备份数据库。
db2 create db testdb
db2 connect to testdb
db2 "create table t1(c1 int,c2 varchar(50))"
增量备份还原以后就需要还原完全的备份。
db2 restore db testdb incremental from "/home/db2inst1/dbdata/dbbackup/" taken at 20111103154652
再次还原增量的备份。
db2 restore db testdb incremental from "/home/db2inst1/dbdata/dbbackup/" taken at 20111103154729
db2 restore db testdb incremental automatic from "/home/db2inst1/dbdata/dbbackup/" taken at 20111103154729
还原后要前滚日志。LOGPRIMARY表示有多少个活动日至,其他的就是归档日至。
db2 "rollforward db testdb to end of logs and complete overflow log path ('/home/db2inst1/dbdata/dbbackup/logs/')"
db2 restore db testdb from '/home/db2inst1/dbdata/dbbackup/' taken at 20111103153018
此时数据库是无法使用的,因为处在了pending状态。应该用日志把数据库回滚到备份的时的可用状态。
db2 "rollforward db testdb to end of logs and complete overflow log path ('/home/db2inst1/dbdata/dbbackup/logs/')"
参数修改后需要完全备份一次。
db2 backup db testdb to "/home/db2inst1/dbdata/dbbackup"
db2 connect to testdb
db2 "insert into t1(c1,c2) values(3,"incremetal test")"
db2 backup db testdb incremental to "/home/db2inst1/dbdata/dbbackup/"
在制定表空间上创建一个新表。
db2 "create table t2(c1 int,c2 varchar(50))" in tb4k
在表中插入一条数据。
db2 "insert into t2(c1,c2) values(4,'tablespace test')"
5.1 现在要将数据库的表空间转移到其他的路径。统一存储。
3、在线备份数据库。
db2 update db cfg for testdb using LOGRETAIN on
db2 terminate //断开数据库的所有连接.
db2 connect to testdb
//在修改参数后数据库处于backup pending状态。需要重新完全备份一次。
db2 backup db testdb
db2 restore db testdb from '/home/db2inst1/dbdata/dbbackup' taken at redirect
redirect参数
db2 set tablespace containers for 4 using ( FILE '/home/db2inst1/dbdata/tb4k2' 5000 )

下载文档原格式

  / 2