DB2数据库备份与恢复副本.docx
《DB2数据库备份与恢复副本.docx》由会员分享,可在线阅读,更多相关《DB2数据库备份与恢复副本.docx(20页珍藏版)》请在冰豆网上搜索。
DB2数据库备份与恢复副本
DB2数据库备份及恢复操作手册
目录
一、创建数据库及表2
二、offline备份及恢复2
2.1、offline备份2
2.2、数据恢复2
三、online备份及恢复3
3.1、online备份3
3.2、备份恢复4
四、GUI操作5
4.1、建库,打开控制中心5
4.2、建表并添加数据,参照下图:
6
4.3、备份。
参考图:
6
4.4、还原备份参考图:
7
首先设置归档参数
Java代码
1.db2 update db cfg for using mirrorlogpath /home/db2inst1/mirror_log/ //mirror log
2.db2 get db cfg for //确认是否成功
3.db2 update db cfg for using userexit on //启用用户出口
4.db2 update db cfg for using logretain on //启用归档日志
5.db2 update db cfg for using trackmod on //启用增量备份功能
6.db2stop force
7.db2start
8.db2 backup db to /home/db2inst1/off_back //
备份在线数据库
Java代码
1.db2 backup db online to /home/db2inst1/on_back/ //在线备份
2.db2 backup db online incremental to /home/db2inst1/on_back/ //在线做增量备份
3.db2 list history backup all for //查看备份记录
4.db2 get db cfg for //查看log所在位置,cp到一个安全目录,供rollforward使用。
5.db2stop force;db2start;db2 drop db //手工drop数据库,模拟灾难恢复的情况
恢复在线数据库
Db2代码
1.db2ckrst -d -t 20070608032820 -r database //帮助工具提示恢复
2.db2 restore db incremental from /home/db2inst1/on_back taken at 20070608032820 //恢复数据文件
3.先恢复完全备份,然后在恢复增量备份,不能自动寻找完全备份文件。
4.db2 rollforward database to end of logs and complete overflow log path '(/home/db2inst1/log)' //前滚日志有一点不认同:
“先恢复完全备份,然后在恢复增量备份”
5.对于增量恢复,你的做法正好反了,你这样做的话,会收到SQL2574N的错误信息。
6.在db2ckrst里面已经清楚的告诉你恢复的顺序。
7.下面是测试备份镜像中包日志的备份和恢复的步骤:
8.注:
/home/db2inst1/on_back/ #为备份文件位置
9./home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #为数据库的log位置,通过db2 get db cfg for 得到。
10.db2stop force;db2start;db2 drop db #模仿灾难发上,drop数据库。
11.db2 backup db online to /home/db2inst1/on_back/ include logs #备份带日志的镜像文件
12.db2 backup db online incremental to /home/db2inst1/on_back/ include logs #备份带日志的增量镜像文件
13.db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢复时间戳在20070612070526的数据镜像和日志文件
14.db2 rollforward database to end of logs and complete //回滚log日志
15.在“10”中已把数据库drop了,“20”中如何做online backup呢?
16.注:
/home/db2inst1/on_back/ #为备份文件位置
17./home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #为数据库的log位置,通过db2 get db cfg for 得到。
18.db2 backup db online to /home/db2inst1/on_back/ include logs #备份带日志的镜像文件
19.db2 backup db online incremental to /home/db2inst1/on_back/ include logs #备份带日志的增量镜像文件
20.db2stop force;db2start;db2 drop db #模仿灾难发上,drop数据库。
21.db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢复时间戳在20070612070526的数据镜像和日志文件
22.db2 rollforward database to end of logs and complete //回滚log日志
==================================================
以上为DB2的备份方式
以下介绍一下跨平台迁移DB2
=========================================
源数据库AIX平台+DB2目标平台LINUX
首先在源库导出库结构。
Db2代码
1.db2look -d dbname -e -o db2look.sql
然后导出源数据库DB2数据
Db2代码
1.db2move dbname export –u user –p password
其中db2move.lst记录所有导出的文件,可以进行编辑从而决定导入哪些数据表
然后在目标linux主机上建立DB2的新库,导入结构及数据、
Db2代码
1.db2 -tvf db2look.sql
2.db2move dbname import
一、创建数据库及表
--创建数据库,数据库名为jmam42;
db2createdatabasejmam42;
--连接数据库
db2connecttojmam42;
--建表表名为test1
db2 -tvf sql脚本文件名
例如db2–tvfscript1.sql–zscript1.log
在上面的命令中,
-t表示语句使用默认的语句终结符——分号;
-v表示使用冗长模式,这样DB2会显示每一条正在执行命令的信息;
-f表示其后就是脚本文件;
-z表示其后的信息记录文件用于记录屏幕的输出,方便以后的分析(这是可选的,但我们建议使用该选项)。
createtabletest1(
idintegernotnull,
namevarchar(20),
emailvarchar(20),
primarykey(id)
);
--插入数据
insertintotest1values(1,'one','one@');
insertintotest1values(2,'two','two@');
insertintotest1values(3,'three','three@');
--提交
commit;
Ø方法一:
点击桌面图标
。
Ø
方法二:
点击“开始”“所有程序”“QuestSoftware”“QuestCentralforDB2v4.8”“QuestCentralforDB2v4.8”(如下图);
点击打开出现下图界面,填写序列号;
再填写相关的网站信息;
输入数据库的用户名和密码登陆;
右击左侧树形栏内的“DB2(LOCAL)”选择“CreateDatabase”新建数据库;
输入数据库名称,选择安装路径;
点击“BuildScript”;
点击左上角第一个绿色箭头运行即可;
运行中;
运行完毕,显示执行成功完成,即数据库已建好,关闭此对话框即可;
点击已建好的数据库,填写用户名、密码登陆;
登陆成功,下一步即可运行建库脚本。
运行建库脚本
点击左上角“File”选择“New”;
弹出导入脚本对话框;
找到脚本文件夹;
(依据脚本依附关系,首先执行“net_db2.sql”,其次执行“mam_db2.sql”,再执行其他脚本,最后执行right_jsnet42.sql授权。
)
双击“net_db2.sql”打开,并全部选定;
将全选的脚本复制到导入脚本对话框中,点击左上角第一个绿色箭头执行即可;
执行中;
执行结束,并查看脚本是否执行成功;
关闭对话框。
其他脚本执行方法同上。
二、offline备份及恢复
2.1、offline备份
--首先要断开当前服务器链接
db2connectreset;
--离线备份,指定备份存放的地址,备份之后会返回一个时间戳
db2backupdbjmam42tod:
\DB2\backup\
2.2、数据恢复
--恶意删除数据库
db2dropdatabasejmam42;
--恢复备份
db2restoredbjmam42fromd:
\DB2\backuptakenat20100720120756;
--其中201007201207561是备份的时间戳,可以在备份文件名中找到
--然后再连接数据库并查询表test1可以得到结果
db2connecttojmam42;
select*fromtest1;
三、online备份及恢复
3.1、online备份
--连接
db2connecttojmam42;
--修改数据库参数,使之支持在现联机备份
db2updatedbcfgforjmam42usinglogretainontrackmodon;
--此时会提示:
对于这些配置参数,必须在所有应用程序都与此数据库断开连接之后,更改才会生效。
db2getdbcfgforjmam42//检查配置是否更改
--此时,也需要做一次数据库的全备份,否则不能联机备份,试过很多次必须要这样。
db2connectreset;
db2backupdbjmam42tod:
\DB2\backup1\;
--然后在连接数据库,做在线备份
db2connecttojmam42;
--指定归档日志的存放路径
db2updatedbcfgusinglogarchmeth1disk:
d:
\DB2;
--插入几条数据
insertintotest1values(4,'four','eight@');
insertintotest1values(5,'five','nine@');
insertintotest1values(6,'six’,'six@');
--提交
commit;
--数据库on备份
完全备份:
备份所有数据库
db2backupdbjmam42onlinetod:
\DB2\backup1\
增量备份:
备份与上次完全备份以来更改过的数据
db2backupdbjmam42onlineincrementaltod:
\DB2\backup1\
delta备份:
备份自最近以来最近一次备份更改过的数据
db2backupdbjmam42onlineincrementaldeltatod:
\DB2\backup1\
这里可以指定并行数,缓冲区数目还有每个缓冲区的大小,例如指定并行数为2,缓冲区数目为4,缓冲区大小为1024,则进行delta备份的话为:
db2backupdbjmam42onlineincrementaldeltatod:
\DB2\backup1\with2buffersbuffer1024parallelism4withoutprompting;
3.2、备份恢复
--恶意删除库,以此来进行数据库恢复
db2dropdbjmam42;
--数据库恢复
db2restoredbjmam42fromd:
\DB2\backup1takenat20100720140108;
--前滚数据库,并指定归档日志位置,这个很重要,因为此时如果去连接数据库根本连不上
db2rollforwarddatabasejmam42toendoflogsandcompleteoverflowlogpath("d:
\DB2");
--结果
------------------------------输入的命令------------------------------
rollforwarddatabasejmam42toendoflogsandcompleteoverflowlogpath("d:
\DB2");
------------------------------------------------------------------------------
rollforwarddatabasejmam42toendoflogsandcompleteoverflowlogpath("d:
\DB2")
前滚状态
输入数据库别名=jmam42
节点数已返回状态=1
节点号=0
前滚状态=未暂挂
下一个要读取的日志文件=
已处理的日志文件=S0000002.LOG-S0000002.LOG
上次落实的事务=2010-07-20-07.39.13.000000UTC
DB20000IROLLFORWARD命令成功完成。
ok,此时online数据恢复完成,试着做个测试
db2connectjmam42;--此时连接到jmam42没问题。
db2Select*fromtest1;--查询结果如下:
四、GUI备份及恢复操作
4.1、建库,打开控制中心
点此创建数据库,按照提示走即可。
4.2、建表并添加数据,参照下图:
按照提示走即可,无需太多介绍。
4.3、备份参考图:
按照提示一步步来吧,真没啥好说的。
注意的是:
在这里要选择备份的各种类型,依据用户的需求做出选择。
4.4、还原备份参考图:
需要还原的时候在工具里选择日志:
按照提示走就行如图:
点击鼠标邮件,选择复原,按照提示走就可以进行数据库恢复。