User Management Complete Recovery in ARCHIVELOG Mode


准备工作,创建一个app1表空间。在archivelog mode下进行一冷备和对app1_01.dbf空间进行热备

[sql]
  1. [Oracle@oracle11gR2 ~]$ sqlplus /nolog  
  2. idle> conn /as sysdba  
  3. Connected.  
  4. sys@DENVER> archive log list  
  5. Database log mode              Archive Mode  
  6. Automatic archival             Enabled  
  7. Archive destination            /u01/admin/denver/archdest  
  8. Oldest online log sequence     1  
  9. Next log sequence to archive   2  
  10. Current log sequence           2  
  11. sys@DENVER> CREATE TABLESPACE app1 DATAFILE '/u01/oradata/md/app1_01.dbf' SIZE 10M extent management local uniform segment space management auto;  
  12. Tablespace created.  
  13.   
  14. sys@DENVER> CREATE USER user1 IDENTIFIED BY user1 DEFAULT TABLESPACE app1;  
  15. User created.  
  16.   
  17. sys@DENVER> GRANT connect, resource TO user1;  
  18. Grant succeeded.  
  19.   
  20. sys@DENVER> conn user1/user1  
  21. Connected.  
  22. user1@DENVER> CREATE TABLE t(id intname varchar2(10));  
  23. Table created.  
  24.   
  25. user1@DENVER> INSERT INTO t VALUES(0,'bbk');  
  26. 1 row created.  
  27.   
  28. user1@DENVER> COMMIT;  
  29. Commit complete.  
  30.   
  31. user1@DENVER> SELECT * FROM t;  
  32.   
  33.   
  34.         ID NAME  
  35. ---------- ----------   
  36.          0 bbk  
  37.   
  38. user1@DENVER> conn /as sysdba  
  39. Connected.  
  40. sys@DENVER> @coldbackup  
  41.   
  42. sys@DENVER> conn user1/user1  
  43. Connected.  
  44.   
  45. user1@DENVER> set heading on  
  46. user1@DENVER> select * from t;  
  47.   
  48.         ID NAME  
  49. ---------- ----------   
  50.          0 bbk  
向app1空间内添加内容,并热备app1

[sql]
  1. sys@DENVER> conn user1/user1  
  2. Connected.  
  3. user1@DENVER> SELECT * FROM t;  
  4.   
  5.         ID NAME  
  6. ---------- ----------   
  7.          0 bbk  
  8. user1@DENVER> set feedback on  
  9. user1@DENVER> INSERT INTO t VALUES(1,'bbk');  
  10. 1 row created.  
  11.   
  12. user1@DENVER> COMMIT;  
  13. Commit complete.  
  14.   
  15. user1@DENVER> SELECT * FROM t;  
  16.   
  17.         ID NAME  
  18. ---------- ----------   
  19.          0 bbk  
  20.          1 bbk  
  21.   
  22. rows selected.  
  23.   
  24. user1@DENVER> conn /as sysdba  
  25. Connected.  
  26. sys@DENVER> ALTER TABLESPACE app1 BEGIN BACKUP;  
  27. Tablespace altered.  
  28.   
  29. sys@DENVER> !cp /u01/oradata/md/app1_01.dbf /tmp/backup/hot  
  30.   
  31. sys@DENVER> !ls -l /tmp/backup/hot  
  32. total 10268  
  33. -rw-r----- 1 oracle oinstall 10493952 Jan  6 09:09 app1_01.dbf   
  34.   
  35. sys@DENVER> ALTER TABLESPACE app1 END BACKUP;  
  36. Tablespace altered.  

第一种情况:Complete Recovery of a Closed Database

Closed database reocvery is used for :
  1. System tablespace datafiles
  2. Rollback segment datafiles
  3. Whole database

Steps: shut down the instance -----> Restore dtafile -----> Apply archvied log and redo log files -------> Open the databse

以下实验模拟了数据库的损坏:

[sql]
  1. sys@DENVER> conn /as sysdba  
  2. Connected.  
  3. sys@DENVER> conn user1/user1  
  4. Connected.  
  5. user1@DENVER> SELECT * FROM t;  
  6.   
  7.         ID NAME  
  8. ---------- ----------   
  9.          0 bbk  
  10.          1 bbk  
  11.   
  12. rows selected.  
  13.   
  14. user1@DENVER> INSERT INTO t VALUES(2,'bbk');  
  15. 1 row created.  
  16.   
  17. user1@DENVER> COMMIT;  
  18. Commit complete.  
  19.   
  20. user1@DENVER> SELECT * FROM t;  
  21.   
  22.         ID NAME  
  23. ---------- ----------   
  24.          0 bbk  
  25.          1 bbk  
  26.          2 bbk  
  27. rows selected.  
  28.   
  29.   
  30. user1@DENVER> conn /as sysdba  
  31. Connected.  
  32. sys@DENVER> !ls -l /u01/admin/denver/archdest  
  33. total 10752  
  34. -rw-r----- 1 oracle oinstall 1778688 Jan  6 07:43 1_1_771835295.arc   
  35. -rw-r----- 1 oracle oinstall 1638400 Jan  6 09:11 1_2_771835295.arc   
  36. -rw-r----- 1 oracle oinstall    1536 Jan  6 09:11 1_3_771835295.arc   
  37. -rw-r----- 1 oracle oinstall    1536 Jan  6 09:11 1_4_771835295.arc   
  38.   
  39. sys@DENVER> ALTER SYSTEM SWITCH LOGFILE;  
  40.   
  41. System altered.  
  42.   
  43. sys@DENVER> ALTER SYSTEM SWITCH LOGFILE;  
  44.   
  45. System altered.  
  46.   
  47. sys@DENVER> ALTER SYSTEM SWITCH LOGFILE;  
  48.   
  49. System altered.  
  50.   
  51. sys@DENVER> !ls -l /u01/admin/denver/archdest  
  52. total 11340  
  53. -rw-r----- 1 oracle oinstall 1778688 Jan  6 07:43 1_1_771835295.arc   
  54. -rw-r----- 1 oracle oinstall 1638400 Jan  6 09:11 1_2_771835295.arc   
  55. -rw-r----- 1 oracle oinstall    1536 Jan  6 09:11 1_3_771835295.arc   
  56. -rw-r----- 1 oracle oinstall    1536 Jan  6 09:11 1_4_771835295.arc   
  57. -rw-r----- 1 oracle oinstall  571904 Jan  6 09:13 1_5_771835295.arc   
  58. -rw-r----- 1 oracle oinstall    1024 Jan  6 09:13 1_6_771835295.arc   
  59. -rw-r----- 1 oracle oinstall    5632 Jan  6 09:13 1_7_771835295.arc   
  60.   
  61. sys@DENVER> !rm -f /u01/oradata/md/*.dbf  
  62.   
  63. > !ls -l /u01/oradata/md/  
  64. total 163444  
  65. -rw-r----- 1 oracle oinstall  9846784 Jan  6 09:22 control01.ctl   
  66. drwx------ 2 oracle oinstall    16384 Jan  6 05:18 lost+found   
  67. -rw-r----- 1 oracle oinstall 52429312 Jan  6 09:13 redo01.log   
  68. -rw-r----- 1 oracle oinstall 52429312 Jan  6 09:22 redo02.log   
  69. -rw-r----- 1 oracle oinstall 52429312 Jan  6 09:13 redo03.log  
针对以上情况进行Recovery

[sql]
  1. sys@DENVER> shutdown immediate  
  2. ORA-01116: error in opening database file 2  
  3. ORA-01110: data file 2: '/u01/oradata/md/sysaux01.dbf'  
  4. ORA-27041: unable to open file  
  5. Linux Error: 2: No such file or directory  
  6. Additional information: 3  
  7. sys@DENVER> shutdown abort  
  8. ORACLE instance shut down.  
  9. sys@DENVER> !cp /tmp/backup/cold/*.dbf /u01/oradata/md  
  10.   
  11. sys@DENVER> !ls -l /u01/oradata/md  
  12. total 2250172  
  13. -rw-r----- 1 oracle oinstall  10493952 Jan  6 09:23 app1_01.dbf   
  14. -rw-r----- 1 oracle oinstall   9846784 Jan  6 09:22 control01.ctl   
  15. -rw-r----- 1 oracle oinstall 104865792 Jan  6 09:23 example01.dbf   
  16. drwx------ 2 oracle oinstall     16384 Jan  6 05:18 lost+found   
  17. -rw-r----- 1 oracle oinstall 536879104 Jan  6 09:24 perfstat_01.dbf   
  18. -rw-r----- 1 oracle oinstall  52429312 Jan  6 09:13 redo01.log   
  19. -rw-r----- 1 oracle oinstall  52429312 Jan  6 09:22 redo02.log   
  20. -rw-r----- 1 oracle oinstall  52429312 Jan  6 09:13 redo03.log   
  21. -rw-r----- 1 oracle oinstall 566239232 Jan  6 09:25 sysaux01.dbf   
  22. -rw-r----- 1 oracle oinstall 765468672 Jan  6 09:25 system01.dbf   
  23. -rw-r----- 1 oracle oinstall  30416896 Jan  6 09:25 temp01.dbf   
  24. -rw-r----- 1 oracle oinstall  20979712 Jan  6 09:25 tools01.dbf   
  25. -rw-r----- 1 oracle oinstall  89137152 Jan  6 09:26 undotbs01.dbf   
  26. -rw-r----- 1 oracle oinstall  10493952 Jan  6 09:26 user02.dbf   
  27. -rw-r----- 1 oracle oinstall  11804672 Jan  6 09:26 users01.dbf   
  28.   
  29. sys@DENVER> startup  
  30. ORACLE instance started.  
  31.   
  32. Total System Global Area  422670336 bytes  
  33. Fixed Size                  1336960 bytes  
  34. Variable Size             314575232 bytes  
  35. Database Buffers          100663296 bytes  
  36. Redo Buffers                6094848 bytes  
  37. Database mounted.  
  38. ORA-01113: file 1 needs media recovery  
  39. ORA-01110: data file 1: '/u01/oradata/md/system01.dbf'  
  40.   
  41.   
  42. sys@DENVER> col error format a18  
  43. sys@DENVER> select * from v$recover_file;  
  44.   
  45.      FILE# ONLINE  ONLINE_ ERROR                 CHANGE# TIME  
  46. ---------- ------- ------- ------------------ ---------- ---------   
  47.          1 ONLINE  ONLINE                        1303743 06-JAN-12  
  48.          2 ONLINE  ONLINE                        1303743 06-JAN-12  
  49.          3 ONLINE  ONLINE                        1303743 06-JAN-12  
  50.          4 ONLINE  ONLINE                        1303743 06-JAN-12  
  51.          5 ONLINE  ONLINE                        1303743 06-JAN-12  
  52.          6 ONLINE  ONLINE                        1303743 06-JAN-12  
  53.          7 ONLINE  ONLINE                        1303743 06-JAN-12  
  54.          8 ONLINE  ONLINE                        1303743 06-JAN-12  
  55.          9 ONLINE  ONLINE                        1303743 06-JAN-12  
  56.   
  57. rows selected.  
  58.   
  59. sys@DENVER> set autorecovery off  
  60. sys@DENVER> col name format a40  
  61. sys@DENVER> select file#, ts#, name from v$datafile;  
  62.   
  63.      FILE#        TS# NAME  
  64. ---------- ---------- ----------------------------------------   
  65.          1          0 /u01/oradata/md/system01.dbf  
  66.          2          1 /u01/oradata/md/sysaux01.dbf  
  67.          3          2 /u01/oradata/md/undotbs01.dbf  
  68.          4          4 /u01/oradata/md/users01.dbf  
  69.          5          6 /u01/oradata/md/example01.dbf  
  70.          6          7 /u01/oradata/md/perfstat_01.dbf  
  71.          7          4 /u01/oradata/md/user02.dbf  
  72.          8          8 /u01/oradata/md/tools01.dbf  
  73.          9          9 /u01/oradata/md/app1_01.dbf  
  74.   
  75. rows selected.  
  76.   
  77. sys@DENVER> recover datafile 1;  
  78. ORA-00279: change 1303743 generated at 01/06/2012 08:58:36 needed for thread 1  
  79. ORA-00289: suggestion : /u01/admin/denver/archdest/1_2_771835295.arc  
  80. ORA-00280: change 1303743 for thread 1 is in sequence #2  
  81. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  82.   
  83. ORA-00279: change 1304127 generated at 01/06/2012 09:11:19 needed for thread 1  
  84. ORA-00289: suggestion : /u01/admin/denver/archdest/1_3_771835295.arc  
  85. ORA-00280: change 1304127 for thread 1 is in sequence #3  
  86. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  87.   
  88. ORA-00279: change 1304133 generated at 01/06/2012 09:11:22 needed for thread 1  
  89. ORA-00289: suggestion : /u01/admin/denver/archdest/1_4_771835295.arc  
  90. ORA-00280: change 1304133 for thread 1 is in sequence #4  
  91. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  92.   
  93. ORA-00279: change 1304137 generated at 01/06/2012 09:11:24 needed for thread 1  
  94. ORA-00289: suggestion : /u01/admin/denver/archdest/1_5_771835295.arc  
  95. ORA-00280: change 1304137 for thread 1 is in sequence #5  
  96. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  97.   
  98. Log applied.  
  99. Media recovery complete.  
  100. sys@DENVER> select * from v$recover_file;  
  101.   
  102.      FILE# ONLINE  ONLINE_ ERROR                 CHANGE# TIME  
  103. ---------- ------- ------- ------------------ ---------- ---------   
  104.          2 ONLINE  ONLINE                        1303743 06-JAN-12  
  105.          3 ONLINE  ONLINE                        1303743 06-JAN-12  
  106.          4 ONLINE  ONLINE                        1303743 06-JAN-12  
  107.          5 ONLINE  ONLINE                        1303743 06-JAN-12  
  108.          6 ONLINE  ONLINE                        1303743 06-JAN-12  
  109.          7 ONLINE  ONLINE                        1303743 06-JAN-12  
  110.          8 ONLINE  ONLINE                        1303743 06-JAN-12  
  111.          9 ONLINE  ONLINE                        1303743 06-JAN-12  
  112.   
  113. rows selected.  
  114.   
  115. sys@DENVER> recover datafile '/u01/oradata/md/sysaux01.dbf';  
  116. ORA-00279: change 1303743 generated at 01/06/2012 08:58:36 needed for thread 1  
  117. ORA-00289: suggestion : /u01/admin/denver/archdest/1_2_771835295.arc  
  118. ORA-00280: change 1303743 for thread 1 is in sequence #2  
  119.   
  120. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  121.   
  122. ORA-00279: change 1304127 generated at 01/06/2012 09:11:19 needed for thread 1  
  123. ORA-00289: suggestion : /u01/admin/denver/archdest/1_3_771835295.arc  
  124. ORA-00280: change 1304127 for thread 1 is in sequence #3  
  125.   
  126.   
  127. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  128. ORA-00279: change 1304133 generated at 01/06/2012 09:11:22 needed for thread 1  
  129. ORA-00289: suggestion : /u01/admin/denver/archdest/1_4_771835295.arc  
  130. ORA-00280: change 1304133 for thread 1 is in sequence #4  
  131.   
  132.   
  133. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  134. ORA-00279: change 1304137 generated at 01/06/2012 09:11:24 needed for thread 1  
  135. ORA-00289: suggestion : /u01/admin/denver/archdest/1_5_771835295.arc  
  136. ORA-00280: change 1304137 for thread 1 is in sequence #5  
  137.   
  138. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  139.   
  140. Log applied.  
  141. Media recovery complete.  
  142. sys@DENVER> set autorecover on  
  143. SP2-0735: unknown SET option beginning "autorecove..."  
  144. sys@DENVER> set autorecovery on  
  145. sys@DENVER> recover database;  
  146. ORA-00279: change 1303743 generated at 01/06/2012 08:58:36 needed for thread 1  
  147. ORA-00289: suggestion : /u01/admin/denver/archdest/1_2_771835295.arc  
  148. ORA-00280: change 1303743 for thread 1 is in sequence #2  
  149.   
  150. ORA-00279: change 1304127 generated at 01/06/2012 09:11:19 needed for thread 1  
  151. ORA-00289: suggestion : /u01/admin/denver/archdest/1_3_771835295.arc  
  152. ORA-00280: change 1304127 for thread 1 is in sequence #3  
  153.   
  154. ORA-00279: change 1304133 generated at 01/06/2012 09:11:22 needed for thread 1  
  155. ORA-00289: suggestion : /u01/admin/denver/archdest/1_4_771835295.arc  
  156. ORA-00280: change 1304133 for thread 1 is in sequence #4  
  157.   
  158. ORA-00279: change 1304137 generated at 01/06/2012 09:11:24 needed for thread 1  
  159. ORA-00289: suggestion : /u01/admin/denver/archdest/1_5_771835295.arc  
  160. ORA-00280: change 1304137 for thread 1 is in sequence #5  
  161.   
  162. Log applied.  
  163. Media recovery complete.  
  164.   
  165. sys@DENVER> select * from v$recover_file;  
  166. no rows selected  
  167.   
  168. sys@DENVER> alter database open;  
  169. Database altered.  
  170.   
  171. sys@DENVER> select * from user1.t;  
  172.         ID NAME  
  173. ---------- ----------------------------------------   
  174.          0 bbk  
  175.          1 bbk  
  176.          2 bbk  
  177.   
  178. rows selected.  
  179.   
  180. sys@DENVER> clear scr  
  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容