互联网服务数据恢复

请教个DB2恢复的问题 在线等

  早上同事误删数据的时间:


00001 DS_MM01                                                               
----------------------------------------------------------------------------
    Comment: DROP TABLE                                                      
Start Time: 20140410112723
   End Time: 20140410112723
     Status: A
----------------------------------------------------------------------------
  EID: 24597



ONLINE备份是昨天
看了下LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 10:03S0022729.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 10:47S0022730.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 11:09S0022731.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 11:43S0022732.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 12:01S0022733.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 12:01S0022734.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 12:01S0022735.LOG

-rw-r-----    1 db2inst db2grp     41951232 Apr 10 12:03

我就rollforward到11:09 S0022731.LOG,但是发现数据却只有到9号晚上的求帮解。。。

参与3

2同行回答

somisssomiss系统工程师上海宝信软件南京分公司
通过在 ROLLFORWARD DATABASE 命令上使用 RECOVER DROPPED TABLE 参数,在删除表之后前滚至某时间点。。应该是这样 谢谢显示全部
通过在 ROLLFORWARD DATABASE 命令上使用 RECOVER DROPPED TABLE 参数,在删除表之后前滚至某时间点。。

应该是这样 谢谢收起
互联网服务 · 2014-04-10
浏览1033
张东焕张东焕技术总监IBM官方授权讲师
恢复已删除的表您可能会偶然删除包含仍需要的数据的表。如果是这样,那么您应该考虑在删除表操作后使关键的表成为可复原的。 可通过调用数据库复原操作恢复表数据,后跟一个前滚到删除表前的某时间点的数据库前滚操作。如果数据库很大,那么复原和前滚操作可能很耗时间,并且数...显示全部
恢复已删除的表您可能会偶然删除包含仍需要的数据的表。如果是这样,那么您应该考虑在删除表操作后使关键的表成为可复原的。 可通过调用数据库复原操作恢复表数据,后跟一个前滚到删除表前的某时间点的数据库前滚操作。如果数据库很大,那么复原和前滚操作可能很耗时间,并且数据在恢复期间不可用。 已删除的表的恢复功能使您可使用表空间级的复原和前滚操作来恢复已删除的表数据。 此表空间级别恢复比数据库级别恢复快,并且数据库对用户仍然可用。
开始之前

要使已删除的表可以复原,必须对该表所在的表空间启用 DROPPED TABLE RECOVERY 选项。可在创建表空间期间启用此选项或通过调用 ALTERTABLESPACE 语句来启用此选项。DROPPED TABLE RECOVERY 选项是表空间特定的,并限于对常规表空间使用。要确定是否对表空间启用了已删除的表的恢复功能,可以查询 SYSCAT.TABLESPACES 目录表中的 DROP_RECOVERY 列。

创建表空间时,缺省情况下已删除的表的恢复选项已打开。如果不要启用表空间的已删除的表的恢复功能,那么可以在发出 CREATE TABLESPACE 语句时显式将 DROPPED TABLE RECOVERY 选项设置为 OFF,或者可以使用 ALTER TABLESPACE 语句来对现有表空间禁用已删除的表的恢复功能。如果有许多删除表操作需要恢复,或者历史记录文件很大,那么“恢复已删除表”功能可能会影响正向恢复的性能。

对表(对该表的表空间启用了已删除的表的恢复功能)运行 DROP TABLE 语句时,将在日志文件中建立另一条目(标识已删除的表)。还会在恢复历史记录文件中建立一个条目,包含可用于重新创建表的信息。

对于分区表来说,即使对一个或多个表空间中的非分区表关闭已删除的表的恢复功能,已删除的表的恢复功能也始终处于打开状态。对于分区表来说,只写一个已删除的表日志记录。此日志记录对于恢复该表的所有数据分区来说已足够了。


关于此任务

如果在删除表时它处于重组暂挂状态,那么历史记录文件中的 CREATE TABLE DDL 与导入文件的 CREATE TABLE DDL 不完全匹配。在执行 REORG 建议的第一个 ALTER 操作之前,导入文件将采用该表的格式,但历史记录文件中的 CREATE TABLE 语句将与包含任何 ALTER TABLE 语句结果的表的状态相匹配。

用于 LOAD 或 IMPORT 的文件类型修饰符要通过装入或导入来恢复表,请指定下列文件类型修饰符:当要恢复数据的数据类型为 GRAPHIC 或 VARGRAPHIC 时,在 IMPORTLOAD 命令中应使用文件类型修饰符 usegraphiccodepage。 原因是它可能包含多个代码页。在 IMPORTLOAD 命令中,应使用 delprioritychar 文件类型修饰符。 该修饰符允许 LOADIMPORT 命令解析在字符或图形列数据中包含换行符的行。

限制

一次只能复原一个已删除的表。

对可从已删除的表中复原的数据类型有一些限制。不可能复原:不能对临时表使用 DROPPED TABLE RECOVERY 选项。与行类型相关联的元数据。(数据已复原,但不是元数据。)将复原类型表的层次结构表中的数据。此数据包含的信息可能比已删除的类型表中的信息多。XML 数据。如果尝试恢复包含 XML 数据的已删除的表,那么相应的列数据将为空。

过程

可执行下列操作来复原已删除的表:

通过调用 LIST HISTORY DROPPED TABLE 命令来识别已删除的表。 已删除的表标识列示在“备份标识”列中。复原在删除该表前所建立的数据库级别或表空间级别备份映像。创建包含表数据的文件将写至的导出目录。 此目录必须可供所有数据库分区访问,或者在每个数据库分区上都存在。此导出目录下的子目录是由每个数据库分区自动创建的。这些子目录的名称是 NODEnnnn,其中 nnnn 代表数据库分区或节点号。包含已废弃的表数据的数据文件(就如它存在于每个数据库分区上那样)将导出到称为 data 的较低子目录中。 例如:\export_directory\NODE0000\data。通过在 ROLLFORWARD DATABASE 命令上使用 RECOVER DROPPED TABLE 参数,在删除表之后前滚至某时间点。也可前滚至日志末尾,以使对表空间或数据库中的其他表进行的更新不会丢失。通过使用 CREATE TABLE 语句来根据恢复历史记录文件重新创建该表。将在前滚操作期间导出的表数据导入表中。 如果进行废弃时表处于重组暂挂状态,那么需要更改 CREATE TABLE DDL 的内容以与数据文件的内容相匹配。收起
IT咨询服务 · 2014-04-10
浏览956

提问者

somiss
系统工程师上海宝信软件南京分公司
擅长领域: 备份

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-04-10
  • 关注会员:1 人
  • 问题浏览:6926
  • 最近回答:2014-04-10
  • X社区推广