设为首页 收藏本站
查看: 1226|回复: 0

[经验分享] DB2数据库备份及恢复操作

[复制链接]

尚未签到

发表于 2016-11-19 03:43:19 | 显示全部楼层 |阅读模式
  一、创建数据库及表
  --创建数据库,数据库名为maxdb7;
create database maxdb7;
  --连接数据库
connect to maxdb7;
  --建表 表名为test1
create table test1(
id    integer  not null,
name    varchar(20),
email    varchar(20),
primary key(id)
);

  --插入数据
insert into test1 values(1,'one','one@hikescom.com');
insert into test1 values(2,'two','two@hikescom.com');
insert into test1 values(3,'three','three@hikescom.com');
  --提交
commit;
  二、offline备份及恢复
  2.1、offline备份
  --首先要断开当前服务器链接
connect reset;

  --离线备份,指定备份存放的地址,备份之后会返回一个时间戳
backup db maxdb7 to d:\DB2\backup\
  2.2、数据恢复
  --恶意删除数据库
drop database maxdb7;

  --恢复备份
restore db maxdb7 from d:\DB2\backup taken at 20100720120756;
  --其中201007201207561是备份的时间戳,可以在备份文件名中找到

  --然后再连接数据库并查询表test1可以得到结果
connect to maxdb7;
select * from test1;






  三、online备份及恢复
  3.1、online备份
  --连接
connect to maxdb7;

  --修改数据库参数,使之支持在现联机备份
update db cfg for maxdb7 using logretain on trackmod on;
  --此时会提示:对于这些配置参数,必须在所有应用程序都与此数据库断开连接之后,更改才会生效。
  --此时 ,也需要做一次数据库的全备份,否则不能联机备份,试过很多次必须要这样。
connect reset;
backup db maxdb7 to d:\DB2\backup1\;
  --然后在连接数据库,做在线备份

connect to maxdb7;

  --指定归档日志的存放路径
update db cfg using logarchmeth1 disk:d:\DB2;


  --插入几条数据
insert into test1 values(4,'four','eight@hikescom.com');

insert into test1 values(5,'five','nine@hikescom.com');

  insert into test1 values(6,'six’,'six@hikescom.com');
  --提交
commit;

  --数据库on备份
  à完全备份:备份所有数据库
backup db maxdb7 online to d:\DB2\backup1\
  à增量备份:备份与上次完全备份以来更改过的数据
backup db maxdb7 online incremental to d:\DB2\backup1\
  àdelta备份:备份自最近以来最近一次备份更改过的数据
backup db maxdb7 online incremental delta to d:\DB2\backup1\

  à这里可以指定并行数,缓冲区数目还有每个缓冲区的大小,例如指定并行数为2,缓冲区数目为4,缓冲区大小为1024,则进行delta备份的话为:
backup db maxdb7 online incremental delta to d:\DB2\backup1\ with 2 buffers buffer 1024 parallelism 4 without prompting;

  3.2、备份恢复
  --恶意删除库,以此来进行数据库恢复
drop db maxdb7;

  --数据库恢复
restore db maxdb7 from d:\DB2\backup1 taken at 20100720140108;

  --前滚数据库,并指定归档日志位置,这个很重要,因为此时如果去连接数据库根本连不上

rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2");

  --结果
  ------------------------------ 输入的命令 ------------------------------
rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2");
------------------------------------------------------------------------------
rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2")

                                   前滚状态

   输入数据库别名                      = maxdb7
   节点数已返回状态                = 1

   节点号                                = 0
   前滚状态                                    = 未暂挂
   下一个要读取的日志文件          =
   已处理的日志文件                = S0000002.LOG - S0000002.LOG
   上次落实的事务                  = 2010-07-20-07.39.13.000000 UTC

  DB20000I  ROLLFORWARD 命令成功完成。


  ok,此时online数据恢复完成,试着做个测试

  connect maxdb7; --此时连接到 maxdb7没问题了。

  Select * from test1;--查询结果如下:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302199-1-1.html 上篇帖子: DB2 pureScale在线备份恢复实例1 下篇帖子: DB2报“数据库日志已满”问题解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表