一、数据库与表空间备份
1、备份语法
2、详解
database-alias指定要备份的数据库的别名
username/using password指定备份数据库所使用的用户和用户密码
DBPARTITIONNUM db-partition-number1 指定要备份的数据库分区的列表
DBPARTITIONNUMS db-partition-number1 TO db-partition-number2指定备份数据库分区的范围
ALL DBPARTITIONNUMS备份所有的数据库分区
EXCEPT要排除备份的数据库分区
TABLESPACE tablespace-name指定要备份的表空间
ONLINE指定对数据库进行在线的备份,默认是离线备份
INCREMENTAL对数据库进行增量备份
DELTA对数据库进行Delta备份
TSM使用Tivoli Storage Manager做为备份设备
OPEN SESSIONS DB2与TSM或其他备份软件产品之间的IO会话数量
-注意与INCLUDE LOGS参数的协同使用
TO dir|dev 指定备份完成的数据文件所放置的路径或者设备
DEDUP_DEVICE如果使用数据复制的功能,此参数会优化备份文件在存储设备中的存储格式
BUFFER buffer-size DB2在备份过程中所占用的内存缓存大小,以4k为单位
PARALLELISM n备份过程中,可以并发备份的表空间数量
COMPRESS|ENCRYPT指定备份文件是使用压缩特征还是进行加密,两者不能同时使用
UTIL_IMPACT_PRIORITY priority指定备份操作的优先级
-可设置为1-100,1优先级最低,100优先级最高,默认是50
EXCLUDE LOGS指定备份过程中不备份日志文件
-对离线备份没有作用
INCLUDE LOGS指定备份过程中备份日志文件
-只针对在线备份有效
WITHOUT PROMPTING指定在备份过程中需不需要用户提供交互输入
3、备份文件的命名
数据库别名
-在调用备份实用程序时指定的,由1到8个字符组成的数据库别名
备份类型
-0表示完整的数据库级别备份
-3表示表空间级别的备份
-4表示由LOAD COPY YES命令生成的备份映像
实例名
-从DB2INSTANCE环境变量中提取的,由1到8个字符组成的当前实例名
数据库分区号
-在单一分区数据库环境中,分区号始终是DBPART000
-在分区数据库环境中,它是DBPARTXXX,其中XXX是db2node.cfg文件中对数据库分区指定的编号
时间戳
-执行备份操作时的日期和时间的14个字符表示法,该时间戳记得格式为yyyymmddhhnnss
序号
-用作文件扩展名的一个3位数字
4、示例
db2 backup database testdb
db2 backup database testdb online
db2 backup database testdb online include logs
db2 backup database testdb online to /tmp/db1,/tmp/db2,/tmp/db3
db2 "backup database testdb tablespace (syscatspace,userspace1) online to /tmp/db4"
db2 backup database testdb online incremental to /tmp/db5
db2 backup database testdb online incremental delta to /tmp/db6
5、其他备份补充
db2 backup database wsdb on all dbpartitionnums to /tmp/backup1
db2 backup database sample use tsm open 2 sessions with 4 buffers
db2 backup database wsdb on dbpartitionnums(1,2) tablespace(userspace1) online use TSM
二、检查备份的完整性
1、简述
db2ckbkp
-检查备份文件的一致性以及备份文件的可用性
-也可用于显示备份文件的元数据
2、示例
三、恢复历史记录文件
1、恢复历史记录文件的作用
包含当数据库的所有或部分必须恢复到给定时间点时,可用来确定恢复选项的备份信息的摘要
用来跟踪其他操作中与恢复相关的事件,如备份和复原操作
文件位于数据库目录中,文件名是DB2RHIST.ASC及其备份DB2RHIST.BAK
要查看恢复历史记录文件中的条目,可使用LIST HISTORY命令
2、更新恢复历史记录文件
备份了数据库或表空间
复原了数据库或表空间
前滚了数据库或表空间
自动重建了数据库,并且复原了多个映像
创建了表空间
改变了表空间
停顿表空间
重命名表空间
装入表
删除表(启用了恢复已废弃的表,并且你正在使用可恢复日志记录)
重组表
调用随需应变日志归档
写入新日志文件(使用可恢复日志记录时)
归档日志文件(使用可恢复日志记录时)
恢复数据库
复原数据库或表空间操作失败
3、恢复历史记录文件的语法
4、示例
db2 list history since 19980201 for sample
db2 list history backup containing userspace1 for sample
db2 list history drop table all for db sample
db2 list history all for sample
db2_all "db2 list history since 20010601 for sample"
db2 list history since 20091020163200 for database sample
5、恢复历史记录文件的内容
1、Operation
A -Create table space N -Rename table space
B -Backup O -Drop table space
C -Loadcopy Q -Quiesce
D -Drop table R -Restore
F -Rollforward T -Alter table space
G -Reorganize U -Unload
L -Load X -Archive log
2、Object
D -Database
I -Index
P -Table space
T -Table
R -Partitioned table
3、Type
Alter table space operation types:
-C -Add container
-R -Rebalance
Archive log operation types:
-F -Failover archive path
-M -Secondary (mirrot) log path
-N -Archive log command
Backup and restore operation types:
-D -Delta offline
-E -Delta online
-F -Offline
-I -Incremental offline
-M -Merged
-N -Online
-O -Incremental online
-R -Rebuild
-Z -Quiesce reset
四、数据库与表空间恢复
1、恢复语法
2、分区数据的还原
备份文件的信息
wsdb.0.db2inst1.DBPART000.200802241234.001
wsdb.0.db2inst1.DBPART001.200802241234.001
wsdb.0.db2inst1.DBPART002.200802241234.001
wsdb.0.db2inst1.DBPART003.200802241234.001
恢复方法
db2_all '<<+0< db2 restore database wsdb from /tmp/backup taken at 200802241234 into wsdb replace existing'
db2_all '<<+1< db2 restore database wsdb from /tmp/backup taken at 200802241234 into wsdb replace existing'
db2_all '<<+2< db2 restore database wsdb from /tmp/backup taken at 200802241234 into wsdb replace existing'
db2_all '<<+3< db2 restore database wsdb from /tmp/backup taken at 200802241234 into wsdb replace existing'
3、增量备份的还原
周日 backup db mydb use tsm
周一 backup db mydb online incremental delta use tsm
周二 backup db mydb online incremental delta use tsm
周三 backup db mydb online incremental use tsm
周四 backup db mydb online incremental delta use tsm
周五 backup db mydb online incremental delta use tsm
周六 backup db mydb online incremental use tsm
restore db mydb incremental automatic taken at (周五)
restore db mydb incremental taken at (周五)
restore db mydb incremental taken at (周日)
restore db mydb incremental taken at (周三)
restore db mydb incremental taken at (周二)
restore db mydb incremental taken at (周五)
4、前滚语法
前滚恢复的示例
backup db sample online to /dev3/backup include logs
restore db sample from /dev/backup logtarget /dev3/logs
rollforward db sample to end of logs and stop overflow log path /dev3/logs
五、示例
1、不完全恢复数据库
创建测试表
db2 "create table mytable(id int)"
插入测试数据
db2 "insert into mytable values(1)"
检查测试数据
db2 "select * from mytable"
在线备份数据库
db2 backup database testdb online
在测试表中插入测试数据
db2 "insert into mytable values(2)"
检查测试数据
db2 "select * from mytable"
查看备份信息
db2 list history all for testdb
恢复数据库
db2 restore database testdb taken at 20150520093424
前滚数据库
db2 rollforward database testdb to end of backup and complete
检查测试数据
db2 "select * from mytable"
#结果是表中只有1这一条数据
2、完全恢复数据库
在测试表中插入测试数据
db2 "insert into mytable values(2)"
在线备份数据库以及日志
db2 backup database testdb online include logs
查看备份信息
db2 list history all for testdb
恢复数据库
db2 restore database testdb taken at 20150520094119
前滚数据库
db2 rollforward database testdb to end of logs and complete
检查测试数据
db2 "select * from mytable"
#结果是表中有1,2这两条数据
3、恢复表空间
恢复某个表空间
db2 "restore database testdb tablespace (USERSPACE1) online taken at 20150521084143"
查看表空间状态
db2 list tablespace
前滚表空间(回滚前tablespace状态为Roll forward pending)
db2 "rollforward database testdb to end of logs and complete tablespace (USERSPACE1)"
查看表空间状态
db2 list tablespace
4、数据库的增量恢复
对数据库进行在线的全备份
db2 backup database testdb online include logs
对数据库进行增量备份
db2 backup database testdb online incremental include logs
检查数据库的备份信息
db2 list history all for testdb
恢复数据库
db2 restore database testdb incremental automatic taken at [timestamp]
前滚数据库
db2 rollforward database testdb to end of logs and complete