大数跨境
0
0

浅析Oracle数据库灾难性环境恢复实例思考

浅析Oracle数据库灾难性环境恢复实例思考 云容灾备份安全治理
2017-01-18
2
导读:灾难性是指磁盘故障或其它原因导致数据库相关的文件全部丢失或损坏无法进行修复,必须通过备份进行还原恢复。该实验

灾难性是指磁盘故障或其它原因导致数据库相关的文件全部丢失或损坏无法进行修复,必须通过备份进行还原恢复。该实验模拟丢失所有数据库文件,然后通过备份进行还原恢复。 

版本和数据库文件信息

  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. SQL> column name format a50 

  7. SQL> select file#,status,name from v$datafile; 

  8.     FILE# STATUS  NAME 

  9. ---------- ------- -------------------------------------------------- 

  10.          1 SYSTEM  /u01/oradata/sydb/system01.dbf 

  11.          2 ONLINE  /u01/oradata/sydb/sysaux01.dbf 

  12.          3 ONLINE  /u01/oradata/sydb/undotbs01.dbf 

  13.          4 ONLINE  /u01/oradata/sydb/users01.dbf 

  14.          5 ONLINE  /u01/oradata/sydb/tbs01.dbf 

  15. SQL> column member format a50 

  16. SQL> select * from v$Logfile; 

  17.     GROUP# STATUS  TYPE    MEMBER                                             IS_ 

  18. ---------- ------- ------- -------------------------------------------------- --- 

  19.          1         ONLINE  /u01/oradata/sydb/REDO01.LOG                       NO 

  20.          2         ONLINE  /u01/oradata/sydb/REDO02.LOG                       NO 

  21. SQL> select * from v$controlfile; 

  22. STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS 

  23. ------- -------------------------------------------------- --- ---------- -------------- 

  24.         /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.  } 

通过备份日志可以知道哪些数据文件被备份,哪些没有被备份或没有备份成功,比如:发现较多数据块损坏、表空间被排除备份(exclude)、表空间被skip;关注这些信息非常重要,因为一旦灾难发生,它意味着你的数据库恢复成功率,也有助于对备份脚本的优化和调整。

验证数据库可恢复性

验证可恢复性可以发现一些忽略的问题,及时处理;

  1. rm /u01/oradata/sydb/system01.dbf 

  2. rm /u01/oradata/sydb/sysaux01.dbf 

  3. rm /u01/oradata/sydb/undotbs01.dbf 

  4. rm /u01/oradata/sydb/tbs01.dbf 

  5. rm /u01/oradata/sydb/control01.ctl 

  6. rm /u01/oradata/sydb/REDO01.LOG  

  7. rm /u01/oradata/sydb/REDO02.LOG  

  8. rm /u01/app/product/11.2.3/db_1/dbs/spfilesydb.ora 

数据库恢复

恢复参数文件和控制文件

数据库启动时会先查找spfile,然后在找spfile.ora,再找文件initpfile,如果这些文件都没有找到报错并停止启动;so 先创建一个基本的init pfile;

  1. $ vim /u01/app/product/11.2.3/db_1/dbs/initsydb.ora 

  2. db_name='sydb' 

  3. memory_target=200m 

  4. control_files='/u01/oradata/sydb/control01.ctl' 

  5. db_block_size=32768 

如果你的数据块大小为非8kb,你又想在恢复控制文件后完成其它操作,如mount控制文件,则你必须在init 文件中指定数据块大小;

  1. SQL> startup nomount 

  2. ORACLE instance started. 


  3. Total System Global Area  208769024 bytes 

  4. Fixed Size                  2226936 bytes 

  5. Variable Size             109053192 bytes 

  6. Database Buffers           92274688 bytes 

  7. Redo Buffers                5214208 bytes 


    RMAN> restore spfile from '/u01/backup/c-3634177744-20150529-00_control.bkp'

    RMAN> restore controlfile from '/u01/backup/c-3634177744-20150529-00_control.bkp'


查看备份文件和确定可恢复的最大归档日志序列

注:如果目录名发生改变或文件发生位置移动,先使用 catalog start with '/backup' 将文件catalog;

  1. RMAN> list backup of database

  2. List of Backup Sets 

  3. =================== 

  4. BS Key  Type LV Size       Device Type Elapsed Time Completion Time 

  5. ------- ---- -- ---------- ----------- ------------ --------------- 

  6. 3       Incr 0  180.53M    DISK        00:00:29     29-MAY-15       

  7.         BP Key: 3   Status: AVAILABLE  Compressed: NO  Tag: TAG20150529T163839 

  8.         Piece Name: /u01/app/product/11.2.3/db_1/dbs/04q85q0f_1_1 

  9.   List of Datafiles in backup set 3 

  10.   File LV Type Ckp SCN    Ckp Time  Name 

  11.   ---- -- ---- ---------- --------- ---- 

  12.   2    0  Incr 436655     29-MAY-15 /u01/oradata/sydb/sysaux01.dbf 

  13.   3    0  Incr 436655     29-MAY-15 /u01/oradata/sydb/undotbs01.dbf 

  14.  

  15. BS Key  Type LV Size       Device Type Elapsed Time Completion Time 

  16. ------- ---- -- ---------- ----------- ------------ --------------- 

  17. 4       Incr 0  380.94M    DISK        00:00:29     29-MAY-15       

  18.         BP Key: 4   Status: AVAILABLE  Compressed: NO  Tag: TAG20150529T163839 

  19.         Piece Name: /u01/app/product/11.2.3/db_1/dbs/03q85q0f_1_1 

  20.   List of Datafiles in backup set 4 

  21.   File LV Type Ckp SCN    Ckp Time  Name 

  22.   ---- -- ---- ---------- --------- ---- 

  23.   1    0  Incr 436654     29-MAY-15 /u01/oradata/sydb/system01.dbf 

  24.   4    0  Incr 436654     29-MAY-15 /u01/oradata/sydb/users01.dbf 

  25.   5    0  Incr 436654     29-MAY-15 /u01/oradata/sydb/tbs01.dbf

  26. RMAN> list backup of archivelog all

  27. List of Backup Sets 

  28. =================== 

  29. BS Key  Size       Device Type Elapsed Time Completion Time 

  30. ------- ---------- ----------- ------------ --------------- 

  31. 1       45.49M     DISK        00:00:04     29-MAY-15       

  32.         BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: SYDB_INCR_LEVEL0 

  33.         Piece Name: /u01/backup/SYDB_1_01q85q07_1_1

  34.   List of Archived Logs in backup set 1 

  35.   Thrd Seq     Low SCN    Low Time  Next SCN   Next Time 

  36.   ---- ------- ---------- --------- ---------- --------- 

  37.   1    17      427739     29-MAY-15 436110     29-MAY-15 

  38.  

  39. BS Key  Size       Device Type Elapsed Time Completion Time 

  40. ------- ---------- ----------- ------------ --------------- 

  41. 2       43.37M     DISK        00:00:04     29-MAY-15       

  42.         BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: SYDB_INCR_LEVEL0 

  43.         Piece Name: /u01/backup/SYDB_2_02q85q07_1_1 

  44.  

  45.   List of Archived Logs in backup set 2 

  46.   Thrd Seq     Low SCN    Low Time  Next SCN   Next Time 

  47.   ---- ------- ---------- --------- ---------- --------- 

  48.   1    18      436110     29-MAY-15 436484     29-MAY-15 

  49.   1    19      436484     29-MAY-15 436643     29-MAY-15 

  50.  

  51. BS Key  Size       Device Type Elapsed Time Completion Time 

  52. ------- ---------- ----------- ------------ --------------- 

  53. 5       90.00K     DISK        00:00:00     29-MAY-15       

  54.         BP Key: 5   Status: AVAILABLE  Compressed: NO  Tag: SYDB_INCR_LEVEL0 

  55.         Piece Name: /u01/backup/SYDB_5_05q85q1i_1_1 

  56.   List of Archived Logs in backup set 5 

  57.   Thrd Seq     Low SCN    Low Time  Next SCN   Next Time 

  58.   ---- ------- ---------- --------- ---------- --------- 

  59.   1    20      436643     29-MAY-15 436756     29-MAY-15 


从上面的信息中可以看出最大可恢复到的日志序列为20,恢复时设置until sequence 21,数据库即可应用所有的归档日志;

RMAN> restore database until sequence 21;

RMAN> recover database until sequence 21; 
使用resetlogs 方式打开数据库

SQL>select file#,d.name as "FILE_NAME",t.name as "TABLESPACE_NAME",status,enabled,checkpoint_change#,checkpoint_time,(bytes/1024/1024)"BYTES_MB",blocks, 

   (create_bytes/1024/1024)create_bytes_mb,block_size   

 from v$datafile d left join v$tablespace t  on d.ts#=t.ts#; 

总结

任何时候数据库的还原和恢复因环境和错误的不一而不同,认真有效的阅读技术规范数据恢复手册文档,理解数据库工作原理,加上重复的实验方能起到良好的效果,实验本身是动手实践的步骤,但同时也是理论实践结合的强有效方式。IT运维人员以锐的嗅觉似乎总能揪出计算系统故障的根本原因从而排除故障,风险并不遥远,其实就在我们身边;其有效防范方法:永远不要对当前连接的服务器或者网络设备接口进行修改、保证所有操作都具备恢复余地、记录再记录、IT工作不相信魔法但却仰仗运气、在进行修改前对每个配置文件做好备份、监控再监控和完整可靠而熟悉流程体系。


数据灾难恢复实用性建议汇总以精确数据指导应急预案、识别并保护高优先级资源、更好的灾难抵御能力和数据容量有效管理。


 


【声明】内容源于网络
0
0
云容灾备份安全治理
分享云灾备规划、实施、运营、备份与恢复、数据安全、数据治理;窥视国内外备份软件与监控软件知识前沿水平线; 越努力,越幸运!
内容 2171
粉丝 0
云容灾备份安全治理 分享云灾备规划、实施、运营、备份与恢复、数据安全、数据治理;窥视国内外备份软件与监控软件知识前沿水平线; 越努力,越幸运!
总阅读6.5k
粉丝0
内容2.2k