您现在的位置是:首页 >

drop down 表的许多分区被意外drop用rman不完全恢复

火烧 2022-08-01 09:24:51 1041
表的许多分区被意外dro 用rma 不完全恢复   如果表的很多分区被意外dro 需要利用带库上的备份集在测试机上做不完全恢复 具体日期需要达到一个特定的时间 那么我们可以参考下文   ◆首先需要用l

表的许多分区被意外drop用rman不完全恢复  

  如果表的很多分区被意外drop 需要利用带库上的备份集在测试机上做不完全恢复 具体日期需要达到一个特定的时间 那么我们可以参考下文

  ◆首先需要用logminer查出删除语句

  

  unpress /oracle/oradata/xxx/xxx ARC Z begin sys dbms_logmnr add_logfile( /oracle/oradata/xxx/xxx ARC ); end; begin sys dbms_logmnr start_logmnr(Options => sys dbms_logmnr DICT_FROM_ONLINE _CATALOG); end; create table xsb_logminer_ as select timestamp seg_name operation sql_redo from V$LOGMNR_CONTENTS where seg_owner= XXX and operation= DDL and sql_redo like ALTER TABLE XXX DROP PARTITION % ; BEGIN sys dbms_logmnr end_logmnr();END;

drop down 表的许多分区被意外drop用rman不完全恢复

  ◆然后在生产库上创建pfile

   create pfile= from spfile;

  需要从带库上恢复rman备份集至生产机上 将此备份集FTP至测试机上 连同pfile文件

  在测试机上创建与生产机上相同目录 admin ……

  在测试机上创建新实例

  

  orapwd file= password=xxx

  然后修改pfile文件内容 改变control_files内容

  ◆启动新实例

  

  export ORACLE_SID=xxx sqlplus / as sysdba startup nomount pfile= /home/oracle/init_xxx ora ; create spfile from pfile= /home/oracle/init_xxx ora ; exit RMAN target sys/xxx restore controlfile from ; startup mount crosscheck backup; list backup; run { set newname for datafile to /oracle/oradata/xxx/system dbf ; set newname for datafile to /oracle/oradata/xxx/undo dbf ; set newname for datafile to /oracle/oradata/xxx/sysaux dbf ; set newname for datafile to /oracle/oradata/xxx/pay_ts dbf ; restore datafile ; restore datafile ; restore datafile ; restore datafile ; } (注 发现单个datafile恢复不如整库恢复快!) sql alter database backup controlfile to trace ; shutdown immediate; exit

  然后修改controlfile文件内容 去掉不用的文件名

  ◆不完全恢复数据库

  

  sqlplus / as sysdba startup nomount;

  ◆重建控制文件

  

  CREATE CONTROLFILE REUSE DATABASE XXX RESETLOGS ARCHIVELOG MAXLOGFILES MAXLOGMEMBERS MAXDATAFILES MAXINSTANCES MAXLOGHISTORY LOGFILE GROUP ( /oracle/oradata/xxx/rdb_redo a ) SIZE M GROUP ( /oracle/oradata/xxx/rdb_redo a ) SIZE M DATAFILE /oracle/oradata/xxx/system dbf /oracle/oradata/xxx/undo dbf /oracle/oradata/xxx/sysaux dbf /oracle/oradata/xxx/pay_ts dbf CHARACTER SET ZHS GBK ; recover database until cancel using backup controlfile; alter database open resetlogs;

  ◆做数据恢复操作

  

  create table xxx as select xxx from xxx where xxx; exp ftp dmp imp

  也可以如下所示 这样可以更简单一点

  

  restore database; recover database using backup controlfile until cancel; alter database open resetlogs; END

lishixinzhi/Article/program/Oracle/201311/16867  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码