Oracle引數檔案與控制檔案的備份與還原

2021-09-24 03:55:34 字數 2419 閱讀 3910

oracle引數檔案與控制檔案的備份與還原

一、引數檔案的備份與啟動(引數檔案用於例項的啟動)

1、建立初始化引數檔案

create pfile[='全路徑名'] from spfile[='全路徑名'];  預設時使用預設位置下的伺服器引數檔案建立初始化引數檔案,預設路徑可使用 show parameter spfile 檢視

2、使用初始化檔案建立伺服器引數檔案

sql> create spfile[='全路徑名'] from pfile[='全路徑名'];

3、通過備份的引數檔案啟動例項

3.1使用初始化引數檔案啟動

sql>startup pfile='';

3.2使用伺服器引數檔案啟動例項

startup [spfile=''];預設預設使用spfile啟動例項

二、控制檔案的備份與恢復

1、備份

1.1備份為二進位制映像檔案

sql> alter database backup controlfile to '/home/oracle/controlfile01.ctl_2019-5-30bak';

1.2備份到跟蹤檔案,以sql語句的方式記錄

sql>alter database backup controlfile to trace;

更重檔案位置可通過以下引數檢視

sql> show parameter user_dump_dest

2、恢復,可能存在的情況

情況一:控制檔案丟失,在備份成映像檔案後資料庫結構未發生變化(如:建立或刪除表空間,資料檔案,重做日誌檔案等)

(1)還原控制檔案 restore;

將之間備份的控制檔案拷貝到引數檔案中指定的路徑,並將檔名改為同之前相同

(2)將例項啟動到mount狀態

sql>  startup nomount

sql> alter database mount

(3)恢復控制檔案

sql>recover database using backup controlfile until cancel;

執行後有四個選項

輸入回車:按順序搜尋歸檔檔案,沒回傳一次,recover搜尋一次

auto    :根據時間自動尋找歸檔檔案

輸入歸檔日誌的全路徑名

輸入cancel:恢復過程被取消

(4)執行以上恢復若未恢復到最新狀態時,恢復將會報錯,需要重做日誌進行恢復

錯誤資訊有如:

ora_00289:change 342342 for thread 1 is in sequence#23

通過以上順序號找到日誌檔案

sql>select group# sequence# from v$log where sequence# = 23;

根據以上的group#的值找到日誌檔案

sql>select group#,name from v$logfile where group#=x;

再次執行recover恢復,輸入剛查詢的日誌全路徑名

(5)恢復成功後啟動例項

alter database open resetlogs;

情況二:備份後有資料庫新增建了表空間或日誌組或日誌成員

(1)啟動到mount狀態

(2)還原控制檔案 restore

(3)執行恢復recover

(4)結果可能同(4)的報錯資訊,處理方式相同

(5)之後recover可能出現以下錯誤提示

錯誤資訊:

ora_00283:recovery session canceled due to errors

ora-01244:unameed datafile(s) added to control file by media recovery

ora-0110:data file 5:'/opt/oracle/oradata/swdk.dbf'

ora-0112:media recovery not started

這說明新增加的表空間、資料檔案、或重做日誌檔案的纖細沒有記錄在備份的控制檔案中,這時recover命令吧這些檔案修改名稱後記錄到新的控制檔案中,修改後的名稱可以通過查詢v$datafile和v$logfile獲得

如:sql> select file#,name from v$datafile where file#=5;

結果可能為: /opt/oracle/oradata/orcl/unamed0005

(6)將以上檔案修改為原始的值

sql>alter database rename file '/opt/oracle/12c/dbs/unamed0005'  to '/opt/oracle/oradata/orcl/'

(7)然後在重新執行recover命令,聯機重做日誌檔案

(8)將資料庫例項切換到open狀態

sql> alter database open 

oracle 日誌檔案 引數檔案 控制檔案備份恢復

在此之前搞清楚每個檔案的作用,一定要掌握oracle的基本概念。一 基本檔案的備份恢復 1 logfile多元化和備份恢復 日誌查詢 select from v logfile select from v log 手工切換日誌 alter system switch logfile 手工檢查點 al...

oracle控制檔案

nomount時可以用show parameter control files檢視。而此時yon用select from v controlfile則沒有任何資訊。nomount狀態只是通過引數檔案來找到控制檔案。進入mount後可以用select from v controlfile檢視。控制檔案...

oracle控制檔案

控制檔案是乙個比較小的二進位制檔案,記錄了物理資料庫的當前狀態 每乙個控制檔案只屬於乙個資料庫,資料庫可以有多個控制檔案 處於安全考慮,一般多幾個就相當於多了幾個備份 但是乙個控制檔案不能對應多個資料庫 資料庫處於開啟狀態,伺服器會隨時修改控制檔案的內容 任何使用者都不能修改控制檔案的資料。獲取控制...