ARCHIVELOG模式下用户管理恢复控制文件(2)——使用trace文件重建控制文件!
来源:互联网 发布:公安局网络安全管理岗 编辑:程序博客网 时间:2024/05/28 18:44
首先生成控制文件的sql脚本
SQL> alter database backup controlfile to trace as '/u01/app/oracle/controlfile/control.sql';数据库已更改。
其实就是生成了一个控制文件的脚本,去掉注释以后这个sql脚本的内容如下:
--#1. NORESETLOGS caseSTARTUP NOMOUNT;CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292LOGFILE GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M, GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M, GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50MDATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf', '/u01/app/oracle/oradata/orcl/undotbs01.dbf', '/u01/app/oracle/oradata/orcl/sysaux01.dbf', '/u01/app/oracle/oradata/orcl/users01.dbf', '/u01/app/oracle/oradata/orcl/tb1.dbf'CHARACTER SET ZHS16GBK;RECOVER DATABASE;ALTER SYSTEM ARCHIVE LOG ALL;ALTER DATABASE OPEN;ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;--#2. RESETLOGS caseSTARTUP NOMOUNT;CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292LOGFILE GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M, GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M, GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50MDATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf', '/u01/app/oracle/oradata/orcl/undotbs01.dbf', '/u01/app/oracle/oradata/orcl/sysaux01.dbf', '/u01/app/oracle/oradata/orcl/users01.dbf', '/u01/app/oracle/oradata/orcl/tb1.dbf'CHARACTER SET ZHS16GBK;RECOVER DATABASE USING BACKUP CONTROLFILE;ALTER DATABASE OPEN RESETLOGS;ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
然后删除数据库模拟控制控制文件丢失
SQL> conn /as sysdba已连接到空闲例程。SQL> startupORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1266392 bytesVariable Size 62917928 bytesDatabase Buffers 100663296 bytesRedo Buffers 2924544 bytes数据库装载完毕。数据库已经打开。SQL> conn u1/u1已连接。SQL> select * from t; ID VALUE---------- ---------- 1 aSQL> insert into t values(2,'b');已创建 1 行。SQL> commit;提交完成。SQL> select * from t; ID VALUE---------- ---------- 1 a 2 bSQL> ! rm -rf /u01/app/oracle/oradata/orcl/*.ctlSQL> conn /as sysdba已连接。SQL> shutdown abortORACLE 例程已经关闭。
1、下面就删除控制文件用这个脚本来重建控制文件。使用noresetlogs。
SQL> conn /as sysdba已连接到空闲例程。SQL> startup nomountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1266392 bytesVariable Size 62917928 bytesDatabase Buffers 100663296 bytesRedo Buffers 2924544 bytesSQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M, 9 GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M, 10 GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50M 11 DATAFILE 12 '/u01/app/oracle/oradata/orcl/system01.dbf', 13 '/u01/app/oracle/oradata/orcl/undotbs01.dbf', 14 '/u01/app/oracle/oradata/orcl/sysaux01.dbf', 15 '/u01/app/oracle/oradata/orcl/users01.dbf', 16 '/u01/app/oracle/oradata/orcl/tb1.dbf' 17 CHARACTER SET ZHS16GBK;控制文件已创建。SQL> select status from v$instance;STATUS------------MOUNTEDSQL> select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME---------- ------- ------- ----------------------------------------------------------------- ---------- -------------- 1 ONLINE ONLINE 474731 10-10? -11 2 ONLINE ONLINE 474731 10-10? -11 3 ONLINE ONLINE 474731 10-10? -11 4 ONLINE ONLINE 474731 10-10? -11 5 ONLINE ONLINE 474731 10-10? -11SQL> alter database open;alter database open*第 1 行出现错误:ORA-01113: ?? 1 ??????ORA-01110: ???? 1: '/u01/app/oracle/oradata/orcl/system01.dbf'SQL> RECOVER DATABASE;完成介质恢复。SQL> ALTER SYSTEM ARCHIVE LOG ALL;系统已更改。SQL> ALTER DATABASE OPEN;数据库已更改。SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;表空间已更改。SQL> select status from v$instance;STATUS------------OPENSQL> select * from v$recover_file;未选定行SQL> conn u1/u1已连接。SQL> select * from t; ID VALUE---------- ---------- 1 a
2、重复前面的实验环境。使用resetlogs。
SQL> conn /as sysdba已连接到空闲例程。SQL> startup nomount;ORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1266392 bytesVariable Size 62917928 bytesDatabase Buffers 100663296 bytesRedo Buffers 2924544 bytesSQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M, 9 GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M, 10 GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50M 11 DATAFILE 12 '/u01/app/oracle/oradata/orcl/system01.dbf', 13 '/u01/app/oracle/oradata/orcl/undotbs01.dbf', 14 '/u01/app/oracle/oradata/orcl/sysaux01.dbf', 15 '/u01/app/oracle/oradata/orcl/users01.dbf', 16 '/u01/app/oracle/oradata/orcl/tb1.dbf' 17 CHARACTER SET ZHS16GBK;控制文件已创建。SQL> select status from v$instance;STATUS------------MOUNTEDSQL> select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME---------- ------- ------- ----------------------------------------------------------------- ---------- -------------- 1 ONLINE ONLINE 474731 10-10? -11 2 ONLINE ONLINE 474731 10-10? -11 3 ONLINE ONLINE 474731 10-10? -11 4 ONLINE ONLINE 474731 10-10? -11 5 ONLINE ONLINE 474731 10-10? -11SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------- 1 1 0 52428800 1 YES UNUSED 0 3 1 0 52428800 1 YES CURRENT 0 2 1 0 52428800 1 YES UNUSED 0SQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------/u01/app/oracle/oradata/orcl/redo03.log/u01/app/oracle/oradata/orcl/redo02.log/u01/app/oracle/oradata/orcl/redo01.logSQL> RECOVER DATABASE USING BACKUP CONTROLFILE;ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arcORA-00280: ?? 474731 (???? 1) ??? #14 ?指定日志: {<RET>=suggested | filename | AUTO | CANCEL}/u01/app/oracle/oradata/orcl/redo03.logORA-00310: ???????? 12; ???? 14ORA-00334: ????: '/u01/app/oracle/oradata/orcl/redo03.log'SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arcORA-00280: ?? 474731 (???? 1) ??? #14 ?指定日志: {<RET>=suggested | filename | AUTO | CANCEL}/u01/app/oracle/oradata/orcl/redo01.logORA-00310: ???????? 13; ???? 14ORA-00334: ????: '/u01/app/oracle/oradata/orcl/redo01.log'SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arcORA-00280: ?? 474731 (???? 1) ??? #14 ?指定日志: {<RET>=suggested | filename | AUTO | CANCEL}/u01/app/oracle/oradata/orcl/redo02.log已应用的日志。完成介质恢复。SQL> select * from v$recover_file;未选定行SQL> ALTER DATABASE OPEN RESETLOGS;数据库已更改。SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;表空间已更改。SQL> select status from v$instance;STATUS------------OPENSQL> conn u1/u1已连接。SQL> select * from t; ID VALUE---------- ---------- 1 a 2 b指定RESETLOGS会执行下列操作:归档当前的在线重做日志文件(如果能访问到的话),然后清空内容并将日志文件序号重置为1(如果在线重做日志文件不存在,则重建)。重置控制文件中关于在线日志文件的元数据。更新数据文件和在线重做日志文件中的RESETLOGS SCN和重置时间信息。
SQL> conn /as sysdba已连接。SQL> alter system switch logfile;系统已更改。SQL> /系统已更改。SQL> /系统已更改。SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------- 1 1 4 52428800 1 NO CURRENT 474954 10-10月-11 2 1 2 52428800 1 YES INACTIVE 474948 10-10月-11 3 1 3 52428800 1 YES INACTIVE 474950 10-10月-11
- ARCHIVELOG模式下用户管理恢复控制文件—使用trace文件重建控制文件
- ARCHIVELOG模式下用户管理恢复控制文件(2)——使用trace文件重建控制文件!
- ARCHIVELOG模式下用户管理恢复控制文件—使用二进制控制文件恢复
- ARCHIVELOG模式下用户管理恢复控制文件(1)——使用二进制控制文件恢复!
- ARCHIVELOG模式下用户管理的不完全恢复—基于备份控制文件的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复(4)——基于备份控制文件的不完全恢复!
- 利用trace重建控制文件
- ARCHIVELOG模式下用户管理恢复联机重做日志文件(2)——当前活动组所有成员全部损坏!
- ARCHIVELOG模式下用户管理恢复联机重做日志文件—非活动组所有成员全部损坏
- ARCHIVELOG模式下用户管理恢复联机重做日志文件—当前活动组所有成员全部损坏
- 控制文件管理(重建、备份、恢复、增加,减少)
- ARCHIVELOG模式下用户管理恢复联机重做日志文件(1)——非活动组所有成员全部损坏!
- 【Vegas原创】控制文件损坏,使用trace文件恢复DB
- 【Vegas原创】控制文件损坏,使用trace文件恢复DB
- Oracle 重建控制文件(在丢失控制文件的情况下,如何恢复数据库)
- ARCHIVELOG模式下用户管理的完全恢复—总结
- dump controlfile trace ,恢复控制文件
- oracle学习之:利用trace文件重建控制文件
- VS2005中派生模板类的BUG
- ubuntu代理上网
- c++二维数组内存动态分配与参数传递
- ftp 常用指令
- 插件22:从URL地址读取链接信息
- ARCHIVELOG模式下用户管理恢复控制文件(2)——使用trace文件重建控制文件!
- autohotkey终止进程
- 利用生活中的实例帮助你了解“混合交付”
- 偶尔学习的时候需要回想
- SQL 建个临时表,帮你解决很多事
- 社交网站邀请注册的设计体验
- 第二章 模式识别-贝叶斯决策论
- 用例图——UseCase Diagram
- Linq对XML文件的增删改查