Oracle 恢复测试-控制文件篇(二)
2008-10-14 09:49
375 查看
数据库控制文件损坏,有trace文件,在正常的shutdown情况下(操作前请先备份数据库)
1、创建测试数据
SQL> create table tt (id number, name varchar2(100));
SQL> insert into tt select rownum,'test..................' from dba_objects;
已创建52177行。
SQL> commit;
2、backup controlfile to trace
SQL> alter session set tracefile_identifier=kipos;
会话已更改。
SQL> alter database backup controlfile to trace;
数据库已更改。
3、正常关闭数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
4、模拟破坏控制文件,或者直接将其删除
5、启动数据库,数据库无法启动到mount状态
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 75498852 bytes
Database Buffers 88080384 bytes
Redo Buffers 2945024 bytes
ORA-00205: ?????????, ??????, ???????
SQL> alter session set nls_language=american;
Session altered.
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying control file, check alert log for more info
6、根据trace文件重建控制文件
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
4000
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG' SIZE 50M,
9 GROUP 2 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG' SIZE 50M,
10 GROUP 3 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG' SIZE 50M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF',
14 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF',
15 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF',
16 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF',
17 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF',
18 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/MIS.DBF',
19 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDO_1',
20 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/INDEX_TBS.DBF'
21 CHARACTER SET ZHS16GBK;
控制文件已创建。
7、打开数据库,数据正常
SQL> alter database open;
数据库已更改。
SQL> select count(*) from tt;
COUNT(*)
----------
52177
SQL>
总结:数据库正常down机的,即使丢失了全部的控制文件,在重建数控制文件后,数据库可以正常打开且不会丢失数据。注意,重建控制文件后会丢失数据库的临时文件。
1、创建测试数据
SQL> create table tt (id number, name varchar2(100));
SQL> insert into tt select rownum,'test..................' from dba_objects;
已创建52177行。
SQL> commit;
2、backup controlfile to trace
SQL> alter session set tracefile_identifier=kipos;
会话已更改。
SQL> alter database backup controlfile to trace;
数据库已更改。
3、正常关闭数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
4、模拟破坏控制文件,或者直接将其删除
5、启动数据库,数据库无法启动到mount状态
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 75498852 bytes
Database Buffers 88080384 bytes
Redo Buffers 2945024 bytes
ORA-00205: ?????????, ??????, ???????
SQL> alter session set nls_language=american;
Session altered.
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying control file, check alert log for more info
6、根据trace文件重建控制文件
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
4000
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG' SIZE 50M,
9 GROUP 2 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG' SIZE 50M,
10 GROUP 3 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG' SIZE 50M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF',
14 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF',
15 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF',
16 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF',
17 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF',
18 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/MIS.DBF',
19 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDO_1',
20 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/INDEX_TBS.DBF'
21 CHARACTER SET ZHS16GBK;
控制文件已创建。
7、打开数据库,数据正常
SQL> alter database open;
数据库已更改。
SQL> select count(*) from tt;
COUNT(*)
----------
52177
SQL>
总结:数据库正常down机的,即使丢失了全部的控制文件,在重建数控制文件后,数据库可以正常打开且不会丢失数据。注意,重建控制文件后会丢失数据库的临时文件。
相关文章推荐
- Oracle 恢复测试-控制文件篇(四)
- Oracle 恢复测试-控制文件篇(一)
- Oracle 恢复测试-控制文件篇(三)
- Oracle使用RMAN恢复控制文件实例
- Oracle故障恢复1_控制文件不见或误修改SPFILE
- Oracle - 使用RMAN的备份及恢复一例-丢失所有控制文件
- oracle 根据控制与参数文件恢复
- oracle控制文件备份和日志文件备份和恢复
- oracle控制文件的损坏或完全丢失的恢复办法
- Oracle案例:损坏控制文件的恢复方法
- 探索ORACLE不完全恢复之--基于备份控制文件恢复
- Oracle 基于备份控制文件的恢复(unsing backup controlfile)
- Oracle控制文件的恢复(二) Oracle控制文件如何恢复?
- oracle用老的控制文件备份恢复新建的数据文件
- Oracle恢复实验(四):所有控制文件和数据文件丢失。
- ORACLE只有表空间文件通过重建控制文件进行不完全恢复
- Oracle 重建控制文件对只读表空间和临时表空间影响的测试
- Oracle控制文件恢复案例
- Oracle控制文件的恢复(一)
- oracle控制文件损坏恢复