重建控制文件的案例(RESETLOGS模式和NORESETLOGS模式)

[@more@]

本案例分两种情况:归档模式和非归档模式。在每种模式下采用两种重建方式,即resetlogs和noresetlogs。

一、archived模式下:

SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 C:oracleoradataarchora9i
最早的概要日志序列 1
下一个存档日志序列 2
当前日志序列 2
SQL>

1、noresetlogs方式

注意:all online logs are available

将所有的控制文件删除掉后执行重建控制文件脚本,日志如下:

SQL> STARTUP NOMOUNT
ORACLE 例程已经启动。

Total System Global Area 135864308 bytes
Fixed Size 454644 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 1191936 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORA9I" NORESETLOGS ARCHIVELOG
2 -- SET STANDBY TO MAXIMIZE PERFORMANCE
3 MAXLOGFILES 50
4 MAXLOGMEMBERS 5
5 MAXDATAFILES 100
6 MAXINSTANCES 1
7 MAXLOGHISTORY 226
8 LOGFILE
9 GROUP 1 'C:ORACLEORADATAORA9IREDO01.LOG' SIZE 10M,
10 GROUP 2 'C:ORACLEORADATAORA9IREDO02.LOG' SIZE 10M,
11 GROUP 3 'C:ORACLEORADATAORA9IREDO03.LOG' SIZE 10M
12 -- STANDBY LOGFILE
13 DATAFILE
14 'C:ORACLEORADATAORA9ISYSTEM01.DBF',
15 'C:ORACLEORADATAORA9IUNDOTBS01.DBF',
16 'C:ORACLEORADATAORA9IRMAN.DBF',
17 'C:ORACLEORADATAORA9IDRSYS01.DBF',
18 'C:ORACLEORADATAORA9IEXAMPLE01.DBF',
19 'C:ORACLEORADATAORA9ITEST1.DBF',
20 'C:ORACLEORADATAORA9IODM01.DBF',
21 'C:ORACLEORADATAORA9ITEST2.DBF',
22 'C:ORACLEORADATAORA9IXDB01.DBF',
23 'C:ORACLEORADATAORA9IPORTAL.DBF'
24 CHARACTER SET ZHS16GBK;

控制文件已创建

SQL>
SQL> ALTER SYSTEM ARCHIVE LOG ALL;

系统已更改。

SQL>
SQL> ALTER DATABASE OPEN;

数据库已更改。

SQL>
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'C:ORACLEORADATAORA9ITEMP01.DBF'
2 SIZE 20971520 REUSE AUTOEXTEND OFF;

表空间已更改。

SQL>
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 135864308 bytes
Fixed Size 454644 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 1191936 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
C:ORACLEORADATAORA9ICONTROL01.CTL
C:ORACLEORADATAORA9ICONTROL02.CTL
C:ORACLEORADATAORA9ICONTROL03.CTL

SQL>
SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
C:ORACLEORADATAORA9IREDO01.LOG
C:ORACLEORADATAORA9IREDO03.LOG
C:ORACLEORADATAORA9IREDO02.LOG

SQL>

SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 C:oracleoradataarchora9i
最早的概要日志序列 1
下一个存档日志序列 3
当前日志序列 3
SQL>

可看到,日志group的sequence并没有从1开始计数。

1、resetlogs方式

注意:online logs are damaged.

将所有的控制文件和日志文件都删除掉后执行重建控制文件脚本,日志如下:

SQL> STARTUP NOMOUNT
ORACLE 例程已经启动。

Total System Global Area 135864308 bytes
Fixed Size 454644 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 1191936 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORA9I" RESETLOGS ARCHIVELOG
2 -- SET STANDBY TO MAXIMIZE PERFORMANCE
3 MAXLOGFILES 50
4 MAXLOGMEMBERS 5
5 MAXDATAFILES 100
6 MAXINSTANCES 1
7 MAXLOGHISTORY 226
8 LOGFILE
9 GROUP 1 'C:ORACLEORADATAORA9IREDO01.LOG' SIZE 10M,
10 GROUP 2 'C:ORACLEORADATAORA9IREDO02.LOG' SIZE 10M,
11 GROUP 3 'C:ORACLEORADATAORA9IREDO03.LOG' SIZE 10M
12 -- STANDBY LOGFILE
13 DATAFILE
14 'C:ORACLEORADATAORA9ISYSTEM01.DBF',
15 'C:ORACLEORADATAORA9IUNDOTBS01.DBF',
16 'C:ORACLEORADATAORA9IRMAN.DBF',
17 'C:ORACLEORADATAORA9IDRSYS01.DBF',
18 'C:ORACLEORADATAORA9IEXAMPLE01.DBF',
19 'C:ORACLEORADATAORA9ITEST1.DBF',
20 'C:ORACLEORADATAORA9IODM01.DBF',
21 'C:ORACLEORADATAORA9ITEST2.DBF',
22 'C:ORACLEORADATAORA9IXDB01.DBF',
23 'C:ORACLEORADATAORA9IPORTAL.DBF'
24 CHARACTER SET ZHS16GBK;

控制文件已创建

SQL>
SQL> prompt RECOVER DATABASE USING BACKUP CONTROLFILE
RECOVER DATABASE USING BACKUP CONTROLFILE
SQL>
SQL> ALTER DATABASE OPEN RESETLOGS;

数据库已更改。

SQL>
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'C:ORACLEORADATAORA9ITEMP01.DBF'
2 SIZE 20971520 REUSE AUTOEXTEND OFF;

表空间已更改。

SQL>
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 135864308 bytes
Fixed Size 454644 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 1191936 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL>
SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
C:ORACLEORADATAORA9ICONTROL01.CTL
C:ORACLEORADATAORA9ICONTROL02.CTL
C:ORACLEORADATAORA9ICONTROL03.CTL

SQL>
SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
C:ORACLEORADATAORA9IREDO03.LOG
C:ORACLEORADATAORA9IREDO02.LOG
C:ORACLEORADATAORA9IREDO01.LOG

SQL>

SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 C:oracleoradataarchora9i
最早的概要日志序列 0
下一个存档日志序列 1
当前日志序列 1
SQL>

可看到,日志group的sequence又开始从1开始计数。

二、非归档模式下:

先将数据库由归档模式改为非归档模式,具体操作如下:

SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 C:oracleoradataarchora9i
最早的概要日志序列 2
下一个存档日志序列 4
当前日志序列 4
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area 135864308 bytes
Fixed Size 454644 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 1191936 bytes
SQL> alter database noarchivelog;
alter database noarchivelog
*
ERROR 位于第 1 行:
ORA-01507: ??????


SQL> alter database mount;

数据库已更改。

SQL> alter database noarchivelog;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> archive log list
数据库日志模式 非存档模式
自动存档 启用
存档终点 C:oracleoradataarchora9i
最早的概要日志序列 2
当前日志序列 4
SQL>

1、noresetlogs方式

同归档模式下的noresetlogs方式

2、resetlogs方式

同非归档模式下的resetlogs方式

从这里再一次可看出重建控制文件跟数据库是否归档没有直接的关系。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/38542/viewspace-914028/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/38542/viewspace-914028/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值