DB2日志归档与备份还原
- 格式:docx
- 大小:137.09 KB
- 文档页数:3
数据移动及实用工具跨平台移动数据,首选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是一种关系型数据库管理系统(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安装DB2数据库1)安装DB2前建议在Windows上创建一个叫db2admin的用户,其密码也为db2admin 2)安装成功后的服务如下图所示:3)平时可以把所有DB2的服务都停掉,运行DB2只需启动第一个服务,也就是上图中选定的服务即可,如果要做数据导入导出操作,还需要启动最后面一个服务。
2恢复1)解压缩CNCOA.0.rar到D盘,如下图所示:2)运行命令:db2cc,打开如下界面3)在上图的数据库上点右键-创建数据库-根据备份,打开如下界面:4)如上图,输入两个CNCOA,点下一步,打开如下图所示的界面:5)点完成按钮,将出现成功页面3备份1)在某个数据库上点击右键-备份,如下图所示:2)打开如下界面后,点下一步按钮:3)打开如下界面后,选择一个目录如D盘4)点完成按钮,将打开备份成功的界面,如下图5)检查备份文件,如下图4注意事项4.1未发出启动数据库管理器的命令如果是联机备份或者把DB28.1下的备份恢复到DB28.2,则可能恢复后会出现:SQL1032N 未发出启动数据库管理器的命令。
SQLSTA TE=57019。
此时数据库需要进行前滚操作,前滚的时候要选择日志所在的目录,类似D:\DB2\NODE0000\SQL00003\SQLOGDIR前滚的操作入口在备份的下面4.2Quest Central for DB2是个不错的DB2的客户端工具4.3建大表有可能会用到较长字段的列,如V ARCHAR(2000)类型的列,当有多个这样的列时,表会建不起来,此时需要建立有较大缓冲池的表空间,先建立缓冲池,如下图所示:再建立表空间,在数据库名称上点右键-表空间-创建,如下图所示:点完成,将把表空间建立起来,也可以用DB2的命令来建缓冲池和表空间:CREATE BUFFERPOOL EGOVDBBP IMMEDIATE SIZE 1000 PAGESIZE 32KCREATE REGULAR TABLESPACE EGOVDBSPACE PAGESIZE 32 K MANAGED BY DA TABASE USING ( FILE '/home/db2inst1/EGOVDBSPACE' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRA TE 0.33 BUFFERPOOL EGOVDBBPDROPPED TABLE RECOVERY OFF4.4大表排序时报错如果没有建有大的缓冲池的系统临时表空间,当大表要根据非主键列排序时会报错,参照上面建表空间的步骤,只是在选择要创建的表空间的类型时,选择“系统临时”。
DB2数据库的⽇志⽂件管理DB2数据库的⽇志⽂件管理DB2的⽇志模式1.1循环⽇志 当循环⽇志⽣效时,事务数据将通过循环的⽅式写⼊主要⽇志⽂件。
当存储于某个⽇志⽂件中的所有记录都不再需要⽤于时,该⽇志⽂件将被重⽤,并且可以在以后再次成为活动⽇志⽂件。
这意味着在循环⽇志模式中,⽇志⽂件的内容最终将被新⽇志条⽬重写。
由于⽇志⽂件的内容被重写覆盖了,因此我们只能将恢复到最后⼀次完整的数据库。
不能使⽤循环⽇志执⾏时间点(point-in-time)恢复。
1.2 归档⽇志 在归档⽇志模式中,redo log条⽬将写⼊主要⽇志⽂件。
但是,与循环⽇志不同,这些⽇志⽂件永远都不可重⽤。
当存储于某个⽇志⽂件中的所有记录都不再需要⽤于恢复时,该⽇志⽂件将被标记为⾮活动⽽不是可重⽤。
这意味着它的内容永远都不会被覆盖。
当第⼀个主要⽇志⽂件变满时,系统将分配⼀个新的⽇志⽂件,这样主要⽇志⽂件的配置数量(LOGPRIMARY数据库参数)将⼀直可⽤。
与单个事务相关的所有条⽬必须在活动⽇志空间中保持⼀致。
如果长时间运⾏的事务所需要的⽇志空间⼤于主要⽇志⽂件可以提供的空间,则可能会分配并使⽤次要⽇志⽂件。
在归档⽇志模式中,通过结合使⽤数据库备份映像和⽇志⽂件,我们可以将数据库恢复到具体的时间点。
有关此流程的详细描述请参见下⽂。
设置了归档模式后,数据库将⽀持前滚恢复。
此时,系统中将会存在三种类型的⽇志⽂件: 活动⽇志:该⽇志包含尚未提交或回滚的事务单元的相关信息,以及已提交但尚未写⼊数据库⽂件的事务的信息。
联机存档⽇志:活动⽇志中所有改动对正常处理已不需要,即该⽇志中所记录的事务都已提交并写⼊数据库⽂件时,该活动⽇志转换为联机存档⽇志。
称之为联机,是由于它们与活动⽇志存放在同⼀个⽬录下。
脱机存档⽇志:将联机存档⽇志从活动⽇志⽬录下Copy到另外的地⽅存档,就称为脱机存档⽇志。
这些⽇志可能在数据库前滚恢复的时候仍然需要。
(所谓联机归档⽇志,就是归档⽇志⽂件和活动⽇志⽂件同在⼀个⽬录下;⽽离线归档⽇志,则是归档⽇志与活动⽇志分开存放)管理数据库⽇志的⼯作可以⼿⼯完成(即将联机存档⽇志⼿⼯拷贝到某个archive⽬录),也可由编写USEREXIT程序⾃动维护。
如何恢复DB2中误删除表的数据1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。
db2 connect to dbname db2 update dbcfg using logretain on db2 backup dbdbname (当打开归档日志后,该数据库会处于rollforward pending状态,所以要做一次全备份)2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行: db2 "alter tablespace表空间名称 dropped table recovery on "3. 用 list history dropped table all for 数据库名得到删除表的tableid(例如0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。
之后,用drop命令删除的表中的数据可以在前滚恢复时导出。
db2 list history dropped table all for dbname4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to 目标目录。
在该目录下被删除的表中的数据导出。
利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。
db2 restoredbdbnametablespace(tablespacename) without rolling forward without prompting db2 "rollforwarddbdbname to end of logs and stop tablespace(tablespacename) recover dropped table table id to path " cd path 利用 db2 list history dropped table all for dbname查出的表结构生成语句生成被删除了的表 db2 import from data of del insert into tablename附一个具体的恢复步骤(以sample库为例):D:sample>db2 alter tablespace userspace1 dropped table recovery onDB20000I SQL 命令成功完成。
一、Db2数据库的备份和恢复 (2)1、备份数据库 (2)2、恢复数据库 (2)二、Db2数据库的导入与导出 (6)1、执行db2move 命令导出数据。
(6)2、执行db2move 命令导出数据。
(9)3、执行db2look 命令导出DDL文件。
(10)一、Db2数据库的备份和恢复1、备份数据库db2 backup db <数据库名> to <目录名>注:在备份前需断开所有与数据库的连接,断开连接后再备份.例:db2 force application alldb2 backup db sample to d:\db2_bk2、恢复数据库db2 restore db <数据库名> from <目录名>例:db2 restore db ncdb from d:\db2_bk将上面做的备份作恢复测试1)连接到sample数据库,模拟数据丢失,将数据库中的部分表删除。
2)将表删除3)执行db2 restore db sample from d:\db2_bk 恢复语句二、Db2数据库的导入与导出1、执行db2move 命令导出数据。
如:db2move <数据库名> export –tc <用户名> -u <用户名> -p 密码参数–tc 创建表的用户名-tn 用户的表名-sn 模式名即导出该模式下的所有表以上三个参数只适用于export命令1)如:导出数据库ncdb 的SM_USER表,表中有485条记录。
db2move ncdb export -tn SM_USER -u db2inst1 -p 1 使用-tn指定导出的表名如下:导出用户db2inst1的所有的表3)查看导出的备份集4)模拟SM_USER表数据丢失2、执行db2move 命令导入数据。
5)使用export出的逻辑数据集进行恢复执行db2move命令,导入表的结构及数据。
DB2 备份与恢复操作命令这里假设dbdemo1和dbdemo2是两个数据库名,两个实验主机名分别为A和B,其中A中安装版本较高的db2, B 中安装有版本较低的db2.下面是几个基本命令:db2启动/停止: db2start/db2stop(force)db2连接:db2 connect to <数据库名>db2cmd进入db2的命令提示窗口db2cc 进入db2控制中心图形化界面(无发打开时有可以尝试关闭javaw.exe进程)db2 list db directory列出已经创建的数据库目录同一台主机上数据库的备份与恢复:下面这条命令是将数据库dbdemo2备份到C 盘的dbdata文件夹目录中db2 backup db dbdemo2 to C:\dbdata这条命令运行成功会在C:\dbdata目录下生成一个如下格式的文件下面这条命令是用如上生成的备份文件对数据库dbdemo2进行恢复db2 restore db dbdemo2 from C:\dbdata taken at 20120109171220(直接取备份数据的时间戳即可)注意:恢复操作执行时,数据库dbdemo2可已存在也可以不存在,存在时会恢复到该时间戳对应的数据库数据版本,如果db2中不存在名为dbdemo2的数据库,则会自动生成一个名为dbdemo2的数据库,内容极为备份的原数据库的内容。
另外还能用db2move export/import命令操作对数据库进行导入导出以实现备份和恢复例如对于dbdemo2可以通过如下命令将数据库导出到指定目录例如E:\db2data通过命令行进入E:\db2data目录然后在该目录下执行如下命令db2move dbdemo2 export此时E:\db2data文件夹中即会生成dbdemo2数据库的导出文件要将数据库dbdemo2重新导入时,必须是导入已经存在的数据库中执行如下命令即可将之前备份的dbdemo2导入到新的dbdemo2数据库中,db2move dbdemo2 import(也可将备份的dedemo2导入其他另一个数据库如dbdemo3,结果跟下面一样)分别用dbdemo2_old和dbdemo2_new表示备份数据库和新数据库对于dbdemo2_new和dbdemo2_old中存在的同名表,dbdemo2_old的表会覆盖dbdemo2_new中存在的同名表的内容,但不会覆盖表的结构:例如dbdemo2_old中有表tdemo1 该表有c1这一个字段,且只有一个元组取值为1 dbdemo2_new中也有表tdemo1,但该表有c1,c2这两个字段,且有两个元组取值为1,a; 2,b 执行如上操作后dbdemo2_new中的表tdemo1会被覆盖,仍有c1,c2两个字段,但此时只有一个元组取值为1 ,null。
DB2数据库的备份第一步,通过远程桌面连接数据库服务器,点击开始 运行,输入db2cmd,打开DB2命令行窗口。
在服务器端,建立备份文件夹,例如C:\backup,将DB2命令行窗口的当前路径切换到刚建好的备份目录下(使用的命令cd ..)。
第二步,导出数据库的表的数据。
在切换好的目录下,输入如下命令db2move cdtdev1 export -sn db2admin -u db2admin -p db2admincdtdev1为数据库实例名-sn 指定要导出的模式名-u 指定导出所使用的用户-p 指定导出所使用用户的密码回车执行后,会在指定的备份目录下,创建很多.ixf和.msg,每张表都会产生2个文件,带lob文件的表会多一个.lob的文件。
此外还有EXPORT.out文件,记录了导出的日志,db2move.lst文件记录了,导出的表与导出文件的对应关系。
第三步,导出数据库表空间、表结构、索引、视图。
在命令行,输入如下命令db2look -d cdtdev1 -z db2admin -l -e -o cdtdev1.sql -i db2admin -w db2admin-d 指定导出的数据库实例名-z 指定导出数据库的模式名-l –e 固定参数1l--o 指定导出的文件名和文件格式-i 指定导出的用户名-w 指定导出的用户密码回车执行后,备份目录下会创建一个sql文件,里面记录了所有的表空间、表结构、视图、索引的创建语句。
将里面连接的语句修改,如下面修改CONNECT TO CDTDEV1 USER DB2ADMIN为CONNECT TO cdtdev1 USER db2admin USING db2admin;加上密码。
修改CONNECT RESET;CONNECT TO CDTDEV1;为CONNECT RESET;CONNECT TO cdtdev1 USER db2admin USING db2admin;加上用户名和密码。