DB2数据库可以备份整个数据库,也可以备份其中的一个或多个表空间;可以在应用连接到数据库时和事务正在处理时进行备份(这称为联机备份),也可以在没有任何应用连接到数据库时进行备份(这称为脱机备份)。(见表一)
DB2数据库使用命令BACKUP来备份。BACKUP命令需要SYSADM,SYSCTRL或SYSMAINT的权限,其命令语法为:
BACKUP DATABASE 数据库别名 TO 介质名
或者
BACKUP DATABASE 数据库别名 TABLESPACE 表空间名 [ONLINE} TO 介质名
其中介质名一般指定为介质的绝对路径,在 AIX 中不回转的磁带机设备名为 /dev/rmt0,回转的磁带机设备名为 /dev/rmt0.n 。也可将数据备份在硬盘上,介质名即为其绝对路径。
以下是 BACKUP 命令的一些例子:
(1)此例子是在指定的服务器目录 /backup/mydb 下给 mydb 数据库创建一个完整的备份:
BACKUP DATABASE mydb TO /backup/mydb
(2)此例子是给 mydb 数据库中指定的表空间 myspace1 进行联机备份,在进行备份时,应用可继续更新数据库:
BACKUP DATABASE mydb TABLESPACE myspace1 ONLINE TO /backup/mydb
rmt*.1是回绕设备,所以备份时可以用:
CODE:
backup db sample to /dev/rmt0.1 buffer 500
backup db sample to /dev/rmt0.1 buffer 500
backup db sample to /dev/rmt0.1 buffer 500
.
.
backup db sample to /dev/rmt0.1 buffer 500
backup db sample to /dev/rmt0.1 buffer 500
.
.
若查看有几个备份,各个备份都有多大,可以用:
CODE:
tctl -f /dev/rmt0 rewind
tcopy /dev/rmt0
tcopy /dev/rmt0
也可以:
CODE:
tctl -f /dev/rmt0 rewind
db2ckbkp -H /dev/rmt0.1 (检查第一个备份)
tctl -f /dev/rmt0 fsf 1
db2ckbkp -H /dev/rmt0.1 (检查第二个备份)
db2ckbkp -H /dev/rmt0.1 (检查第一个备份)
tctl -f /dev/rmt0 fsf 1
db2ckbkp -H /dev/rmt0.1 (检查第二个备份)
查看磁带上的文件
tar tvf /dev/rmt0
若想恢复:
CODE:
tctl -f /dev/rmt0 rewind
restore db sample from /dev/rmt0.1 buffer 500(恢复第一个)
tctl -f /dev/rmt0 rewind
tctl -f /dev/rmt0 fsf 1
restore db sample from /dev/rmt0.1 buffer 500(恢复第二个)
restore db sample from /dev/rmt0.1 buffer 500(恢复第一个)
tctl -f /dev/rmt0 rewind
tctl -f /dev/rmt0 fsf 1
restore db sample from /dev/rmt0.1 buffer 500(恢复第二个)
CODE:
backup db sample to /dev/rmt0.1 buffer 500
backup db sample to /dev/rmt0.1 buffer 500
backup db sample to /dev/rmt0.1 buffer 500
.
.
backup db sample to /dev/rmt0.1 buffer 500
backup db sample to /dev/rmt0.1 buffer 500
.
.
若查看有几个备份,各个备份都有多大,可以用:
CODE:
tctl -f /dev/rmt0 rewind
tcopy /dev/rmt0
tcopy /dev/rmt0
也可以:
CODE:
tctl -f /dev/rmt0 rewind
db2ckbkp -H /dev/rmt0.1 (检查第一个备份)
tctl -f /dev/rmt0 fsf 1
db2ckbkp -H /dev/rmt0.1 (检查第二个备份)
db2ckbkp -H /dev/rmt0.1 (检查第一个备份)
tctl -f /dev/rmt0 fsf 1
db2ckbkp -H /dev/rmt0.1 (检查第二个备份)
查看磁带上的文件
tar tvf /dev/rmt0
若想恢复:
CODE:
tctl -f /dev/rmt0 rewind
restore db sample from /dev/rmt0.1 buffer 500(恢复第一个)
tctl -f /dev/rmt0 rewind
tctl -f /dev/rmt0 fsf 1
restore db sample from /dev/rmt0.1 buffer 500(恢复第二个)
restore db sample from /dev/rmt0.1 buffer 500(恢复第一个)
tctl -f /dev/rmt0 rewind
tctl -f /dev/rmt0 fsf 1
restore db sample from /dev/rmt0.1 buffer 500(恢复第二个)
没有评论:
发表评论