重建控制文件的案例(RESETLOGS模式和NORESETLOGS模式)
本案例分兩種情況:歸檔模式和非歸檔模式。在每種模式下采用兩種重建方式,即resetlogs和noresetlogs。
一、archived模式下:
SQL> archive log list
數(shù)據(jù)庫日志模式??????????? 存檔模式
自動存檔???????????? 啟用
存檔終點??????????? C:/oracle/oradata/arch/ora9i
最早的概要日志序列???? 1
下一個存檔日志序列?? 2
當(dāng)前日志序列?????????? 2
SQL>
1、noresetlogs方式
注意:all online logs are available
將所有的控制文件刪除掉后執(zhí)行重建控制文件腳本,日志如下:
SQL> STARTUP NOMOUNT
ORACLE 例程已經(jīng)啟動。
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:/ORACLE/ORADATA/ORA9I/REDO01.LOG'? SIZE 10M,
?10??? GROUP 2 'C:/ORACLE/ORADATA/ORA9I/REDO02.LOG'? SIZE 10M,
?11??? GROUP 3 'C:/ORACLE/ORADATA/ORA9I/REDO03.LOG'? SIZE 10M
?12? -- STANDBY LOGFILE
?13? DATAFILE
?14??? 'C:/ORACLE/ORADATA/ORA9I/SYSTEM01.DBF',
?15??? 'C:/ORACLE/ORADATA/ORA9I/UNDOTBS01.DBF',
?16??? 'C:/ORACLE/ORADATA/ORA9I/RMAN.DBF',
?17??? 'C:/ORACLE/ORADATA/ORA9I/DRSYS01.DBF',
?18??? 'C:/ORACLE/ORADATA/ORA9I/EXAMPLE01.DBF',
?19??? 'C:/ORACLE/ORADATA/ORA9I/TEST1.DBF',
?20??? 'C:/ORACLE/ORADATA/ORA9I/ODM01.DBF',
?21??? 'C:/ORACLE/ORADATA/ORA9I/TEST2.DBF',
?22??? 'C:/ORACLE/ORADATA/ORA9I/XDB01.DBF',
?23??? 'C:/ORACLE/ORADATA/ORA9I/PORTAL.DBF'
?24? CHARACTER SET ZHS16GBK;
控制文件已創(chuàng)建
SQL>
SQL> ALTER SYSTEM ARCHIVE LOG ALL;
系統(tǒng)已更改。
SQL>
SQL> ALTER DATABASE OPEN;
數(shù)據(jù)庫已更改。
SQL>
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'C:/ORACLE/ORADATA/ORA9I/TEMP01.DBF'
? 2?????? SIZE 20971520? REUSE AUTOEXTEND OFF;
表空間已更改。
SQL>
SQL> shutdown immediate;
數(shù)據(jù)庫已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉。
SQL>
SQL> startup;
ORACLE 例程已經(jīng)啟動。
Total System Global Area? 135864308 bytes
Fixed Size?????????????????? 454644 bytes
Variable Size???????????? 109051904 bytes
Database Buffers?????????? 25165824 bytes
Redo Buffers??????????????? 1191936 bytes
數(shù)據(jù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開。
SQL>
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
C:/ORACLE/ORADATA/ORA9I/CONTROL01.CTL
C:/ORACLE/ORADATA/ORA9I/CONTROL02.CTL
C:/ORACLE/ORADATA/ORA9I/CONTROL03.CTL
SQL>
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
C:/ORACLE/ORADATA/ORA9I/REDO01.LOG
C:/ORACLE/ORADATA/ORA9I/REDO03.LOG
C:/ORACLE/ORADATA/ORA9I/REDO02.LOG
SQL>
SQL> archive log list
數(shù)據(jù)庫日志模式??????????? 存檔模式
自動存檔???????????? 啟用
存檔終點??????????? C:/oracle/oradata/arch/ora9i
最早的概要日志序列???? 1
下一個存檔日志序列?? 3
當(dāng)前日志序列?????????? 3
SQL>
可看到,日志group的sequence并沒有從1開始計數(shù)。
1、resetlogs方式
注意:online logs are damaged.
將所有的控制文件和日志文件都刪除掉后執(zhí)行重建控制文件腳本,日志如下:
SQL> STARTUP NOMOUNT
ORACLE 例程已經(jīng)啟動。
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:/ORACLE/ORADATA/ORA9I/REDO01.LOG'? SIZE 10M,
?10??? GROUP 2 'C:/ORACLE/ORADATA/ORA9I/REDO02.LOG'? SIZE 10M,
?11??? GROUP 3 'C:/ORACLE/ORADATA/ORA9I/REDO03.LOG'? SIZE 10M
?12? -- STANDBY LOGFILE
?13? DATAFILE
?14??? 'C:/ORACLE/ORADATA/ORA9I/SYSTEM01.DBF',
?15??? 'C:/ORACLE/ORADATA/ORA9I/UNDOTBS01.DBF',
?16??? 'C:/ORACLE/ORADATA/ORA9I/RMAN.DBF',
?17??? 'C:/ORACLE/ORADATA/ORA9I/DRSYS01.DBF',
?18??? 'C:/ORACLE/ORADATA/ORA9I/EXAMPLE01.DBF',
?19??? 'C:/ORACLE/ORADATA/ORA9I/TEST1.DBF',
?20??? 'C:/ORACLE/ORADATA/ORA9I/ODM01.DBF',
?21??? 'C:/ORACLE/ORADATA/ORA9I/TEST2.DBF',
?22??? 'C:/ORACLE/ORADATA/ORA9I/XDB01.DBF',
?23??? 'C:/ORACLE/ORADATA/ORA9I/PORTAL.DBF'
?24? CHARACTER SET ZHS16GBK;
控制文件已創(chuàng)建
SQL>
SQL> prompt? RECOVER DATABASE USING BACKUP CONTROLFILE
RECOVER DATABASE USING BACKUP CONTROLFILE
SQL>
SQL> ALTER DATABASE OPEN RESETLOGS;
數(shù)據(jù)庫已更改。
SQL>
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'C:/ORACLE/ORADATA/ORA9I/TEMP01.DBF'
? 2?????? SIZE 20971520? REUSE AUTOEXTEND OFF;
表空間已更改。
SQL>
SQL> shutdown immediate;
數(shù)據(jù)庫已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉。
SQL>
SQL> startup;
ORACLE 例程已經(jīng)啟動。
Total System Global Area? 135864308 bytes
Fixed Size?????????????????? 454644 bytes
Variable Size???????????? 109051904 bytes
Database Buffers?????????? 25165824 bytes
Redo Buffers??????????????? 1191936 bytes
數(shù)據(jù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開。
SQL>
SQL>
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
C:/ORACLE/ORADATA/ORA9I/CONTROL01.CTL
C:/ORACLE/ORADATA/ORA9I/CONTROL02.CTL
C:/ORACLE/ORADATA/ORA9I/CONTROL03.CTL
SQL>
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
C:/ORACLE/ORADATA/ORA9I/REDO03.LOG
C:/ORACLE/ORADATA/ORA9I/REDO02.LOG
C:/ORACLE/ORADATA/ORA9I/REDO01.LOG
SQL>
SQL> archive log list
數(shù)據(jù)庫日志模式??????????? 存檔模式
自動存檔???????????? 啟用
存檔終點??????????? C:/oracle/oradata/arch/ora9i
最早的概要日志序列???? 0
下一個存檔日志序列?? 1
當(dāng)前日志序列?????????? 1
SQL>
可看到,日志group的sequence又開始從1開始計數(shù)。
二、非歸檔模式下:
先將數(shù)據(jù)庫由歸檔模式改為非歸檔模式,具體操作如下:
SQL> archive log list
數(shù)據(jù)庫日志模式??????????? 存檔模式
自動存檔???????????? 啟用
存檔終點??????????? C:/oracle/oradata/arch/ora9i
最早的概要日志序列???? 2
下一個存檔日志序列?? 4
當(dāng)前日志序列?????????? 4
SQL> shutdown immediate;
數(shù)據(jù)庫已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉。
SQL> startup nomount;
ORACLE 例程已經(jīng)啟動。
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;
數(shù)據(jù)庫已更改。
SQL> alter database noarchivelog;
數(shù)據(jù)庫已更改。
SQL> alter database open;
數(shù)據(jù)庫已更改。
SQL> archive log list
數(shù)據(jù)庫日志模式???????????? 非存檔模式
自動存檔???????????? 啟用
存檔終點??????????? C:/oracle/oradata/arch/ora9i
最早的概要日志序列???? 2
當(dāng)前日志序列?????????? 4
SQL>
1、noresetlogs方式
同歸檔模式下的noresetlogs方式
2、resetlogs方式
同非歸檔模式下的resetlogs方式
從這里再一次可看出重建控制文件跟數(shù)據(jù)庫是否歸檔沒有直接的關(guān)系。
總結(jié)
以上是生活随笔為你收集整理的重建控制文件的案例(RESETLOGS模式和NORESETLOGS模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 怎么样复制文件夹内所有文件到
- 下一篇: 有关 Oracle redo log