DB2数据库表空间重定向恢复

合集下载

DB2数据库恢复方法有哪些?

DB2数据库恢复方法有哪些?

DB2数据库恢复方法有哪些?
大家都知道,现在我们生活中充斥着各种数据库,从简单的教学管理数据库再到企业大型数据库,我们不得不依赖数据库存储大量的重要信息,而一旦数据库出现丢失问题,会给用户带来十分惨重的损失。

DB2是IBM出品的一系列关系型数据库管理系统,分别在不同的操作系统UNIX,Windows Access,ORACLE平台上服务。

DB2数据库数据丢失问题也是比较常见的一个问题,今天我们就来看看如何对DB2数据库丢失数据进行恢复,希望能对大家有所帮助。

目前,DB2数据库恢复方式主要有三种:
1)崩溃恢复:保护数据库在事务(也称为工作单元)意外中断后不会处于不一致或不可用的状态。

2)版本恢复:指的是使用备份操作期间创建的映像来复原数据库的先前版本。

3)前滚恢复:可以用来重新应用创建备份后落实的事务所做的更改。

一般情况下,当DB2数据库中的表或者其他一些文件丢失后,用户可以直接通过数据库的备份文件进行恢复,这种方法不仅简单,还能有效保证数据库文件的安全,从这里大家就可以看出DB2数据库备份的重要性了。

可是,当DB2数据库文件丢失后,用户有没有及时对其进行备份,那么大家又该如何恢复呢?
其实,对于没有备份的DB2数据库,恢复工作还是可以进行的。

现在国内有很多数据恢复机构,这些机构可以针对各种设备出现的数据丢失损坏问题进行解决,进而帮助用户挽回数据丢失的损失。

DB2数据迁移、备份与恢复及联邦数据库使用操作命令

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导入、导出、备份及恢复数据库等操作资料
$ db2 unquiesce database
$ 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表空间类型DB2 表空间类型在介绍如何将数据库管理表空间转换为⾃动存储表空间之前,我们先来回顾⼀下 DB2 表空间的各种类型以及各⾃的特点。

系统管理表空间 (System-Managed Space,SMS):这种类型的表空间由操作系统的⽂件管理系统分配和管理空间。

在 DB2 V9 之前,SMS 表空间是默认选项,如果不带任何选项创建数据库或表空间,数据库管理器会⾃动将表空间建成系统管理表空间。

创建 SMS 时,可以指定多个路径做为表空间的容器,空间的⼤⼩随数据量的变化由数据库管理器⾃动调整。

这种类型的表空间⽐较便于管理,但空间⼤⼩受到⼀定限制,性能在⼤多数情况下不如数据库管理表空间。

数据库管理的空间 (Database-Managed Space,DMS):这种表空间由 DB2 数据库管理器负责管理存储空间。

表空间容器可使⽤⽂件系统或裸设备。

在定义 DMS 表空间时,可以指定多个⽂件名以及每个⽂件的⼤⼩,数据库管理器建⽴并使⽤这些⽂件作为表空间容器。

表空间⼤⼩在创建时确定,空间不够时要⼿⼯添加容器,对于以⽂件作为容器的表空间可以指定 AUTORESIZE,从⽽在容器空间不够时由数据库管理器⾃动增加容器⼤⼩。

这种表空间性能⽐较好,但需要在维护容器⽅⾯花费⼀些⼯作量。

DMS 在需要经常关注和调整底层容器分配的场合有很⼤的灵活性。

⾃动存储表空间 (Automatic Storage Spaces):⾃动存储看起来是⼀种不同类型的表空间,但实际上是 DMS 和 SMS 的扩展。

因为数据库管理的空间 DMS 需要⽐较多的维护,在 DB2 V8.2.2 中引⼊了 DMS ⾃动存储,以简化表空间管理。

这种类型的表空间既保持了 DMS 的⾼性能⼜具有 SMS 表空间易于管理的特点,可以⼤⼤简化 DBA 的管理⼯作。

⾃动存储需要⾸先在数据库级别启⽤,在 DB2 V9 以后,⾃动存储已经成为了 DB2 的默认设置,在建⽴数据库时,DBA 可以提供⼀组路径,在建⽴表空间时,数据库管理器会在这些提供的路径中建⽴需要的容器,容器的⼤⼩根据情况由数据库管理器负责分配和管理。

db2数据库备份和恢复步骤

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数据库恢复及备份

DB2数据库恢复及备份

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大表排序时报错如果没有建有大的缓冲池的系统临时表空间,当大表要根据非主键列排序时会报错,参照上面建表空间的步骤,只是在选择要创建的表空间的类型时,选择“系统临时”。

AIX平台DB2重定向恢复online备份数据库过程

AIX平台DB2重定向恢复online备份数据库过程

图I 相 关信 息
7 l 0I 年 ・ 期 欢迎登录 www. d c 8 2 1 第2 j n.n r
软件服务 ・ 实务
栏 目编 辑 - 粱 春 丽 E ma : n l i 5 6 o - i i giS @1 3c r la z 0 f n
图6 T be pc D 5 a l sa e I= 的情况
0 50 0 9 .O 0 0 0 5 t G 0000 LG500 9.O
也可以使用 【b1 k— d — — — - — r C d2 o d o b a e l x m_ —
> 料d . l bs 】导出到一个文件查看, q 这里截取部分 内容
说 明。


0 0 D l 4 2 0 05 BS  ̄P3 K
( ) 二 使用带R D R C 选项的方式恢复数据库 E IE T
【b s r d *bf m / 2 akpo l ea d2r t e b d o d b cu / i b k eo r b nn t e a n t0 k a2
恢 复进 度情 况 。 ( ) 三 重定 向相 关表 空 间情况 恢 复 过程 中属 =A T M T CS O A E J U O A I T R G 的表 空 间  ̄
设置方法完全相同, 否则就需要执行重定向恢复操作。
一 .
恢复的基本步骤
首 先 , RED REC 选 项 发 出 RE T0 带 I T S RE
不需要进 行重定向操作, 于非 自动管 理的表 空问需 对
要进行重定向操作, 具体操作为: 查看原数据库的表空
DTBS A A A E命令 ; 其次 , 使用 S T T B E P C E A L SA E

如何恢复DB2中误删除表的数据

如何恢复DB2中误删除表的数据

如何恢复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 命令成功完成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DB2数据库表空间重定向恢复
一、情况说明
在为某市搭建新营销系统演示环境时,从公司测试环境(以下简称公司环境)备份出来的数据库TCDATA文件无法在某市演示环境(以下简称某市环境)还原,提示容器错误。

原因是公司环境服务器的盘符为C、D、E、F,某市环境的盘符为C、D、E。

公司环境TCDATA 库的部份表空间容器指向盘符F,在某市环境无法找到盘符F。

二、解决流程
1、在公司环境备份TCDA TA库,并记录备份时间戳20100916122505
Db2 backup tcdata to e:/db2backup
2、将备份文件复制到某市环境,并在某市环境E盘新建一个TCDATA库
db2 create db tcdata on e:
3、用重定向语句还原TCDATA库,还原过程中会提示需要设置容器
db2 RESTORE DATABASE tcdata USER tc USING tcpwd FROM e:\db2backup TAKEN AT 20100916122505 TO e: INTO tcdata redirect
4、在公司环境查看TCDA TA库每个表空间的容器情况,一般容器用path,类型为file的容器用file。

注意:每个容器都需要重定向
db2 set tablespace containers for 1 using (path "E:\DB2\NODE0000\SQL00002\SQLT0001.0") db2 set tablespace containers for 2 using (path "E:\DB2\NODE0000\SQL00002\SQLT0002.0") db2 "set tablespace containers for 3 using(File 'e:\db2data\tcdata\userfile\datafile01.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile02.dat' 64000,file 'e:\db2data\tcdata\userfile\datafile03.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile04.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile05.dat' 64000)"
db2 "set tablespace containers for 4 using(File 'E:\db2data\tcdata\tmpfile\public_usrtmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp03.dat' 32000)"
db2 "set tablespace containers for 5 using(File 'E:\db2data\tcdata\tmpfile\public_systmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp03.dat' 32000)"
db2 set tablespace containers for 6 using (path "E:\DB2\NODE0000\SQL00002\SYSTOOLSPACE")
db2 set tablespace containers for 7 using (path "E:\DB2\NODE0000\SQL00002\TBSP32K0000") db2 set tablespace containers for 8 using (path "E:\DB2\NODE0000\SQL00002\TBSP32KTMP0000")
db2 set tablespace containers for 9 using (path "E:\DB2\NODE0000\SQL00002\SQLT0250.0") 4、继续执行恢复
db2 restore db tcdata continue
5、如数据库不一致就执行一下前滚
db2 rollforward db tcdata to end of logs and complete。

相关文档
最新文档