標籤:des tar 使用 檔案 資料 art
控制檔案是整個資料庫中非常重要的檔案,必須保證控制檔案的安全,原則上多個控制檔案應該分別放在不同的磁碟上。但是oracle預設安裝時將所有的控制檔案放在了同一個磁碟的相同目錄下,這種做法是非常危險的,必須把現有的oracle系統上的多個控制檔案分別移動到不同的物理磁碟上安全備份。具體步驟如下:
一、利用資料字典獲得現有控制檔案的名字和絕對路徑
select name,status from v$controlfile;
二、如果使用的是spfile的話因為不能使用文字編輯器來改變spfile中的control_files參數,故必須使用sql中的alter system命令來修改spfile使其能夠指向新添加的控制檔案。
要判斷當前oracle系統使用的是pfile還是spfile可以使用一下指令;
show parameter pfile;
三、在確定使用的是spfile的情況下使用alter system命令修改spfile中的control_files參數將新移動的控制檔案路徑添加到control_files參數中
alter system set control_files=
‘D:\app\Administrator\oradata\orclyg\control1\CONTROL01.CTL‘,
‘D:\app\Administrator\oradata\orclyg\control2\CONTROL02.CTL‘,
‘D:\app\Administrator\oradata\orclyg\control3\CONTROL03.CTL‘ scope=spfile;
四、關閉資料庫shutdown,複製原來的控制檔案到指定的新添加的目錄路徑中。
注意:必須是在關閉資料庫以後才能複製控制檔案,因為在沒有關閉資料庫的情況下控制檔案隨時可能被oracle伺服器修改,如果此時沒有關閉資料庫就將對應的控制檔案複製到了指定的目錄下,那麼在後續的使用者進程對資料庫結構所做的修改就被記錄在原來的控制檔案中,這樣如果重啟資料庫載入新的控制檔案的話就會造成原來的修改被覆蓋,造成資料的丟失和不完全的恢複。所以必須關閉資料庫後在複製控制檔案到指定的目錄下。
五、啟動資料庫startup查看控制檔案的路徑
select name,status from v$controlfile;
顯示當前載入的控制檔案的絕對路徑。
六、由於控制檔案是一個極其重要的檔案,除了以上所說的多個控制檔案的副本存在於多個不同的磁碟上之外,在資料庫的結構變化之後應該立即對控制檔案進行備份。
對控制檔案進行備份的命令如下:
alter database backup controlfile to ‘D:\backup\control.bak‘;
注意:在建立備份檔案時路徑必須已經存在‘D:\backup目錄必須可以找到,否則不能成功建立。
另外要將建立控制檔案的命令備份到一個追蹤檔案中,該追蹤檔案包含有重建控制檔案所需的全部sql語句
alter database backup controlfile to trace;
該追蹤檔案在使用者檔案的目錄下通過如下sql尋找到使用者追蹤檔案的儲存目錄:
select name,value from v$parameter where name like ‘%_dest‘;
其中查詢的結果集中參數background_dump_dest表示的是警示記錄檔儲存路徑
user_dump_dest參數表示的是使用者進程追蹤檔案儲存體路徑。
按照時間排序使用者進程追蹤目錄下的檔案,最後面的就是剛才建立的控制檔案追蹤檔案,將該檔案複製儲存到另外的目錄中,並重新命名為一個有意義的名字。