设为首页 加入收藏

TOP

恢复丢失的控制文件(五)
2014-11-24 00:56:43 来源: 作者: 【 】 浏览:68
Tags:恢复 丢失 控制 文件

把控制文件备份到trace文件:

[David备注]需要先将数据库置为mount状态: alter database mount;

  1. SQL> alter database backup controlfile to trace;
  2. Database altered

(5)重建控制文件,先关闭数据库,删除之前从备份中恢复出来的控制文件,启动到nomount状态:

  1. SQL> shutdown immediate;
  2. ORA-01109: database not open
  3. Database dismounted.
  4. ORACLE instance shut down.

删除控制文件:

  1. SQL> startup nomount ;
  2. ORACLE instance started.
  3. Total System Global Area 3221225472 bytes
  4. Fixed Size 2024200 bytes
  5. Variable Size 637537528 bytes
  6. Database Buffers 2566914048 bytes
  7. Redo Buffers 14749696 bytes

[David备注]trace文件生成时会生成两个脚本:resetlogs与noresetlogs,且说明如果online redo logs还是全的,就使用noresetlogs,如果online redo logs不可用,则使用resetlogs:

-- Below are two sets of SQL statements, each of which creates a new

-- control file and uses it to open the database. The first set opens
-- the database with the NORESETLOGS option and should be used only if
-- the current versions of all online logs are available. The second
-- set opens the database with the RESETLOGS option and should be used
-- if online logs are unavailable.

(6)用noresetlogs创建,因为联机日志还在,所以可以用noresetlogs的方法创建:

  1. SQL> CREATE CONTROLFILE REUSE DATABASE
    "CTEST" NORESETLOGS ARCHIVELOG
  2. 2 MAXLOGFILES 16
  3. 3 MAXLOGMEMBERS 3
  4. 4 MAXDATAFILES 100
  5. 5 MAXINSTANCES 8
  6. 6 MAXLOGHISTORY 292
  7. 7 LOGFILE
  8. 8 GROUP 1 '/zxm/cindytest/ctest/redo01.log' SIZE 50M,
  9. 9 GROUP 2 '/zxm/cindytest/ctest/redo02.log' SIZE 50M,
  10. 10 GROUP 3 '/zxm/cindytest/ctest/redo03.log' SIZE 50M
  11. 11 -- STANDBY LOGFILE
  12. 12 DATAFILE
  13. 13 '/zxm/cindytest/ctest/system01.dbf',
  14. 14 '/zxm/cindytest/ctest/undotbs01.dbf',
  15. 15 '/zxm/cindytest/ctest/sysaux01.dbf',
  16. 16 '/zxm/cindytest/ctest/users01.dbf'
  17. 17 CHARACTER SET ZHS16GBK;
  18. Control file created.
  19. SQL> alter database open;
  20. alter database open
  21. *
  22. ERROR at line 1:
  23. ORA-01113: file 1 needs media recovery
  24. ORA-01110: data file 1: '/zxm/cindytest/ctest/system01.dbf'

7)目前数据文件还不一致,需要进行介质恢复,但是不用using子句:

  1. SQL> recover database;
  2. Media recovery complete.

(8)打开数据库:

  1. SQL> alter database open;
  2. Database altered.
[David备注]在trace文件中的步骤比这个多一些: -- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE
-- Block change tracking was enabled, so re-enable it now.
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '+DATA/ipcdb/changetracking/ctf.256.835737421' REUSE;
-- All logs need archiving and a log switch is needed.
ALTER SYSTEM ARCHIVE LOG ALL;
-- Database can now be opened normally.
ALTER DATABASE OPEN;
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATA/ipcdb/tempfile/temp.265.835737729' REUSE;
-- End of tempfile additions.

9.6.6 例子3:用resetlogs方法重建控制文件

(1)模拟过程和之前的步骤都一样,就不再演示了,主要看重建控制文件之后的操作。

(2)因为联机日志还在,如果用resetlogs方法,要求联机日志中必须要没有活动事务才行。创建控制文件的操作并不会清空当前联机日志内容,因此,如果有数据文件的不一致,当前联机日志还是可以用来恢复的;

  1. SQL> CREATE CONTROLFILE REUSE DATABASE "CTEST"
    RESETLOGS ARCHIVELOG
  2. 2 MAXLOGFILES 16
  3. 3 MAXLOGMEMBERS 3
  4. 4 MAXDATAFILES 100
  5. 5 MAXINSTANCES 8
  6. 6 MAXLOGHISTORY 292
  7. 7 LOGFILE
  8. 8 GROUP 1 '/zxm/cindytest/ctest/redo01.log' SIZE 50M,
  9. 9 GROUP 2 '/zxm/cindytest/ctest/redo02.log' SIZE 50M,
  10. 10 GROUP 3 '/zxm/cindytest/ctest/redo03.log' SIZE 50M
  11. 11 -- STANDBY LOGFILE
  12. 12 DATAFILE
  13. 13 '/zxm/cindytest/ctest/system01.dbf',
  14. 14 '/zxm/cindytest/ctest/un
首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle/JSP技术涉及日期和时间问.. 下一篇Oracle数据库中日期时间的操作比..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: