DB2数据库表空间重定向恢复
DB2数据库恢复方法有哪些?
DB2数据库恢复方法有哪些?
大家都知道,现在我们生活中充斥着各种数据库,从简单的教学管理数据库再到企业大型数据库,我们不得不依赖数据库存储大量的重要信息,而一旦数据库出现丢失问题,会给用户带来十分惨重的损失。
DB2是IBM出品的一系列关系型数据库管理系统,分别在不同的操作系统UNIX,Windows Access,ORACLE平台上服务。
DB2数据库数据丢失问题也是比较常见的一个问题,今天我们就来看看如何对DB2数据库丢失数据进行恢复,希望能对大家有所帮助。
目前,DB2数据库恢复方式主要有三种:
1)崩溃恢复:保护数据库在事务(也称为工作单元)意外中断后不会处于不一致或不可用的状态。
2)版本恢复:指的是使用备份操作期间创建的映像来复原数据库的先前版本。
3)前滚恢复:可以用来重新应用创建备份后落实的事务所做的更改。
一般情况下,当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 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 表空间的各种类型以及各⾃的特点。
系统管理表空间 (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是一种关系型数据库管理系统(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数据库恢复及备份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备份数据库过程
图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中误删除表的数据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如何调整表空间大小
DB2如何调整表空间⼤⼩DB2如何调整表空间⼤⼩刚刚接到客户那边打的电话,程序⼀直报错,所有的业务都做不了,拷贝了⼀份应⽤服务器(weblogic)的⽇志,⽇志⾥显⽰:WARN : 2009-06-18 16:24:32,421: JDBCExceptionReporter[line:77}: SQL Error: -99999, SQLState: nullERROR: 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:78}: [ibm][db2][jcc][102][10040] ⾮⾃动批处理出现故障。
虽然已经提交了批处理,但是该批处理的某个成员⾄少发⽣了⼀个异常。
使⽤ getNextException() 来检索已经过批处理的特定元素的异常。
WARN : 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:77}: SQL Error: -289, SQLState: 57011ERROR: 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:78}: Error for batch element #1: DB2 SQL error: SQLCODE: -289, SQLSTATE: 57011, SQLERRMC: SMKWARN : 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:77}: SQL Error: -99999, SQLState: nullERROR: 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:78}: Error for batch element #2: [ibm][db2][jcc][t4][1026][11339] 错误检查:WARN : 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:77}: SQL Error: -289, SQLState: 57011ERROR: 2009-06-18 16:24:32,424: JDBCExceptionReporter[line:78}: Error for batch element #2: DB2 SQL error: SQLCODE: -289, SQLSTATE: 57011, SQLERRMC: SMKERROR: 2009-06-18 16:24:32,424: AbstractFlushingEventListener[line:301}: Could not synchronize database state with sessionorg.hibernate.exception.GenericJDBCException: Could not execute JDBC batch updateat org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)at mit(JDBCTransaction.java:106)at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)atorg.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662) at mit(AbstractPlatformTransactionManager.java:632)atmitTransactionAfterReturning(TransactionAspectSupport.java:314) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)at $Proxy803.saveApply(Unknown Source)at nct.mp.counterservice.service.CounterServiceService.applySave(CounterServiceService.java:135)at nct.mp.counterservice.ejbAction.ApplySaveEjbAction.perform(ApplySaveEjbAction.java:32)at com.lbs.sieaf.webcontroller.RequestProcessor.processRequest(RequestProcessor.java:245)at com.lbs.sieaf.webcontroller.MainServlet.doProcess(MainServlet.java:65)at com.lbs.sieaf.webcontroller.MainServlet.doPost(MainServlet.java:49)at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)at com.lbs.sieaf.webcontroller.CSSaftyFilter.doFilter(CSSaftyFilter.java:167)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)at nct.cp.webcontroller.EncodingFilter.doFilter(EncodingFilter.java:66)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Caused by:com.ibm.db2.jcc.b.ni: [ibm][db2][jcc][102][10040] ⾮⾃动批处理出现故障。
重定向恢复DB2操作指引
如果DB2镜像的数据库存储路径与目标恢复的路径不一致,需要用重定向的方式恢复数据库,否则会出现报错。
如下是直接恢复时的报错:db2 "RESTORE DB PRODHR from C:\DB2\data taken at 20150511211136 on C: into PRODHR LOGTARGET C:\DB2\data WITHOUT PROMPTING"SQL20321N Storage paths cannot be provided because the database is not enabled for automatic storage. SQLSTATE=55062解决方法:表示需要恢复的OS环境中的路径不满足原镜像主机恢复时所需的路径,需要将数据库恢复的命令中on 修改为to,并且需要增加重定向指令:db2 "RESTORE DB PRODHR from C:\DB2\data taken at 20150511211136 to C: LOGTARGET C:\DB2\data redirect"执行后出现如下提示:SQL1277W A redirected restore operation is being performed. Table spaceconfiguration can now be viewed and table spaces that do not use automatic storage can have their containers reconfigured.DB20000I The RESTORE DATABASE command completed successfully.用如下命令修改新合适的路径:db2 "set tablespace containers for 3 using (path 'C:\DB2\Tablespaces\PRODHR')"db2 "set tablespace containers for 4 using (path 'C:\DB2\Tablespaces\PRODHR_TEMP_SPACE')" db2 "set tablespace containers for 5 using (path 'C:\DB2\Tablespaces\PRODHR_LARGE')"成功会返回如下结果:DB20000I The SET TABLESPACE CONTAINERS command completed successfully.错误的例子:如果类型是file时,需要指定file文件的page数量,例如:db2 "set tablespace containers for 3 using (file '/fangys_db/fangys_tbs.dbf' 10000)"通过” db2 list tablespace containers for 3 show detail”可以查看page数量。
db2_表空间状态
表 1. 到版本 8.1.4 为止的 DB2 UDB 所有支持版本中定义的表和表空间状态
状态
范围
Backup Pending Backup in Progress Check Pending DMS Rebalance in Progress Disable Pending Drop Pending Load Pending Load in Progress
表状态。
Information returned for USERSPACE1 返回的
信息显示,该表空间处于 Load in Progress(和
Backup Pending )状态。
如果表空间不是
处于任何其他
(异常的)表空
间状态,那么该 connect to sample;
表空间的状态就 create tablespace ts1 managed by database using (file
State = Backup Pending + Load in Progress
图 2. 可以使用 LIST TABLESPACES 命令确定连接数据库中表空间的当前状态。
表 2. 受支持的表空间状态
状态
十六进制状 态值
描述
示例
在执行指定时间
点的(point-intime)表空间前 滚操作之后,或 者在执行指定了
至于说明该表空间状态的示例,已经超出了本文 的范围。
已知载入的输入文件 staffdata.del 有大量数据
(例如,20000 条或更多记录): 这是一种只在执 update db cfg for sample using logretain recovery; 行指定了 COPY connect to sample; NO 选项的载入 load from staffdata.del of del insert into newstaff 操作(针对可恢 copy no;
DB2_备份还原_导入导出
打包已导出的表结构与数据 tar zcvf 目录名.tar.gz 目录名/
在新的db2导入数据
创建数据库: db2 create db 库名
导入表结构操作:db2 -tvf 文件名.sql
导入数据操作:db2move 新建库名 import
0I SET TABLESPACE CONTAINERS 命令成功完成。
set tablespace containers for 5 using (path "F:\DB2\NPORTAL\BP32K")
0I SET TABLESPACE CONTAINERS 命令成功完成。
set tablespace containers for 6 using (path "F:\DB2\TEMP\NPORTAL\BP32K")
0I SET TABLESPACE CONTAINERS 命令成功完成。
set tablespace containers for 3 using (path "F:\DB2\NPORTAL\BP8K")
0I SET TABLESPACE CONTAINERS 命令成功完成。
set tablespace containers for 4 using (path "F:\DB2\NPORTAL\BP16K")
db2move JX45 export
DB2 下导出表结构及数据
su db2inst - 进入db2权限模式
任意建立一个文件夹子 mkdir data
进入文件夹子 cd data
DB2恢复数据库命令
db2 set tablespace containers for 11 ignore rollforward container operations using (file '/T000011' 51200)
db2 set tablespace containers for 6 ignore rollforward container operations using (file '/T00006' 51200)
db2 set tablespace containers for 7 ignore rollforward container operations using (file '/T00007' 51200)
db2 set tablespace containers for 12 ignore rollforward container operations using (file '/T000012' 51200)
启动已重定向的复原:
RESTORE DATABASE 数据库名 CONTINUE
总计页 数 = 131072
可用页 数 = 131064
可访 问 = 是
主要属性为st tablespaces查看所有表空间,看该表空间的状态是否为“正常”。
连接数据库:
db2 connect to 数据库名
查看所有表空间:
db2 restore命令参数
db2 restore命令参数
DB2数据库的RESTORE命令是用于从备份中恢复数据库的命令。
它有许多参数,以下是一些常用的参数:
1. DATABASE,指定要恢复的数据库名称。
2. FROM,指定备份的来源位置,可以是磁盘路径或者是云存储
路径。
3. TAKEN AT,指定要恢复的备份的时间点。
4. INTO,指定要将数据库恢复到的目标位置。
5. REPLACE EXISTING,如果目标数据库已经存在,使用此参数
将其替换。
6. LOGTARGET,指定将事务日志应用到的目标位置。
7. WITHOUT PROMPTING,在恢复过程中不提示用户确认。
除了上述列举的参数外,RESTORE命令还有许多其他参数,用于更精细地控制恢复过程。
例如,可以指定是否还原表空间、是否还原日志文件等。
在实际使用中,可以根据具体的恢复需求选择合适的参数进行配置。
需要注意的是,使用RESTORE命令时需要具有足够的权限,通常需要具有SYSADM或者SYSCTRL权限才能执行恢复操作。
另外,在执行恢复操作前,务必确认备份文件的完整性和可用性,以免造成数据丢失或损坏。
DB2备份还原中常用的sql语句
DB2备份还原中常⽤的sql语句初始化环境0.启动 db2start1.Cmd 环境下输⼊ db2cmd 新打开db2 操作窗⼝2.连接数据库 db2 connect to db_name3.在本地主机备份语句 db2 backup database db_name to D:备份成功得到备份映像的时间戳4.在该环境下创建数据库 db2 create database db_nameDb2 create database pb_db using codeset gbk territory zh_CN pagesize 8192 ---建库;Db2 connect to pb_db ---连接;Db2 create bufferpool testpool size 2000 pagesize 32k --临时表空间缓冲池;Db2 create temporary tablespace temp(tablespace_name) pagesize 32k managed by database using (file '数据库所在路径\⽂件所在路径.file' 5000) extentsize 80 bufferpool testpool --临时表空间;------查看数据库的表空间Db2 list tablespaces show detail命令成功完成5. 连接数据库Db2 connect to db_name6. db2 restore database old_name from d:\(只写到备份⽂件所在的根⽬录) taken at 201722 into new_name报错 sql2542n--未备份表空间,需要重定向表空间备份。
db2数据库恢复操作手册
db2数据库恢复手册1、检查备份介质并且授权例子:db2ckbkp P013BANS.0.db2inps.NODE0000.CATN0000.20151009142814.001●调整内容依据标红处执行命令:进入介质存放目录2、使用数据库介质恢复工具生成恢复脚本db2 "restore db p012band from /fns/pd/r/data redirect generate script restore.sql ●调整内容依据标红处db2 "restore db p012band from /介质目录 redirect generate script 脚本名字.sql 3、更改脚本内容使用vi 编辑脚本执行命令例子:vi restore.sql执行命令修改内容如下标红处:修改为:LOGTARGET '/db2data/p012band/db2inpd/NODE0000/SQL00001/LOG' NEWLOGPATH '/db2data/p012band/db2inpd/NODE0000/SQL00001/SQLOGDIR/' 注意删除注释符号修改后如下:保存退出,检查是否更改成功。
4、删除原有数据库例子:db2 drop db p012band使用实例用户执行命令:5、检查日志目录是否存在且为空/db2data/p012band/db2inpd/NODE0000/SQL00001/LOG/db2data/p012band/db2inpd/NODE0000/SQL00001/SQLOGDIR/ 注意:以上目录必须存在、为空,且数据库实例用户有写入权限。
6、使用恢复脚本恢复数据库例子:nohupdb2 –stvf restore.sql&执行命令:注意后台进程符号不要遗忘7、进行日志前滚操作例子:db2 "rollforwarddb p012band to end of logs and complete overflow log path ('/db2data/p012band/db2inpd/NODE0000/SQL00001/LOG ')"执行命令8、更改归档日志为循环日志(可不执行)例子:db2 update db cfg for p012band using LOGARCHMETH1 OFF执行命令9、更改日志大小(可不执行)例子10、更改主日志数量(可不执行)11、连接数据库等待日志重置例子:db2 connect to p012band执行命令注意:日志重置时间在2到5分钟左右,请耐心等待。
DB2在线备份及恢复方法
DB2在线备份及恢复DB2在线备份配置步骤说明:1、运行输入cmd,输入语句 md D:\backup 。
2、运行输入cmd,输入语句 md D:\archlog 。
3、运行输入db2cmd,输入语句 db2 update dbcfg for dbname using userexit on logretain on trackmod on 。
4、运行输入db2cmd,输入语句 db2 backup dbDBNAME to D:\ (此备份文件为离线全备份文件可以在备份完成后可删除或者迁移)。
5、运行输入db2cmd,输入语句db2 update dbcfg for dbname using logarchmeth1 disk:D\archlog 。
6、autodb2back_main 备份数据库执行文件(加入任务计划,设置时间,让其每天启动执行备份) 。
7、autodb2del 自动删除过期备份文件,脚本里现在时间为30天,也就是30天之前的备份会被执行删除,改日期可以根据客户自身情况设置。
8、autocopy 该脚本自动拷贝备份文件和归档日志到备机,每次不会全部把文件夹里文件都拷贝到备机,只拷贝更新过的文件。
DB2在线备份恢复步骤说明:1、运行输入db2cmd,输入语句 db2 restore dbdbname from D:\backup taken at 20120606041654(此时间戳为示例,恢复时需要根据具体文件确认)。
2、运行输入db2cmd,输入语句 db2 rollforwarddbdbname to end of logs and complete overflow log path ("D:\archlog") 。
脚本编写:1、autodb2back_main.batcd c:\db2cmd -i -w autodb2back.bat2、autodb2del.batC:\WINDOWS\system32\forfiles /p d:\backup /m *.* /d -30 /c "cmd /c del @file"3、autocopy.batxcopy d:\backup \\rcfe2\backup\ /s /dxcopy d:\archlog \\rcfe2\archlog /s /dexit完成。
CommVault_DB2_安装和恢复文档
CommVault技术白皮书AIX双机环境下安装DB2备份软件目录1. 环境 (3)2. 备份软件安装过程 (3)3. 安装后的目录分布情况 (3)4. 给安装后的备份软件打补丁 (3)5. CommVault备份DB2前需要设置相关参数 (4)5.1. 修改DB2的参数来满足CommVault备份要求 (4)5.2. 执行离线备份使参数生效 (4)6. 双机环境下的启动和停止脚本 (5)7. 在CommVault界面中设置备份 (5)7.1. 配置新实例: (5)7.2. 实例名 (6)7.3. 输入帐户信息 (6)7.4. 选择存储策略 (7)7.5. 创建新备份集 (7)7.6. 开始执行备份 (10)8. 恢复DB2 (11)8.1. 选择实例恢复. (11)8.2. 选择目标 (11)8.3. 选择备份映像 (11)8.4. 选择恢复时间 (12)8.5. 恢复日志文件 (13)8.6. 重定向恢复 (13)1.环境AIX HACMP双机环境下运行DB2数据库物理节点A,IP_A物理节点B,IP_B虚拟节点,IP_V2.备份软件安装过程1.在服务器A的IP_A上安装iDA FS2.在服务器B的IP_B上安装iDA FS3.在服务器A的IP_V上安装iDA V FS4.在服务器A的IP_V上安装MA5.在服务器A的IP_V上安装iDA DB26.在服务器B的IP_V上安装iDA V FS7.在服务器B的IP_V上安装MA8.在服务器B的IP_V上安装iDA DB23.安装后的目录分布情况●所有模块的执行文件(iDA FS, MA, DB2)分别在服务器A和B的本地目录下各有一份●MA和DB2的数据文件都存放在共享目录/db2_home下,这些目录包括:a)MA的CV_IndexCachb)VFS 的JobResultsc)DB2的DB2Archive, DB2_Audit, DB2_Retrivev,4.给安装后的备份软件打补丁1.在CommServe主机目录C:\CommVault\Galaxy\Base下,执行CopyToCache.exe文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。