DB2数据库备份与恢复
db2 backup指令

db2 backup指令摘要:1.背景介绍2.db2 backup 指令概述3.db2 backup 指令的使用方法3.1 基本备份3.2 差异备份3.3 完全备份4.备份文件的存储与处理5.备份策略与建议6.常见问题及解决方案正文:DB2 是一个广泛应用于企业级数据库管理的系统,数据的备份与恢复是保证数据安全的重要环节。
本文将详细介绍db2 backup 指令的使用方法及注意事项。
1.背景介绍DB2 是IBM 公司开发的一款关系型数据库管理系统,广泛应用于企业级环境。
为了防止数据丢失,备份是必不可少的操作。
本文将详细介绍db2 backup 指令的使用方法。
2.db2 backup 指令概述DB2 backup 指令用于对数据库进行备份。
通过使用该指令,可以将整个数据库或者选定的数据表空间备份到磁盘或者磁带上。
根据备份的目的和需求,可以设置不同的备份类型,如完全备份、差异备份和增量备份。
3.db2 backup 指令的使用方法3.1 基本备份基本备份(full backup)是指将整个数据库备份一次。
使用db2 backup 指令进行基本备份的语法如下:```db2 backup database database_name```其中,`database_name`为需要备份的数据库名称。
3.2 差异备份差异备份(differential backup)是指备份自上次完全备份以来发生更改的数据。
使用db2 backup 指令进行差异备份的语法如下:```db2 backup database database_name plus archivelog```其中,`database_name`为需要备份的数据库名称。
3.3 完全备份完全备份(full backup)是指将整个数据库备份一次。
与基本备份的区别在于,完全备份可以包含所有数据和日志文件。
使用db2 backup 指令进行完全备份的语法如下:```db2 backup database database_name with full recovery```其中,`database_name`为需要备份的数据库名称。
DB2数据库恢复方法有哪些?

DB2数据库恢复方法有哪些?
大家都知道,现在我们生活中充斥着各种数据库,从简单的教学管理数据库再到企业大型数据库,我们不得不依赖数据库存储大量的重要信息,而一旦数据库出现丢失问题,会给用户带来十分惨重的损失。
DB2是IBM出品的一系列关系型数据库管理系统,分别在不同的操作系统UNIX,Windows Access,ORACLE平台上服务。
DB2数据库数据丢失问题也是比较常见的一个问题,今天我们就来看看如何对DB2数据库丢失数据进行恢复,希望能对大家有所帮助。
目前,DB2数据库恢复方式主要有三种:
1)崩溃恢复:保护数据库在事务(也称为工作单元)意外中断后不会处于不一致或不可用的状态。
2)版本恢复:指的是使用备份操作期间创建的映像来复原数据库的先前版本。
3)前滚恢复:可以用来重新应用创建备份后落实的事务所做的更改。
一般情况下,当DB2数据库中的表或者其他一些文件丢失后,用户可以直接通过数据库的备份文件进行恢复,这种方法不仅简单,还能有效保证数据库文件的安全,从这里大家就可以看出DB2数据库备份的重要性了。
可是,当DB2数据库文件丢失后,用户有没有及时对其进行备份,那么大家又该如何恢复呢?
其实,对于没有备份的DB2数据库,恢复工作还是可以进行的。
现在国内有很多数据恢复机构,这些机构可以针对各种设备出现的数据丢失损坏问题进行解决,进而帮助用户挽回数据丢失的损失。
DB2数据库的迁移备份

db2数据库迁移备份一、操作系统相同:(属于离线/脱机备份)在相同操作系统下进行DB2的备份还原,使用BACKUP 和RESTORE 命令解决。
Linux下,切换DB2用户即可;Windows下,运行db2cmd。
1、backup1.1、db2 force applications all (断开数据库连接)1.2、db2 backup db db_name to D:\ (备份至D盘根目录)2、restore2.1、db2 force applications all (断开数据库连接)2.2、db2 restore db db_name from D:\ taken at 20151212190026 (还原D盘根目录下时间戳为20151212190026的备份文件)2.3、db2 rollforward db db_name to end of logs and stop (前回滚操作)2.4、如果不能连接数据库,将刚恢复的数据库进行一次备份操作即可。
二、跨系统的数据迁移操作:DB2 提供了两个非常实用的工具:(将Windows下的test数据库迁移至Linux下的test)★数据迁移工具db2move★数据字典获取工具db2look1、Windows下导出数据:运行->输入db2cmd,使用db2move 命令将源数据库(TEST)数据信息导出至指定的文件夹D:\dbback\db2move\TEST 下(目录自建)D:> cd \dbback\db2move\TESTD:\dbback\db2move\TEST> db2move TEST export -sn test -u test01 -p 123456Ps:-sn指定表模式-u指定用户 -p对应密码执行导出,成功后会显示Disconnecting from database ... successful!2、Windows下导出结构:使用db2look 命令将数据库结构,导出至指定的文件夹D:\dbback\db2look\TEST下D:> cd \dbback\db2look\TESTD:\dbback\db2move\TEST> db2look -d TEST -e -a -o db2look_TEST.sqlPs:-d 为指定数据库,参数必须-e 抽取数据库对象的DDL,这个参数必须-a 所有的用户和模式(-u Creator :指定用户,有-a时,忽略-u) -a -u 都没有时,默认当前登录用户-o 指定输出文件名称3、Linux下导入结构:把刚才导出的D:\dbback\db2move 和D:\dbback\db2look文件夹上传到linux系统中★更新表结构:su - db2inst1:password:123456db2inst1@localhost:~> cd db2back/db2move/TESTdb2inst1@localhost:~/db2back/db2move/TEST> db2 CREATE db TESTundefineddb2inst1@localhost:~/db2back/db2move/TEST> db2 -tvf db2look_TEST.sql4、Linux下导入数据:★使用load 命令装载数据db2inst1@localhost:~> cd /db2home/db2inst1/db2back/db2move/TESTdb2inst1@localhost:~/db2back/db2move/TEST> db2move TEST load操作顺利的话,数据会被转移到linux下面。
DB2数据迁移、备份与恢复及联邦数据库使用操作命令

数据移动及实用工具跨平台移动数据,首选PC/IXF文件格式进行数据的导出,平台间数据传输使用二进制。
1.导出命令基本语法Export to <路径+文件名> OF <del | ixf | wsf>Lobs to <大对象文件路径> lobfile <大对象文件名>Modified <分隔符选项>Method n (<字段名列表>)Messages <消息文件>Select 子句Eg1. Export to d:\export\org.txt of del select * from orgEg2. Export to d:\export\org1.dat of del modified by chardel! Coldel# messages d:\export\org1_msg.txt select * from orgEg3. Export to d:\export\emp_resume1.del of del lobs to d:\export\ lobfile emp_resume_lob1 modified by lobsinfile select * from emp_resume2.导入命令基本语法Import from <路径+文件名> OF <del | ixf | wsf>Messages <消息文件><insert | insert_update | replace | replace_create | create>Into <目标表名称>Eg1. Import from d:\export\org.txt of del insert into orgEg2. Import from d:\export\org1.dat of del modified by chardel! Coldel# messages d:\export\org_im_msg.txt insert into orgEg3. Import from d:\export\emp_resume1.del of del lobs from d:\export\ modified by lobsinfile insert into emp_resumeEg4. Import from d:\export\staff.ixf of ixf commitcount 1 restartcount 2 insert into staffback 3.Load 命令的基本语法Load from <路径+文件名> OF <del | ixf | wsf>Messages <消息文件>[<insert |replace |terminate |restart>]Into <目标表名>[<copy yes |copy no |nonrecoverable>] [indexing mode <autoselect|rebuild |increamental>] Eg1. Load from d:\export\org.txt of del messages :\export\org_load_msg.txt replace into orgEg2. Load from d:\export\staff1.del of del insert into staffback for exception staffexp4.处理load导致的异常状况a)查看表的状态load query table <表名称>b)关闭完整性检查Set integrity for <表名称> <check |foreign key |all> immediate uncheckedc)处理表空间挂起状态,方法一:使用restart 模式重新load,成功则自动消除;方法二:使用terminate 模式的load 命令,强行终止load过程,并消除挂起状态。
DB2导入、导出、备份及恢复数据库等操作资料

$ db2 connect reset
说明:
1, 以上指令将会把数据库testdb备份到指定目录 /home/backup下,所以请确保当前登陆用户(db2inst1)对该目录有读写的权限。
题外话,若打算使用root用户来执行备份,请先编辑文件 /etc/group,将root用户加入到与DB2相关的几个组:db2grp1, db2fgrp1, dasadm1.
$ cd /home/movedata
$ db2move mytestdb import –u db2inst1 –p thepasswd
此时屏幕上会显示有关导入数据的信息。
存在的问题:
db2move import方式只能导入“普通”的表,如果表中存在自增长的IDENTITY列,那么使用db2move import时,会出错。这是因为,如果IDENTITY列创建表的时候都是定义成always的话,那么在导入数据的时候该列数据是不能被赋值的,而是 应该由系统生成,使用db2move无法导入这样的表。对于这种含有IDENTITY列的表,只能使用db2 import指令来进行导入,相关的参数是IDENTITYIGNORE,IDENTITYMISSING。我将在下一部分给出具体的指令操作。
建立到数据库的连接:
$ db2
db2 => connect to testdb user db2inst1 using thepasswd
以DEL格式导出:
db2 => export to /home/backup/mytbl.txt of del select * from mytbl
db2 => terminate
db2数据库备份和恢复步骤

db2数据库备份和恢复步骤DB2是一种关系型数据库管理系统(RDBMS),由IBM开发和提供。
备份和恢复数据库是DB2数据库管理中非常重要的一部分。
备份是指将数据库中的数据和日志文件复制到另一个位置,以防止数据丢失和灾难恢复。
恢复是指将备份的数据和日志文件恢复到最新的状态,以确保数据库的可用性和完整性。
下面是DB2数据库备份和恢复的基本步骤:备份步骤:1.准备备份存储目录:确定用于存储备份文件的目录,并确保目录具有足够的磁盘空间。
2.关闭数据库连接:关闭所有连接到数据库的应用程序和工具,以确保没有正在运行的事务和操作。
3.备份数据库:使用DB2提供的工具或命令执行数据库备份操作。
以下是几个备份命令的示例:- ONLINE BACKUP DATABASE <database_name> TO<backup_directory>:执行在线备份,允许在备份期间对数据库进行读写操作。
- OFFLOAD DATABASE <database_name> TO <backup_directory>:执行离线备份,将数据库置于只读模式,在备份期间禁止对数据库进行写操作。
4.备份日志文件:在执行完数据库备份后,需要备份数据库的日志文件。
这些日志文件包含了备份操作期间数据库的所有修改。
- ONLINE BACKUP DATABASE <database_name> TO<backup_directory> LOGS ONLY:执行日志文件备份操作。
5.验证备份:确保备份文件的完整性和有效性。
可以使用DB2提供的备份验证工具或命令进行验证。
- RESTORE DATABASE <database_name> VALIDATE:执行备份文件验证操作。
恢复步骤:1.准备恢复存储目录:确定用于存储恢复文件的目录,并确保目录具有足够的磁盘空间。
db2恢复数据库的三种方式(图文)

1.恢复数据库db2blzch到F盘(如果磁盘分区有F盘,可以执行此条,没有F盘,执行下条):注意:db2blzch为数据库名,f:\backup已备份的数据库目录,20101109212755为时间点。
如下图所示,时间点为20101109(目录名)+212755(文件名)。
db2 restore database db2blzch from f:\backup taken at 20101109212755执行结果如下图所示。
2.恢复数据库db2blzch到E盘db2 restore db db2BLZCH from E:\backup taken at 20101109212755 into db2BLZCH redirect without rolling forwarddb2 set tablespace containers for 0 ignore rollforward container operations using (path 'E:\db2BLZCH\db2BLZCH0')db2 set tablespace containers for 1 ignore rollforward container operations using (path 'E:\db2BLZCH\db2BLZCH1')db2 set tablespace containers for 2 ignore rollforward container operations using (path 'E:\db2BLZCH\db2BLZCH2')db2 set tablespace containers for 3 ignore rollforward container operations using (path 'E:\db2BLZCH\db2BLZCH3')db2 set tablespace containers for 4 ignore rollforward container operations using (path 'E:\db2BLZCH\db2BLZCH4')db2 set tablespace containers for 5 ignore rollforward container operations using (path 'E:\db2BLZCH\db2BLZCH5')3.恢复db2blzch为另一个数据库名称db2test首先在E盘下建立db2test目录,在db2test目录下依次建目录DB2TEST0,DB2TEST1,DB2TEST2,DB2TEST3,DB2TEST4,DB2TEST5。
db2用户密码修改及数据库备份恢复问题

db2用户密码修改及数据库备份恢复问题2008-09-19 18:20前天开始安装省总服务器,先建数据库,又打包程序进行安装,一切按部就班,很是顺利,可最后程序总是连不上数据库,用以下命令进行测试:catalog tcpip node local remote localhost server 5000(db2-port-number)catalog db sample as test at node localconnect to test user <用户名> using最后总是提示:SQL30081N 检测到通信错误。
正在使用的通信协议:"TCP/IP"。
正在使用的通信API:"SOCKETS"。
检测到错误的位置:"127.0.0.1"。
检测到错误的通信函数:"recv"。
协议特定的错误代码:"10054"、"*"、"0"。
SQLSTATE=08001又是30081N错误!!!一遍遍的检查端口、TCP/IP协议、网络连接,一切都正常!没有办法,只好重新装数据库,用restore恢复备份的数据库时,系统总是提示:在本地数据库目录或系统数据库目录中已经存在数据库别名 "HD" ,到网上搜了一下按别的人提示进行以下操作:用命令行:首先db2 list db directory 来查看有没有HD的entry没有看到有HD的信息还是执行了一下db2 drop db HD如果数据库没有删除的话,则此命令应该成功,否则的话就应该用下面这个命令uncatalog db HD来删除HD的 entry,但是提示报‘SQL1013N 找不到数据库别名或数据库名 "HD "。
SQLSTATE=42705’错误,。
郁闷,接着又按网上别人的说法进行以下操作:db2 catalog db HDdb2 drop db HD然后在执行restore database HD taken at 时间戳命令,OK,成功!不过,程序仍是连不上数据库,后来终于想起来,估计是我恢复的数据库密码跟我新建的数据库密码不一致所造成的,那么在DB2中针对db2admin用户,它的密码能修改吗?有关资料上说:db2admin用户创建了以后它的密码最好不要修改,因为重新启动系统之后就会连不上数据库,系统报错DB2管理服务器没有启动,这是因为注册系统服务的时候是按照DB2安装时候的用户名和密码进行注册的,所以你修改密码后系统服务就没有办法启动,所以才会造成这种情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DB2数据库备份与恢复
1.备份
下列操作均是在db2cmd窗口下执行的:
1.1离线备份(必须在数据库所在PC机进行操作)
STEP 1 连接到要备份的数据库
C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi
STEP 2 显示数据库应用状态
C:\Documents and Settings\Administrator>db2 list applications
页脚内容1
STEP 3 停掉数据库应用
C:\Documents and Settings\Administrator>db2 force applications all
注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。
此时可以再次执行db2 force applications all 命令。
页脚内容2
STEP 4 对数据库进行离线状态下的备份
C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup
注意:指定的备份文件的输出目录必须是已创建的,否则会报错。
STEP 5 查看备份历史记录
C:\Documents and Settings\Administrator>db2 list history backup all for ncc
页脚内容3
页脚内容4
页脚内容5
1.2在线备份
注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和
LOGRETAIN,将其
修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。
STEP 1 查看数据库当前的属性
C:\Documents and Settings\Administrator>db2 get db cfg
页脚内容6
STEP 2 设置userexit、logretain参数的状态为on
C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on
C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain on
注意:修改配置参数必须是数据库管理员,并且必须停掉全部应用后更改才会生效。
STEP 3 连接需要备份的数据库(注意)
注意:此时由于数据库处于backup pending状态,所以必须做一次离线的全备才可以进行数据库连接。
页脚内容7
STEP 4 对数据库进行在线状态下的备份
C:\Documents and Settings\Administrator>db2 backup database ncc online to d:\db2\backup
页脚内容8
页脚内容9
1.3增量备份
注意:必须要修改trackmod为
on状态,并有一次完全备份。
STEP 1 修改trackmod参数为on状态
C:\Documents and Settings\Administrator>db2 update db cfg for ncc using trackmod yes
STEP 2 停掉数据库应用
C:\Documents and Settings\Administrator>db2 force applications all
STEP 3 对数据库进行增量备份
C:\Documents and Settings\Administrator>db2 backup database ncc online increment
al delta to d:\db2\backup
注意:在进行增量备份之前需要做一次离线的全备。
否则是backup pending状态的。
如若此时并未执行一次离线的全备那么会出现下面的错误。
页脚内容10
故:
页脚内容11
2.恢复
2.1恢复完全备份
STEP 1 查看备份历史记录
C:\Documents and Settings\Administrator>db2 list history backup all for ncc
页脚内容12
页脚内容13
STEP 2 停掉数据库应用
C:\Documents and Settings\Administrator>db2 force applications all
STEP 3 恢复某个时间点的数据
C:\Documents and Settings\Administrator>db2 restore database ncc from d:\db2\backup taken at 20120206094204
STEP 4 回滚到日志结束(可不执行,即不恢复日志)
C:\Documents and Settings\Administrator>db2 rollforward database ncc to end of logs and stop
页脚内容14
2.2恢复增量备份STEP 1 连接数据库
C:\Documents and Settings\Administrator>
db2 connect to ncc user nccwykpi using
nccwykpi
STEP 2 显示数据库应用状态
C:\Documents and Settings\Administrator>db2 list applications
页脚内容15
STEP 3 停掉数据库应用
C:\Documents and Settings\Administrator>db2 force applications all
STEP 4 恢复增量备份
C:\Documents and Settings\Administrator>db2 restore database ncc incremental automatic from d:\db2\backup taken at 20120206133457
STEP 5 回滚到日志结束(可不执行,即不恢复日志)
C:\Documents and Settings\Administrator>db2 rollforward database ncc to end of logs and stop
页脚内容16
3.检查备份完整性
当备份完成后,使用db2ckbkp命令不仅可以用来检查DB2数据库备份文件的完整性,而且还可以用来查询DB2数据库备份文件的元数据。
同时可以使用db2ckbkp –h<备份文件>来检查DB2数据库备份的类型。
3.1使用db2ckbkp –h<备份文件>命令来查看DB2数据库备份的类型
C:\Documents and
Settings\Administrator>db2ckbkp -h
d:\db2\backup\NCC.0.DB2.NODE0000.CATN0000.20120206133232.001
页脚内容17
注意:我们可以通过上述输出中的
来确定备份的类型。
三个关键字的说明如下:
页脚内容18
incremental和delta的说明如下:
3.2回滚日志
当回滚日志找不到日志文件而出错时,数据库处于roll-forward pending状态,此时不能连接或激活数据库。
解决方案如下:
页脚内容19
3.3数据库恢复
如果一个数据库启用了归档日志记录,那么当该数据库被恢复时,它将自动被置于rollforward pending状态。
可以使用如下命令告诉DB2不要将该数据库置于rollforward pending状态。
C:\Documents and Settings\Administrator>restore database ncc from d:\db2\backup taken at 20120206151346 without rolling forward
如果数据库启用了归档日志记录,处于rollforward pending状态,此时连接数据库将会提示
页脚内容20
分项工程施工质量验收记录
此时可使用如下命令使数据库状态恢复正常
此时再执行连接数据库即可连接成功。
页脚内容21。