控制檔案維護(三)

pingley發表於2012-03-04
控制檔案維護(三)
備份控制檔案:
正所謂濃縮是精華,控制檔案對於資料庫來說非常的重要。所以應該在每一次改變資料庫的物理結構前備份控制檔案。這些資料庫物理結構的改變包括:
1、增加,刪除,重新命名資料檔案。
2、增加,刪除,一個表空間,或者改變表空間的讀寫狀態。
3、增加,刪除重做日誌檔案或者重做日誌組。
備份控制檔案方法:
1、把控制檔案備份成二進位制檔案,也就是現存控制檔案的副本。
SQL> alter database backup controlfile to '/home/oracle/backup/control.bk';
Database altered.
2、生成以後可以用來重建空間檔案的SQL指令碼。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
當然也可以採用作業系統檔案級別的備份。對應備份的副本最好妥善儲存在其他磁碟中。
在不同的磁碟上維護多份控制檔案的意義:
每一個資料庫應該至少有兩份控制檔案,並且存放在不同的磁碟上。以便使用沒有損壞的控制檔案副本來恢復損壞丟失的控制檔案。當發現其中的一個控制檔案所在的磁碟出現故障的時候或者其中的一份控制檔案不可用應該馬上shutdown abort例項。
我先把我的資料庫中的一個控制檔案mv到其他位置。再執行下面的命令。
SQL> shutdown immediate
Database closed.
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/opt/oracle11g/oradata/oracl/control01.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
SQL> shutdown abort
ORACLE instance shut down.
SQL> shutdown abort
ORACLE instance shut down.
關閉例項後嘗試開啟資料庫失敗。
SQL> startup
ORACLE instance started.
Total System Global Area  418484224 bytes
Fixed Size                  1336932 bytes
Variable Size             222300572 bytes
Database Buffers          188743680 bytes
Redo Buffers                6103040 bytes
ORA-00205: error in identifying control file, check alert log for more info
出現上面的錯誤的原因是例項根據control_files初始化引數找不到與初始化引數規定的一致的控制檔案。此時資料庫將不能夠被open。我在把缺失的控制檔案mv回去。使用下面的命令開啟資料庫。
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
oracle對多個控制檔案的維護:
1、oracle將會把資料檔案資訊,重做日誌資訊等寫入control_files指定的所有的控制檔案中。保證多份控制檔案的一致性。
2、在資料庫執行期間只會讀control_files指定的資料檔案中的第一個。因為多份控制檔案都是一致的。
3、如果任何一個資料檔案不可用,例項將不能操作應該shutdown abort。
維護控制檔案的多個副本的意義就在於,如果其中一個損壞或者丟失,可以透過其他的副本來還原回來。並且這些副本應該分佈在不同的磁碟上,提高可用性。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-717647/,如需轉載,請註明出處,否則將追究法律責任。

相關文章