oracle刪除使用者後的恢復測試

goodlatch發表於2015-03-17
用到2個機子
主節點 192.168.119.145 hostname=psd
輔助節點192.168.119.146 hostname=test
要求有rman備份

方法一:如果庫上只有這一個業務使用者,就可以直接用rman 做全庫的時間點恢復。
方法二:如果有多個使用者,大致思路,在psd節點上備份資料庫,然後刪除使用者,之後將備份恢復到test節點上,然後將test節點的使用者資料邏輯匯出,最後匯入到psd節點。

方法二的測試

確認資料庫是歸檔模式,首先在scott使用者下建立一個t1表,並插入資料

  1. [oracle@psd ~]$ sqlplus / as sysdba

  2. SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 17 10:39:53 2015

  3. Copyright (c) 1982, 2011, Oracle. All rights reserved.


  4. Connected to:
  5. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  7. SQL> archive log list
  8. Database log mode     Archive Mode
  9. Automatic archival     Enabled
  10. Archive destination     USE_DB_RECOVERY_FILE_DEST
  11. Oldest online log sequence 14
  12. Next log sequence to archive 16
  13. Current log sequence     16
  14. SQL>
  15. SQL> show parameter db_re

  16. NAME                 TYPE     VALUE
  17. ------------------------------------ ----------- ------------------------------
  18. db_recovery_file_dest         string     /oracle/fast_recovery_area
  19. db_recovery_file_dest_size     big integer 4122M
  20. db_recycle_cache_size         big integer 0
  21. SQL>
  22. SQL> conn scott/scott
  23. Connected.
  24. SQL> create table t1 (id number);

  25. Table created.

  26. SQL> begin
  27.   2 for i in 1..5 loop
  28.   3 insert into t1 values (i);
  29.   4 end loop;
  30.   5 end;
  31.   6 /

  32. PL/SQL procedure successfully completed.

  33. SQL> commit;

  34. Commit complete.

  35. SQL> select * from t1;

  36.     ID
  37. ----------
  38.      1
  39.      2
  40.      3
  41.      4
  42.      5
  43. SQL>
  44. SQL> exit
  45. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  46. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  47. [oracle@psd backup]$

接下來開始備份資料庫,備份完在向t1表插入資料,然後建立t2表,之後刪掉scott使用者

  1. [oracle@psd backup]$ rman target /

  2. Recovery Manager: Release 11.2.0.3.0 - Production on Tue Mar 17 11:38:55 2015

  3. Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

  4. connected to target database: PSD (DBID=2007794869)

  5. RMAN> backup database format '/home/oracle/backup/psd_%U.bak' plus archivelog format '/home/oracle/backup/arch_%U.bak';


  6. Starting backup at 17-MAR-15
  7. current log archived
  8. using target database control file instead of recovery catalog
  9. allocated channel: ORA_DISK_1
  10. channel ORA_DISK_1: SID=41 device type=DISK
  11. channel ORA_DISK_1: starting archived log backup set
  12. channel ORA_DISK_1: specifying archived log(s) in backup set
  13. input archived log thread=1 sequence=12 RECID=11 STAMP=873219765
  14. input archived log thread=1 sequence=13 RECID=12 STAMP=874489166
  15. input archived log thread=1 sequence=14 RECID=13 STAMP=874489173
  16. input archived log thread=1 sequence=15 RECID=14 STAMP=874533680
  17. input archived log thread=1 sequence=16 RECID=15 STAMP=874582892
  18. channel ORA_DISK_1: starting piece 1 at 17-MAR-15
  19. channel ORA_DISK_1: finished piece 1 at 17-MAR-15
  20. piece handle=/home/oracle/backup/arch_02q224re_1_1.bak tag=TAG20150317T114134 comment=NONE
  21. channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
  22. Finished backup at 17-MAR-15

  23. Starting backup at 17-MAR-15
  24. using channel ORA_DISK_1
  25. channel ORA_DISK_1: starting full datafile backup set
  26. channel ORA_DISK_1: specifying datafile(s) in backup set
  27. input datafile file number=00001 name=/oracle/oradata/psd/system01.dbf
  28. input datafile file number=00002 name=/oracle/oradata/psd/sysaux01.dbf
  29. input datafile file number=00003 name=/oracle/oradata/psd/undotbs01.dbf
  30. input datafile file number=00004 name=/oracle/oradata/psd/users01.dbf
  31. channel ORA_DISK_1: starting piece 1 at 17-MAR-15
  32. channel ORA_DISK_1: finished piece 1 at 17-MAR-15
  33. piece handle=/home/oracle/backup/psd_03q224s8_1_1.bak tag=TAG20150317T114200 comment=NONE
  34. channel ORA_DISK_1: backup set complete, elapsed time: 00:01:46
  35. channel ORA_DISK_1: starting full datafile backup set
  36. channel ORA_DISK_1: specifying datafile(s) in backup set
  37. including current control file in backup set
  38. including current SPFILE in backup set
  39. channel ORA_DISK_1: starting piece 1 at 17-MAR-15
  40. channel ORA_DISK_1: finished piece 1 at 17-MAR-15
  41. piece handle=/home/oracle/backup/psd_04q224vi_1_1.bak tag=TAG20150317T114200 comment=NONE
  42. channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
  43. Finished backup at 17-MAR-15

  44. Starting backup at 17-MAR-15
  45. current log archived
  46. using channel ORA_DISK_1
  47. channel ORA_DISK_1: starting archived log backup set
  48. channel ORA_DISK_1: specifying archived log(s) in backup set
  49. input archived log thread=1 sequence=17 RECID=16 STAMP=874583030
  50. channel ORA_DISK_1: starting piece 1 at 17-MAR-15
  51. channel ORA_DISK_1: finished piece 1 at 17-MAR-15
  52. piece handle=/home/oracle/backup/arch_05q224vm_1_1.bak tag=TAG20150317T114350 comment=NONE
  53. channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
  54. Finished backup at 17-MAR-15

  55. RMAN>
  56. RMAN> exit


  57. Recovery Manager complete.
  58. [oracle@psd backup]$ sqlplus /nolog

  59. SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 17 11:44:27 2015

  60. Copyright (c) 1982, 2011, Oracle. All rights reserved.

  61. SQL> conn scott/scott
  62. Connected.
  63. SQL> begin
  64.   2 for i in 6..10 loop
  65.   3 insert into t1 values (i);
  66.   4 end loop;
  67.   5 end;
  68.   6 /

  69. PL/SQL procedure successfully completed.

  70. SQL> commit;

  71. Commit complete.

  72. SQL> select * from t1;

  73.     ID
  74. ----------
  75.      1
  76.      2
  77.      3
  78.      4
  79.      5
  80.      6
  81.      7
  82.      8
  83.      9
  84.     10

  85. 10 rows selected.

  86. SQL> create table t2 as select * from t1;

  87. Table created.

  88. SQL> conn /as sysdba
  89. Connected.
  90. SQL> drop user scott cascade;

  91. User dropped.

現在scott使用者已經被刪掉了,要為恢復做準備,我們檢視pfile檔案,把相關的目錄在輔助節點(192.168.119.146)都建立好,下面標紅的目錄

  1. SQL> create pfile from spfile;

  2. File created.

  3. SQL> exit
  4. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  5. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  6. [oracle@psd backup]$ cd $ORACLE_HOME/dbs
  7. [oracle@psd dbs]$ cat initpsd.ora
  8. psd.__db_cache_size=96468992
  9. psd.__java_pool_size=4194304
  10. psd.__large_pool_size=4194304
  11. psd.__oracle_base='/oracle'#ORACLE_BASE set from environment
  12. psd.__pga_aggregate_target=142606336
  13. psd.__sga_target=272629760
  14. psd.__shared_io_pool_size=0
  15. psd.__shared_pool_size=159383552
  16. psd.__streams_pool_size=0
  17. *.audit_file_dest='/oracle/admin/psd/adump'
  18. *.audit_trail='db'
  19. *.compatible='11.2.0.0.0'
  20. *.control_files='/oracle/oradata/psd/control01.ctl','/oracle/fast_recovery_area/psd/control02.ctl'
  21. *.db_block_size=8192
  22. *.db_domain=''
  23. *.db_name='psd'
  24. *.db_recovery_file_dest='/oracle/fast_recovery_area'
  25. *.db_recovery_file_dest_size=4322230272
  26. *.diagnostic_dest='/oracle'
  27. *.dispatchers='(PROTOCOL=TCP) (SERVICE=psdXDB)'
  28. *.memory_target=414187520
  29. *.open_cursors=300
  30. *.processes=150
  31. *.remote_login_passwordfile='EXCLUSIVE'
  32. *.undo_tablespace='UNDOTBS1'

把剛剛的rman備份、pfile檔案以及密碼檔案複製到192.168.119.146上,然後我們就要確定drop scott的具體時間,用logminer來搞定

  1. [oracle@psd backup]$ cd /oracle/fast_recovery_area/PSD/archivelog/
  2. [oracle@psd archivelog]$ cd 2015_03_17/
  3. [oracle@psd 2015_03_17]$ ll
  4. total 10248
  5. -rw-r-----. 1 oracle oinstall 7795200 Mar 17 11:41 o1_mf_1_16_bjh8mbov_.arc
  6. -rw-r-----. 1 oracle oinstall 2048 Mar 17 11:43 o1_mf_1_17_bjh8qp80_.arc
  7. -rw-r-----. 1 oracle oinstall 2674688 Mar 17 12:03 o1_mf_1_18_bjh9wyqj_.arc
  8. -rw-r-----. 1 oracle oinstall 1024 Mar 17 12:03 o1_mf_1_19_bjh9x0hy_.arc
  9. -rw-r-----. 1 oracle oinstall 9728 Mar 17 12:03 o1_mf_1_20_bjh9x3xb_.arc

  10. EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/oracle/fast_recovery_area/PSD/archivelog/2015_03_17/o1_mf_1_16_bjh8mbov_.arc',OPTIONS => DBMS_LOGMNR.NEW);
  11. EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/oracle/fast_recovery_area/PSD/archivelog/2015_03_17/o1_mf_1_17_bjh8qp80_.arc',OPTIONS => DBMS_LOGMNR.ADDFILE);

  12. PL/SQL procedure successfully completed.

  13. SQL>
  14. PL/SQL procedure successfully completed.

  15. SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/oracle/fast_recovery_area/PSD/archivelog/2015_03_17/o1_mf_1_18_bjh9wyqj_.arc',OPTIONS => DBMS_LOGMNR.ADDFILE);

  16. PL/SQL procedure successfully completed.

  17. SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

  18. PL/SQL procedure successfully completed.

  19. SQL> col sql_redo format a50
  20. SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
  21. SQL> select sql_redo,scn,start_scn,TIMESTAMP,START_TIMESTAMP from V$LOGMNR_CONTENTS where lower(sql_redo) like \'%drop%\' and lower(sql_redo) like \'%scott%\';

  22. SQL_REDO                             SCN START_SCN TIMESTAMP     START_TIMESTAMP
  23. ------------------------------------------------------------ ---------- ---------- ------------------- -------------------
  24. drop table scott.emp1 AS "BIN$EWlpmtpQdoXgU5F3qMAiMw==$0" ; 1272611   2015-03-16 22:10:29
    drop table "SCOTT"."BIN$EWNzFGZja8TgU5F3qMDpoQ==$0" purge; 1278724   2015-03-17 11:46:13
    drop table "SCOTT"."BIN$EWOQLk80bF3gU5F3qMBi4g==$0" purge; 1278746   2015-03-17 11:46:14
    drop table "SCOTT"."BIN$EWNb3bwua9TgU5F3qMA7BA==$0" purge; 1278770   2015-03-17 11:46:14
    drop table "SCOTT"."BIN$EWNb3bwva9TgU5F3qMA7BA==$0" purge; 1278791   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWNzFGZka8TgU5F3qMDpoQ==$0" purge; 1278813   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWOU7d6fbGPgU5F3qMA5vw==$0" purge; 1278834   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWOQLk81bF3gU5F3qMBi4g==$0" purge; 1278856   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWOniXMLbHvgU5F3qMAS1g==$0" purge; 1278878   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWOniXMMbHvgU5F3qMAS1g==$0" purge; 1278900   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWOniXMNbHvgU5F3qMAS1g==$0" purge; 1278921   2015-03-17 11:46:15


    SQL_REDO    SCN  START_SCN TIMESTAMP       START_TIMESTAMP
    ------------------------------------------------------------ ---------- ---------- ------------------- -------------------
    drop table "SCOTT"."BIN$EWOniXMObHvgU5F3qMAS1g==$0" purge; 1278943   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWPg+H8lbNLgU5F3qMCj4g==$0" purge; 1278965   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWPg+H8mbNLgU5F3qMCj4g==$0" purge; 1278986   2015-03-17 11:46:15
    drop table "SCOTT"."BIN$EWPg+H8nbNLgU5F3qMCj4g==$0" purge; 1279008   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTPDfF1bmPgU5F3qMBohA==$0" purge; 1279030   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTPDfF2bmPgU5F3qMBohA==$0" purge; 1279052   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTPDfF3bmPgU5F3qMBohA==$0" purge; 1279074   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTSV1AibnLgU5F3qMCKBg==$0" purge; 1279096   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTaumLtbn7gU5F3qMAgNQ==$0" purge; 1279118   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTdffDnboXgU5F3qMCDZg==$0" purge; 1279140   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWTdffDoboXgU5F3qMCDZg==$0" purge; 1279162   2015-03-17 11:46:16


    SQL_REDO    SCN  START_SCN TIMESTAMP       START_TIMESTAMP
    ------------------------------------------------------------ ---------- ---------- ------------------- -------------------
    drop table "SCOTT"."BIN$EWTdffDpboXgU5F3qMCDZg==$0" purge; 1279184   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWVlDuUgb2jgU5F3qMAyEQ==$0" purge; 1279206   2015-03-17 11:46:16
    drop table "SCOTT"."BIN$EWi11zOecYPgU5F3qMAYuA==$0" purge; 1279228   2015-03-17 11:46:17
    drop table "SCOTT"."BIN$EWjjuPdrc7fgU5F3qMD+ag==$0" purge; 1279250   2015-03-17 11:46:17
    drop table "SCOTT"."BIN$EWjqnThDc77gU5F3qMC90A==$0" purge; 1279272   2015-03-17 11:46:17
    drop table "SCOTT"."BIN$EWjqnThEc77gU5F3qMC90A==$0" purge; 1279294   2015-03-17 11:46:17
    drop table "SCOTT"."BIN$EWlYdSbqdmHgU5F3qMBLJg==$0" purge; 1279314   2015-03-17 11:46:17
    drop table "SCOTT"."BIN$EWlpmtpQdoXgU5F3qMAiMw==$0" purge; 1279336   2015-03-17 11:46:17
    drop table "SCOTT"."T2" cascade constraints purge force; 1279359   2015-03-17 11:46:22
    drop table "SCOTT"."T1" cascade constraints purge force; 1279379   2015-03-17 11:46:22
    drop table "SCOTT"."DEPT1" cascade constraints purge force; 1279401   2015-03-17 11:46:22


    SQL_REDO    SCN  START_SCN TIMESTAMP       START_TIMESTAMP
    ------------------------------------------------------------ ---------- ---------- ------------------- -------------------
    drop table "SCOTT"."SALGRADE" cascade constraints purge forc 1279424   2015-03-17 11:46:22
    e;


    drop table "SCOTT"."BONUS" cascade constraints purge force; 1279447   2015-03-17 11:46:22
    drop table "SCOTT"."EMP" cascade constraints purge force; 1279459   2015-03-17 11:46:23
    drop table "SCOTT"."DEPT" cascade constraints purge force; 1279497   2015-03-17 11:46:23
    drop procedure "SCOTT"."P_EMP1"; 1279533   2015-03-17 11:46:23
    drop procedure "SCOTT"."P_INSERT"; 1279555   2015-03-17 11:46:24
    drop procedure "SCOTT"."P_INSERT_T"; 1279573   2015-03-17 11:46:24
    drop user scott cascade; 1279609   2015-03-17 11:46:40


  25. 41 rows selected.

  26. SQL>

從這裡我們可以判斷,drop使用者的時間是 2015-03-17 11:46:13,我的測試機器上沒有多少歸檔,但是在生產環境歸檔會很多,想確定drop的時間就得多看幾個歸檔日誌了。
確定時間,我們就開始在輔助節點做恢復操作


  1. [oracle@test backup]$ rman target /

  2. Recovery Manager: Release 11.2.0.3.0 - Production on Tue Mar 17 12:27:21 2015

  3. Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

  4. connected to target database (not started)

  5. RMAN> startup nomount;

  6. Oracle instance started

  7. Total System Global Area 413372416 bytes

  8. Fixed Size 2228904 bytes
  9. Variable Size 310381912 bytes
  10. Database Buffers 96468992 bytes
  11. Redo Buffers 4292608 bytes

  12. RMAN> restore controlfile from '/home/oracle/backup/psd_04q224vi_1_1.bak';

  13. Starting restore at 17-MAR-15
  14. using target database control file instead of recovery catalog
  15. allocated channel: ORA_DISK_1
  16. channel ORA_DISK_1: SID=19 device type=DISK

  17. channel ORA_DISK_1: restoring control file
  18. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
  19. output file name=/oracle/oradata/psd/control01.ctl
  20. output file name=/oracle/fast_recovery_area/psd/control02.ctl
  21. Finished restore at 17-MAR-15

  22. RMAN> alter database mount;

  23. database mounted
  24. released channel: ORA_DISK_1

  25. RMAN> restore database until time "to_date(\'2015-03-17 11:46:10\',\'yyyy-mm-dd hh24:mi:ss\')";

  26. Starting restore at 17-MAR-15
  27. using channel ORA_DISK_1

  28. channel ORA_DISK_1: starting datafile backup set restore
  29. channel ORA_DISK_1: specifying datafile(s) to restore from backup set
  30. channel ORA_DISK_1: restoring datafile 00001 to /oracle/oradata/psd/system01.dbf
  31. channel ORA_DISK_1: restoring datafile 00002 to /oracle/oradata/psd/sysaux01.dbf
  32. channel ORA_DISK_1: restoring datafile 00003 to /oracle/oradata/psd/undotbs01.dbf
  33. channel ORA_DISK_1: restoring datafile 00004 to /oracle/oradata/psd/users01.dbf
  34. channel ORA_DISK_1: reading from backup piece /home/oracle/backup/psd_03q224s8_1_1.bak
  35. channel ORA_DISK_1: piece handle=/home/oracle/backup/psd_03q224s8_1_1.bak tag=TAG20150317T114200
  36. channel ORA_DISK_1: restored backup piece 1
  37. channel ORA_DISK_1: restore complete, elapsed time: 00:00:56
  38. Finished restore at 17-MAR-15

  39. RMAN> recover database until time "to_date(\'2015-03-17 11:46:10\',\'yyyy-mm-dd hh24:mi:ss\')";

  40. Starting recover at 17-MAR-15
  41. using channel ORA_DISK_1

  42. starting media recovery

  43. unable to find archived log
  44. archived log thread=1 sequence=17
  45. RMAN-00571: ===========================================================
  46. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  47. RMAN-00571: ===========================================================
  48. RMAN-03002: failure of recover command at 03/17/2015 12:35:48
  49. RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 17 and starting SCN of 1278496
這是報了個錯無,說17號歸檔找不到,我們把主庫的17號歸檔考過來,我考到了/home/oracle/backup 下面了,然後繼續恢復


  1. RMAN> catalog start with '/home/oracle/backup';

  2. searching for all files that match the pattern /home/oracle/backup

  3. List of Files Unknown to the Database
  4. =====================================
  5. File Name: /home/oracle/backup/psd_04q224vi_1_1.bak
  6. File Name: /home/oracle/backup/o1_mf_1_17_bjh8qp80_.arc
  7. File Name: /home/oracle/backup/o1_mf_1_16_bjh8mbov_.arc
  8. File Name: /home/oracle/backup/o1_mf_1_20_bjh9x3xb_.arc
  9. File Name: /home/oracle/backup/o1_mf_1_18_bjh9wyqj_.arc
  10. File Name: /home/oracle/backup/o1_mf_1_19_bjh9x0hy_.arc
  11. File Name: /home/oracle/backup/arch_05q224vm_1_1.bak

  12. Do you really want to catalog the above files (enter YES or NO)? yes
  13. cataloging files...
  14. cataloging done

  15. List of Cataloged Files
  16. =======================
  17. File Name: /home/oracle/backup/psd_04q224vi_1_1.bak
  18. File Name: /home/oracle/backup/o1_mf_1_17_bjh8qp80_.arc
  19. File Name: /home/oracle/backup/o1_mf_1_16_bjh8mbov_.arc
  20. File Name: /home/oracle/backup/o1_mf_1_20_bjh9x3xb_.arc
  21. File Name: /home/oracle/backup/o1_mf_1_18_bjh9wyqj_.arc
  22. File Name: /home/oracle/backup/o1_mf_1_19_bjh9x0hy_.arc
  23. File Name: /home/oracle/backup/arch_05q224vm_1_1.bak

  24. RMAN> recover database until time "to_date(\'2015-03-17 11:46:10\',\'yyyy-mm-dd hh24:mi:ss\')";

  25. Starting recover at 17-MAR-15
  26. using channel ORA_DISK_1

  27. starting media recovery

  28. archived log for thread 1 with sequence 17 is already on disk as file /home/oracle/backup/o1_mf_1_17_bjh8qp80_.arc
  29. archived log for thread 1 with sequence 18 is already on disk as file /home/oracle/backup/o1_mf_1_18_bjh9wyqj_.arc
  30. archived log file name=/home/oracle/backup/o1_mf_1_17_bjh8qp80_.arc thread=1 sequence=17
  31. archived log file name=/home/oracle/backup/o1_mf_1_18_bjh9wyqj_.arc thread=1 sequence=18
  32. media recovery complete, elapsed time: 00:00:01
  33. Finished recover at 17-MAR-15

  34. RMAN> alter database open;

  35. RMAN-00571: ===========================================================
  36. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  37. RMAN-00571: ===========================================================
  38. RMAN-03002: failure of alter db command at 03/17/2015 12:38:58
  39. ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

  40. RMAN> alter database open resetlogs;

  41. database opened

這時候資料庫已經開啟,我們看看scott使用者下的資料


點選(此處)摺疊或開啟

  1. SQL> conn scott/scott
  2. Connected.
  3. SQL> select * from tab;

  4. TNAME             TABTYPE    CLUSTERID
  5. ------------------------------ ------- ----------
  6. BIN$EWNb3bwua9TgU5F3qMA7BA==$0 TABLE
  7. BIN$EWNb3bwva9TgU5F3qMA7BA==$0 TABLE
  8. BIN$EWNzFGZja8TgU5F3qMDpoQ==$0 TABLE
  9. BIN$EWNzFGZka8TgU5F3qMDpoQ==$0 TABLE
  10. BIN$EWOQLk80bF3gU5F3qMBi4g==$0 TABLE
  11. BIN$EWOQLk81bF3gU5F3qMBi4g==$0 TABLE
  12. BIN$EWOU7d6fbGPgU5F3qMA5vw==$0 TABLE
  13. BIN$EWOniXMLbHvgU5F3qMAS1g==$0 TABLE
  14. BIN$EWOniXMMbHvgU5F3qMAS1g==$0 TABLE
  15. BIN$EWOniXMNbHvgU5F3qMAS1g==$0 TABLE
  16. BIN$EWOniXMObHvgU5F3qMAS1g==$0 TABLE

  17. TNAME             TABTYPE    CLUSTERID
  18. ------------------------------ ------- ----------
  19. BIN$EWPg+H8lbNLgU5F3qMCj4g==$0 TABLE
  20. BIN$EWPg+H8mbNLgU5F3qMCj4g==$0 TABLE
  21. BIN$EWPg+H8nbNLgU5F3qMCj4g==$0 TABLE
  22. BIN$EWTPDfF1bmPgU5F3qMBohA==$0 TABLE
  23. BIN$EWTPDfF2bmPgU5F3qMBohA==$0 TABLE
  24. BIN$EWTPDfF3bmPgU5F3qMBohA==$0 TABLE
  25. BIN$EWTSV1AibnLgU5F3qMCKBg==$0 TABLE
  26. BIN$EWTaumLtbn7gU5F3qMAgNQ==$0 TABLE
  27. BIN$EWTdffDnboXgU5F3qMCDZg==$0 TABLE
  28. BIN$EWTdffDoboXgU5F3qMCDZg==$0 TABLE
  29. BIN$EWTdffDpboXgU5F3qMCDZg==$0 TABLE

  30. TNAME             TABTYPE    CLUSTERID
  31. ------------------------------ ------- ----------
  32. BIN$EWVlDuUgb2jgU5F3qMAyEQ==$0 TABLE
  33. BIN$EWi11zOecYPgU5F3qMAYuA==$0 TABLE
  34. BIN$EWjjuPdrc7fgU5F3qMD+ag==$0 TABLE
  35. BIN$EWjqnThDc77gU5F3qMC90A==$0 TABLE
  36. BIN$EWjqnThEc77gU5F3qMC90A==$0 TABLE
  37. BIN$EWlYdSbqdmHgU5F3qMBLJg==$0 TABLE
  38. BIN$EWlpmtpQdoXgU5F3qMAiMw==$0 TABLE
  39. BONUS             TABLE
  40. DEPT             TABLE
  41. DEPT1             TABLE
  42. EMP             TABLE

  43. TNAME             TABTYPE    CLUSTERID
  44. ------------------------------ ------- ----------
  45. SALGRADE         TABLE
  46. T1             TABLE
  47. T2             TABLE

  48. 36 rows selected.

  49. SQL> select * from t1;

  50.     ID
  51. ----------
  52.      1
  53.      2
  54.      3
  55.      4
  56.      5
  57.      6
  58.      7
  59.      8
  60.      9
  61.     10

  62. 10 rows selected.

  63. SQL> select * from t2;

  64.     ID
  65. ----------
  66.      1
  67.      2
  68.      3
  69.      4
  70.      5
  71.      6
  72.      7
  73.      8
  74.      9
  75.     10

  76. 10 rows selected.

  77. SQL>

發現scott回收站裡有很多垃圾表,可以無視,我們發現t1,t2的資料都正常,這時候只要把scott的資料匯出來再匯入到主庫就好了


  1. [oracle@test ~]$ expdp scott/scott dumpfile=scott.dmp directory=dir schemas=scott;
  2. Export: Release 11.2.0.3.0 - Production on Tue Mar 17 13:17:05 2015
  3. Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
  4. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  5. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  6. Starting \"SCOTT\".\"SYS_EXPORT_SCHEMA_01\": scott/******** dumpfile=scott.dmp directory=dir schemas=scott
  7. Estimate in progress using BLOCKS method...
  8. Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
  9. Total estimation using BLOCKS method: 384 KB
  10. Processing object type SCHEMA_EXPORT/USER
  11. Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
  12. Processing object type SCHEMA_EXPORT/ROLE_GRANT
  13. Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
  14. Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
  15. Processing object type SCHEMA_EXPORT/TABLE/TABLE
  16. Processing object type SCHEMA_EXPORT/TABLE/COMMENT
  17. Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
  18. Processing object type SCHEMA_EXPORT/PROCEDURE/GRANT/OWNER_GRANT/OBJECT_GRANT
  19. Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
  20. Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
  21. Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
  22. Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
  23. Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
  24. Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
  25. . . exported \"SCOTT\".\"DEPT\" 5.937 KB 4 rows
  26. . . exported \"SCOTT\".\"DEPT1\" 5.515 KB 4 rows
  27. . . exported \"SCOTT\".\"EMP\" 8.570 KB 14 rows
  28. . . exported \"SCOTT\".\"SALGRADE\" 5.867 KB 5 rows
  29. . . exported \"SCOTT\".\"T1\" 5.070 KB 10 rows
  30. . . exported \"SCOTT\".\"T2\" 5.070 KB 10 rows
  31. . . exported \"SCOTT\".\"BONUS\" 0 KB 0 rows
  32. Master table \"SCOTT\".\"SYS_EXPORT_SCHEMA_01\" successfully loaded/unloaded
  33. ******************************************************************************
  34. Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
  35. /home/oracle/scott.dmp
  36. Job \"SCOTT\".\"SYS_EXPORT_SCHEMA_01\" successfully completed at 13:18:34
  37. [oracle@test ~]$ scp scott.dmp psd:/home/oracle
  38. The authenticity of host \'psd (192.168.119.145)\' can\'t be established.
  39. RSA key fingerprint is 67:e2:04:8e:aa:42:f1:97:c6:14:69:36:ef:86:2e:b0.
  40. Are you sure you want to continue connecting (yes/no)? yes
  41. Warning: Permanently added \'psd,192.168.119.145\' (RSA) to the list of known hosts.
  42. oracle@psd\'s password:
  43. scott.dmp 100% 288KB 288.0KB/s 00:00
  44. [oracle@test ~]$
  45. [oracle@psd ~]$ impdp system/oracle dumpfile=scott.dmp directory=dir ;
  46. Import: Release 11.2.0.3.0 - Production on Tue Mar 17 13:20:05 2015
  47. Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
  48. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  49. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  50. Master table \"SYSTEM\".\"SYS_IMPORT_FULL_01\" successfully loaded/unloaded
  51. Starting \"SYSTEM\".\"SYS_IMPORT_FULL_01\": system/******** dumpfile=scott.dmp directory=dir
  52. Processing object type SCHEMA_EXPORT/USER
  53. Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
  54. Processing object type SCHEMA_EXPORT/ROLE_GRANT
  55. Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
  56. Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
  57. Processing object type SCHEMA_EXPORT/TABLE/TABLE
  58. Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
  59. . . imported \"SCOTT\".\"DEPT\" 5.937 KB 4 rows
  60. . . imported \"SCOTT\".\"DEPT1\" 5.515 KB 4 rows
  61. . . imported \"SCOTT\".\"EMP\" 8.570 KB 14 rows
  62. . . imported \"SCOTT\".\"SALGRADE\" 5.867 KB 5 rows
  63. . . imported \"SCOTT\".\"T1\" 5.070 KB 10 rows
  64. . . imported \"SCOTT\".\"T2\" 5.070 KB 10 rows
  65. . . imported \"SCOTT\".\"BONUS\" 0 KB 0 rows
  66. Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
  67. Processing object type SCHEMA_EXPORT/PROCEDURE/GRANT/OWNER_GRANT/OBJECT_GRANT
  68. Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
  69. ORA-39082: Object type ALTER_PROCEDURE:\"SCOTT\".\"P_INSERT\" created with compilation warnings
  70. ORA-39082: Object type ALTER_PROCEDURE:\"SCOTT\".\"P_INSERT_T\" created with compilation warnings
  71. Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
  72. Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
  73. Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
  74. Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
  75. Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
  76. Job \"SYSTEM\".\"SYS_IMPORT_FULL_01\" completed with 2 error(s) at 13:20:33
  77. [oracle@psd ~]$ sqlplus scott/scott
  78. SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 17 13:20:47 2015
  79. Copyright (c) 1982, 2011, Oracle. All rights reserved.
  80. Connected to:
  81. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  82. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  83. SQL> select * from t1;
  84. ID
  85. ----------
  86. 1
  87. 2
  88. 3
  89. 4
  90. 5
  91. 6
  92. 7
  93. 8
  94. 9
  95. 10
  96. 10 rows selected.
  97. SQL> select * from t2;
  98. ID
  99. ----------
  100. 1
  101. 2
  102. 3
  103. 4
  104. 5
  105. 6
  106. 7
  107. 8
  108. 9
  109. 10
  110. 10 rows selected.

使用者誤刪恢復完成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29339009/viewspace-1462709/,如需轉載,請註明出處,否則將追究法律責任。

相關文章