暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
db2针对误删表恢复.docx
217
4页
2次
2023-03-14
5墨值下载
DB2
误删表恢复
对于误删表的恢复,
DB2
在不同情况下,有几种不同的处理方法
误删表恢复
非归档模式 只能恢复到过去某个备份时间点的数据
归档模式
基于时间点的数据库不完全恢复,库恢复到删除表的前一刻,导出表
数据,导入到生产库。
如果库数据量很大的情况下,可能比较慢
归档模式
基于误删表所在表空间的恢复
相对来说恢复数据量小
前提条件:
1
需要表空间启用
dropped table recovery
选项(默认启用)
$ db2 "select TBSPACE,DROP_RECOVERY from SYSCAT.TABLESPACES"
2
、存在至少表空间一级的备份介质(当然有全库的备份也可以)
表的逻辑备份 只能恢复到表逻辑备份时刻
基于表误删操作恢复,
db2
不如
oracle
功能强大
基于表空间恢复误删表实验
实验概述:
数据库归档开启,且日志不能丢失
数据库
TEST11
中存在表
t1
t4
所在表空间为
SP1
。在做一次全备之后,误删除了表
t1.
何恢复表
t1
, 其能不影响和丢失
t4
和其他表空间数据(
t2
实验操作:
查看表数据
$ db2 "select count(*) from t1"
89
$ db2 "select count(*) from t4"
12
$ db2 "select count(*) from t2"
624
查询表所属表空间
$ db2 "select tabname, tbspace from syscat.tables"|grep -E '^T1'
……
.
……
.
t1
t4
所属表空间
USERSPACE1
t2
所属表空间
USERSPACE1
执行数据库备份
$ db2 backup database TEST11 online to /home/db2inst1/back include logs
$ ls /home/db2inst1/back
TEST11.0.db2inst1.DBPART000.20230314163905.001
再次插入数据
…………………
手动归档日志
db2 archive log for db test11
此时数据量
$ db2 "select count(*) from t1"
178
$ db2 "select count(*) from t4"
16
删除表
t1
$ db2 "drop table t1"
$ db2 "select count(*) from t1"
SQL0204N "DB2INST1.T1" is an unde?ned name. SQLSTATE=42704
查看历史文件中关于删除表的信息
$ db2 list history dropped table all for test11
Backup ID
id 000000002e006a7000070036
Ddl
就是创建表的语句,下面用到
of 4
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜