控制檔案維護(二)

pingley發表於2012-03-04
控制檔案維護(二)
新增控制檔案副本,控制檔案的重新命名,刪除控制檔案:
為了新增控制檔案副本,或者重新命名現有的控制檔案,或者將現有的控制檔案挪到其他地方的步驟:
1、先關閉資料庫。以保證在複製,移動,重新命名控制檔案的過程中保持控制檔案資訊的一致性,並且避免因為這些操作導致的故障。
2、將控制檔案複製到其他位置、或者將現有重新命名。
3、編輯初始化引數檔案中的control_files 新增新控制檔案的位置名稱,或者重新命名現有控制檔案的名稱。
4、重啟資料庫。
注:如果有必要刪除控制檔案,方法與上面的相同,就是把某個控制檔案專案從引數control_files中移除。實際要刪除某個控制檔案需要使用作業系統命令(rm)。
先檢視原來資料庫中控制檔案的資訊。
SQL> show parameter control_files
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /opt/oracle11g/oradata/oracl/c
                                                 ontrol01.ctl, /opt/oracle11g/ora
                                                 data/oracl/control02.ctl
先關閉資料庫。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
在作業系統上進行控制檔案的複製與重新命名等工作。
[oracle@zeng ~]$ cd /opt/oracle11g/oradata/oracl
[oracle@zeng oracl]$ ll control0*
-rw-r-----. 1 oracle oinstall 9748480 Mar  4 00:29 control01.ctl
-rw-r-----. 1 oracle oinstall 9748480 Mar  4 00:29 control02.ctl
複製一份控制檔案到其他位置,並修改複製來的控制檔名。
[oracle@zeng oracl]$ cp control01.ctl /home/oracle/backup
[oracle@zeng oracl]$ cd
[oracle@zeng ~]$ cd backup
[oracle@zeng backup]$ ll
total 19040
-rw-r-----. 1 oracle oinstall 9748480 Mar  4 00:35 control01.ctl
-rw-r-----. 1 oracle oinstall 9748480 Mar  3 22:36 control.bk
[oracle@zeng backup]$ mv control01.ctl control03.ctl
[oracle@zeng backup]$ ll
total 19040
-rw-r-----. 1 oracle oinstall 9748480 Mar  4 01:14 control03.ctl
-rw-r-----. 1 oracle oinstall 9748480 Mar  3 22:36 control.bk
修改原來control_files 中control01.ctl為control.ctl
[oracle@zeng oracl]$ mv control01.ctl control.ctl
[oracle@zeng oracl]$ ll control*
-rw-r-----. 1 oracle oinstall 9748480 Mar  4 00:29 control02.ctl
-rw-r-----. 1 oracle oinstall 9748480 Mar  4 00:29 control.ctl
啟動資料庫到nomount
SQL> startup nomount     
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
SQL> show parameter spfile   
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /opt/oracle11g/product/11.2.0/
                                                 dbhome_1/dbs/spfileoracl.ora
從spfile檔案建立pfile檔案
SQL> create pfile from spfile;
File created.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
在作業系統上編輯剛才建立的pfile
[oracle@zeng dbs]$ find . -cmin -4
.
./initoracl.ora
[oracle@zeng dbs]$ vi initoracl.ora 
把control_files引數的值修改成下面的樣式。
control_files='/opt/oracle11g/oradata/oracl/control.ctl',
'/opt/oracle11g/oradata/oracl/control02.ctl',
'/home/oracle/backup/control03.ctl'
用剛才建立的pfile檔案來啟動資料庫到nomount。
SQL> startup nomount pfile=/opt/oracle11g/product/11.2.0/dbhome_1/dbs/initoracl.ora
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
SQL> show parameter spfile
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
從pfile建立spfile。
SQL> create spfile from pfile;
File created.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
重啟資料庫到open,這時候使用的是剛才建立的spfile。
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
Database mounted.
Database opened.
SQL> show parameter spfile
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /opt/oracle11g/product/11.2.0/
                                                 dbhome_1/dbs/spfileoracl.ora
確定控制檔案的修改。
SQL> show parameter control_files
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /opt/oracle11g/oradata/oracl/c
                                                 ontrol.ctl, /opt/oracle11g/ora
                                                 data/oracl/control02.ctl, /hom
                                                 e/oracle/backup/control03.ctl

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

相關文章