`
guoyanxi
  • 浏览: 275721 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

db2恢复误drop的表

    博客分类:
  • db2
阅读更多
--先备份数据库
[db2inst1@server1 ~]$ db2 backup db sample to /tmp

Backup successful. The timestamp for this backup image is : 20101117125927

--分别建立t1,t2两个表:
[db2inst1@server1 ~]$ d "create table scott.t1(a int,b varchar(10))"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "create table scott.t2(a int)"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "insert into scott.t1 values (1,'aaa')"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "insert into scott.t1 values (1,'aaa')"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "commit"
DB20000I  The SQL command completed successfully.

[db2inst1@server1 ~]$ d "insert into scott.t2 values (123)"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "insert into scott.t2 values (111)"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "insert into scott.t2 values (222)"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ select count
[db2inst1@server1 ~]$ d "select * from scott.t2"

A          
-----------
        123
        111
        222

  3 record(s) selected.

--drop t2表
[db2inst1@server1 ~]$ d "drop table scott.t2"
DB20000I  The SQL command completed successfully.
[db2inst1@server1 ~]$ d "select * from scott.t2"
SQL0204N  "SCOTT.T2" is an undefined name.  SQLSTATE=42704

--恢复数据库
db2 => restore db sample from /tmp/ taken at 20101117125927 into sample
SQL2539W  Warning!  Restoring to an existing database that is the same as the 
backup image database.  The database files will be deleted.
Do you want to continue ? (y/n) y
DB20000I  The RESTORE DATABASE command completed successfully.

--现在数据库处于ROLL-FORWARD PENDING状态
db2 => connect to sample
SQL1117N  A connection to or activation of database "SAMPLE" cannot be made 
because of ROLL-FORWARD PENDING.  SQLSTATE=57019

--开始恢复
--首先查看drop表的历史
db2 => list history dropped table all for db sample

                    List History File for sample

Number of matching file entries = 2


 Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  Backup ID
 -- --- ------------------ ---- --- ------------ ------------ --------------
  D  T  20101117134249                                        000000000000dc2500040004 
 ----------------------------------------------------------------------------
  "SCOTT   "."T1" resides in 1 tablespace(s):

  00001 TS1                                                                   
 ----------------------------------------------------------------------------
    Comment: DROP TABLE                                                       
 Start Time: 20101117134249
   End Time: 20101117134249
     Status: A
 ----------------------------------------------------------------------------
  EID: 26

 DDL: CREATE TABLE "SCOTT   "."T1" ( "A" INTEGER , "B" VARCHAR(10) )  IN "TS1" ;         
 ----------------------------------------------------------------------------

 Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  Backup ID
 -- --- ------------------ ---- --- ------------ ------------ --------------
  D  T  20101117134550                                        000000000000ff2500040005 
 ----------------------------------------------------------------------------
  "SCOTT   "."T2" resides in 1 tablespace(s):

  00001 TS1                                                                   
 ----------------------------------------------------------------------------
    Comment: DROP TABLE                                                       
 Start Time: 20101117134550
   End Time: 20101117134550
     Status: A
 ----------------------------------------------------------------------------
  EID: 27

 DDL: CREATE TABLE "SCOTT   "."T2" ( "A" INTEGER )  IN "TS1" ;   
 ----------------------------------------------------------------------------


--roll forward数据库
db2 => rollforward db sample to end of logs and stop recover dropped table 000000000000ff2500040005 to /tmp/

                                 Rollforward Status

 Input database alias                   = sample
 Number of nodes have returned status   = 1

 Node number                            = 0
 Rollforward status                     = not pending
 Next log file to be read               =
 Log files processed                    = S0000000.LOG - S0000001.LOG
 Last committed transaction             = 2010-11-17-05.45.50.000000 UTC

DB20000I  The ROLLFORWARD command completed successfully.


--看看roll出来的数据
[db2inst1@server1 /tmp/NODE0000]$ cat data 
123
111
222

--现在t1已经回来,但是没有t2:
db2 => connect to sample

   Database Connection Information

 Database server        = DB2/LINUX 9.5.2
 SQL authorization ID   = DB2INST1
 Local database alias   = SAMPLE

db2 => select * from scott.t1

A           B         
----------- ----------
          1 aaa       
          1 aaa       

  2 record(s) selected.


db2 => select * from scott.t2  
SQL0204N  "SCOTT.T2" is an undefined name.  SQLSTATE=42704

--根据list history dropped table里面的ddl重建t2:
db2 => CREATE TABLE "SCOTT   "."T2" ( "A" INTEGER )  IN "TS1"           
DB20000I  The SQL command completed successfully.

--开始倒回表的数据
db2 => import from /tmp/NODE0000/data of del insert into scott.t2 
SQL3109N  The utility is beginning to load data from file 
"/tmp/NODE0000/data".

SQL3110N  The utility has completed processing.  "3" rows were read from the 
input file.

SQL3221W  ...Begin COMMIT WORK. Input Record Count = "3".

SQL3222W  ...COMMIT of any database changes was successful.

SQL3149N  "3" rows were processed from the input file.  "3" rows were 
successfully inserted into the table.  "0" rows were rejected.


Number of rows read         = 3
Number of rows skipped      = 0
Number of rows inserted     = 3
Number of rows updated      = 0
Number of rows rejected     = 0
Number of rows committed    = 3

--检查结果
db2 => select * from scott.t2

A          
-----------
        123
        111
        222

  3 record(s) selected.


--ok
分享到:
评论

相关推荐

    DB2误删除表的恢复

    如果确认表确实已被删除,那么下一步是恢复表空间。这一步骤需要数据库管理员的权限,并且需要知道表空间的具体名称以及备份的位置。下面是一个示例命令: ```sql db2 "restore db sample tablespace (userspace1) ...

    DB2恢复删除表学习

    6. **恢复表**:按照上述步骤进行恢复操作。 ### 总结 通过以上介绍,我们可以了解到DB2中关于删除表的恢复机制和具体操作流程。了解这些机制和限制有助于更好地管理数据库,减少数据丢失的风险。同时,根据实际...

    DB2和orcale数据库表分区方法和数据库的备份与恢复

    DB2和Oracle数据库表分区方法和数据库备份与恢复 DB2数据库表分区是指将大型表拆分为多个小的、独立的部分,每个部分称为一个分区。分区的目的是为了提高表的可管理性、可扩展性和查询性能。DB2数据库提供了 RANGE ...

    db2表空间不足及处理

    例如,可以使用DROP TABLESPACE语句来删除不需要的表空间。 4.重组表空间:可以重组表空间来解决表空间不足问题。例如,可以使用REORG TABLESPACE语句来重组表空间。 在解决DB2表空间不足问题时,需要注意以下几点...

    db2中有表损坏时最快的恢复方法db2look-move

    表损坏不仅影响数据的可靠性和业务的连续性,还可能导致服务中断,因此,快速恢复表的正常状态成为当务之急。 ### 二、“db2look-move”恢复方法详解 #### 步骤1:准备恢复目录 首先,创建一个用于存放恢复文件的...

    db2裸设备扩容表空间

    本篇文章将详细介绍如何在AIX操作系统上对DB2的裸设备进行扩容,以及涉及的表空间扩展过程。 首先,我们需要理解表空间在DB2中的作用。表空间是DB2数据库中逻辑存储的容器,用于组织和管理数据库对象如表、索引等。...

    DB2表和表空间状态详解

    ### DB2表和表空间状态详解 #### 引言 IBM DB2 Universal Database(DB2 UDB)作为一款先进的数据库管理系统,提供了丰富的功能以确保数据的完整性和安全性。其中一个关键特性便是通过表和表空间的状态控制,实现...

    DB2不允许访问表空间

    ### DB2 不允许访问表空间问题解析 #### 一、问题背景及现象 在使用IBM DB2数据库管理系统的过程中,有时可能会遇到无法访问特定表空间的情况。这种情况下,用户可能能够执行SELECT查询,但无法进行UPDATE、ALTER...

    db2表空间不足及处理.doc

    DB2表空间不足及处理 DB2表空间是数据库管理系统中用于存储数据的基本结构单元。DB2表空间不足可能会导致数据库性能下降,甚至崩溃。因此, DB2表空间的检查和处理是数据库管理员的重要任务之一。 一、DB2表空间的...

    windows下DB2数据库恢复

    ### Windows 下 DB2 数据库恢复知识点详解 #### 一、DB2 数据库恢复概述 - **DB2**:由IBM开发的一款关系型数据库管理系统(RDBMS),支持多种操作系统如Windows、Linux等。 - **数据库恢复**:指的是将数据库从...

    db2数据库备份与恢复

    首先,通过`db2 drop db sample`手动删除数据库,然后使用`db2 restore db sample history file use tsm taken at [timestamp] buffer 100`恢复历史记录。接下来,根据`db2ckrst`工具的建议进行恢复操作,如版本恢复...

    DB2中常用备份,恢复命令和db2move,db2look的使用

    `db2move`是一个强大的工具,用于导出和导入数据库对象,如表、视图、索引等,支持跨平台的数据迁移。 1. **导出数据库对象**: ```sql db2movetfmsexport; createdbtfms; db2movetfms -u <user> -p <password> ...

    DB2导出数据库表结构和数据.pdf

    DB2 导出数据库表结构和数据 DB2 是一个关系数据库管理系统,能够高效地存储、管理和检索大量数据。在实际应用中,我们经常需要导出数据库表结构和数据,今天我们将讨论如何使用 DB2 导出数据库表结构和数据。 ...

    DB2异机恢复

    DB2 异机恢复 DB2 异机恢复是指使用 NetBackup 软件的备份实现 DB2 数据库的异机恢复。下面是 DB2 异机恢复的详细知识点: 1. DB2 Agent 的配置 在 DB2 的 Agent 安装完毕后,需要运行 `/usr/openv/netbackup/bin...

    db2 v9重定向恢复

    ### DB2 V9重定向恢复详解 #### 一、引言 DB2是IBM公司推出的一款关系型数据库管理系统,广泛应用于各种大型企业级应用中。DB2 V9版本中的重定向恢复功能是一种高效的数据库恢复机制,它允许用户将数据恢复到与原始...

    db2数据库备份和恢复

    数据库备份是数据管理中的核心环节,它能确保在系统故障、人为误操作或灾难性事件发生时,能够迅速恢复数据至可操作状态,减少数据丢失风险,保障业务连续性。因此,掌握DB2数据库的备份与恢复技术对维护系统的稳定...

    DB2恢复备份步骤

    DB2增量在线、离线恢复和备份步骤,日志前滚方法,详细介绍示例步骤

Global site tag (gtag.js) - Google Analytics