程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle 數據庫災難性環境下恢復實例(1)

Oracle 數據庫災難性環境下恢復實例(1)

編輯:Oracle教程

Oracle 數據庫災難性環境下恢復實例(1)


所謂災難性是指磁盤故障或其它原因導致數據庫相關的文件全部丟失或損壞無法進行修復,必須通過備份進行還原恢復;以下實驗模擬丟失所有數據庫文件,然後通過備份進行還原恢復。

版本和數據庫文件信息

  1. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 
  2. PL/SQL Release 11.2.0.3.0 - Production 
  3. CORE    11.2.0.3.0      Production 
  4. TNS for Linux: Version 11.2.0.3.0 - Production 
  5. NLSRTL Version 11.2.0.3.0 - Production 
  6.  
  7. SQL> column name format a50 
  8. SQL> select file#,status,name from v$datafile; 
  9.  
  10.     FILE# STATUS  NAME 
  11. ---------- ------- -------------------------------------------------- 
  12.          1 SYSTEM  /u01/oradata/sydb/system01.dbf 
  13.          2 ONLINE  /u01/oradata/sydb/sysaux01.dbf 
  14.          3 ONLINE  /u01/oradata/sydb/undotbs01.dbf 
  15.          4 ONLINE  /u01/oradata/sydb/users01.dbf 
  16.          5 ONLINE  /u01/oradata/sydb/tbs01.dbf 
  17.  
  18. SQL> column member format a50 
  19. SQL> select * from v$Logfile; 
  20.  
  21.     GROUP# STATUS  TYPE    MEMBER                                             IS_ 
  22. ---------- ------- ------- -------------------------------------------------- --- 
  23.          1         ONLINE  /u01/oradata/sydb/REDO01.LOG                       NO 
  24.          2         ONLINE  /u01/oradata/sydb/REDO02.LOG                       NO 
  25.  
  26. SQL> select * from v$controlfile; 
  27.  
  28. STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS 
  29. ------- -------------------------------------------------- --- ---------- -------------- 
  30.         /u01/oradata/sydb/control01.ctl                    NO       16384            668 

備份數據庫

注意:備份數據庫時如果配置了 configure exclude for tablespace tbsname 的表空間是不會進行備份的,恢復表空間備份configure exclude for tablespace tbsname clear;如果沒有設置自動備份控制文件和參數文件,要在備份腳本最後手動添加備份控制文件腳本;設置自動備份控制文件和參數文件:

  1. CONFIGURE CONTROLFILE AUTOBACKUP On;  
  2. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%F_%d_controlfile.bkp';  

控制文件名格式必須包含%F,%F的格式為:c-IIIIIIIIII-YYYYMMDD-QQ,IIIIIIIIII(10位)代表DBID發生災難時可以通過它知道數據庫ID,YYYYMMDD代表自動備份時的timestamp,QQ代表是十六進制的序列號,起始值為:00,最大值為:FF。 開始備份數據

  1.  run 
  2.  { 
  3.  allocate channel dev type disk; 
  4.  allocate channel dev2 type disk; 
  5.  backup incremental level 0 database plus archivelog delete input 
  6.  tag 'sydb_incr_level0' 
  7.  format '/u01/backup/%d_%s_%U'; 
  8.  release channel dev; 
  9.  release channel dev2; 
  10.  } 
  11.  
  12. allocated channel: dev 
  13. channel dev: SID=181 device type=DISK 
  14.  
  15. allocated channel: dev2 
  16. channel dev2: SID=18 device type=DISK 
  17.  
  18.  
  19. Starting backup at 29-MAY-15 
  20. current log archived 
  21. channel dev: starting archived log backup set 
  22. channel dev: specifying archived log(s) in backup set 
  23. input archived log thread=1 sequence=17 RECID=1 STAMP=880994007 
  24. channel dev: starting piece 1 at 29-MAY-15 
  25. channel dev2: starting archived log backup set 
  26. channel dev2: specifying archived log(s) in backup set 
  27. input archived log thread=1 sequence=18 RECID=2 STAMP=880994016 
  28. input archived log thread=1 sequence=19 RECID=3 STAMP=880994311 
  29. channel dev2: starting piece 1 at 29-MAY-15 
  30. channel dev: finished piece 1 at 29-MAY-15 
  31. piece handle=/u01/backup/SYDB_1_01q85q07_1_1 tag=SYDB_INCR_LEVEL0 comment=NONE 
  32. channel dev: backup set complete, elapsed time: 00:00:07 
  33. channel dev: deleting archived log(s) 
  34. archived log file name=/u01/app/product/11.2.3/db_1/dbs/arch1_17_880905808.dbf RECID=1 STAMP=880994007 
  35. channel dev2: finished piece 1 at 29-MAY-15 
  36. piece handle=/u01/backup/SYDB_2_02q85q07_1_1 tag=SYDB_INCR_LEVEL0 comment=NONE 
  37. channel dev2: backup set complete, elapsed time: 00:00:08 
  38. channel dev2: deleting archived log(s) 
  39. archived log file name=/u01/app/product/11.2.3/db_1/dbs/arch1_18_880905808.dbf RECID=2 STAMP=880994016 
  40. archived log file name=/u01/app/product/11.2.3/db_1/dbs/arch1_19_880905808.dbf RECID=3 STAMP=880994311 
  41. Finished backup at 29-MAY-15 
  42.  
  43. Starting backup at 29-MAY-15 
  44. channel dev: starting incremental level 0 datafile backup set 
  45. channel dev: specifying datafile(s) in backup set 
  46. input datafile file number=00001 name=/u01/oradata/sydb/system01.dbf 
  47. input datafile file number=00004 name=/u01/oradata/sydb/users01.dbf 
  48. input datafile file number=00005 name=/u01/oradata/sydb/tbs01.dbf 
  49. channel dev: starting piece 1 at 29-MAY-15 
  50. channel dev2: starting incremental level 0 datafile backup set 
  51. channel dev2: specifying datafile(s) in backup set 
  52. input datafile file number=00003 name=/u01/oradata/sydb/undotbs01.dbf 
  53. input datafile file number=00002 name=/u01/oradata/sydb/sysaux01.dbf 
  54. channel dev2: starting piece 1 at 29-MAY-15 
  55. channel dev: finished piece 1 at 29-MAY-15 
  56. piece handle=/u01/app/product/11.2.3/db_1/dbs/03q85q0f_1_1 tag=TAG20150529T163839 comment=NONE 
  57. channel dev: backup set complete, elapsed time: 00:00:35 
  58. channel dev2: finished piece 1 at 29-MAY-15 
  59. piece handle=/u01/app/product/11.2.3/db_1/dbs/04q85q0f_1_1 tag=TAG20150529T163839 comment=NONE 
  60. channel dev2: backup set complete, elapsed time: 00:00:35 
  61. Finished backup at 29-MAY-15 
  62.  
  63. Starting backup at 29-MAY-15 
  64. current log archived 
  65. channel dev: starting archived log backup set 
  66. channel dev: specifying archived log(s) in backup set 
  67. input archived log thread=1 sequence=20 RECID=4 STAMP=880994354 
  68. channel dev: starting piece 1 at 29-MAY-15 
  69. channel dev: finished piece 1 at 29-MAY-15 
  70. piece handle=/u01/backup/SYDB_5_05q85q1i_1_1 tag=SYDB_INCR_LEVEL0 comment=NONE 
  71. channel dev: backup set complete, elapsed time: 00:00:01 
  72. channel dev: deleting archived log(s) 
  73. archived log file name=/u01/app/product/11.2.3/db_1/dbs/arch1_20_880905808.dbf RECID=4 STAMP=880994354 
  74. Finished backup at 29-MAY-15 
  75.  
  76. Starting Control File and SPFILE Autobackup at 29-MAY-15 
  77. piece handle=/u01/backup/c-3634177744-20150529-00_control.bkp comment=NONE 
  78. Finished Control File and SPFILE Autobackup at 29-MAY-15 
  79.  
  80. released channel: dev 
  81.  
  82. released channel: dev2 

通過備份日志可以知道哪些數據文件被備份,哪些沒有被備份或沒有備份成功,比如:發現較多數據塊損壞、表空間被排除備份(exclude)、表空間被skip;關注這些信息非常重要,因為一旦災難發生,它意味著你的數據庫恢復成功率,也有助於對備份腳本的優化和調整。




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved