簡(jiǎn)介
ORA-10458: standby database requires recovery
ORA-01196: 文件 1 由于介質(zhì)恢復(fù)會(huì)話(huà)失敗而不一致
ORA-01110: 數(shù)據(jù)文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF'
一個(gè)項(xiàng)目做了Oracle主從數(shù)據(jù)庫(kù)同步,通過(guò)Dataguard實(shí)現(xiàn),從庫(kù)服務(wù)器宕機(jī),再開(kāi)機(jī)的時(shí)候,從庫(kù)無(wú)法啟動(dòng),報(bào)“ORA-01196: 文件 1 由于介質(zhì)恢復(fù)會(huì)話(huà)失敗而不一致”這個(gè)錯(cuò)誤,具體日志信息如下:
ORA-10458: standby database requires recovery
ORA-01196: 文件 1 由于介質(zhì)恢復(fù)會(huì)話(huà)失敗而不一致
ORA-01110: 數(shù)據(jù)文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF'
正常啟動(dòng)的順序應(yīng)該是先啟動(dòng)備庫(kù)再啟動(dòng)主庫(kù)。由于從庫(kù)宕機(jī)導(dǎo)致有段時(shí)間日志未同步,主備不一致,從庫(kù)無(wú)法啟動(dòng)。
參考資料
https://www.jb51.net/article/160838.htm
恢復(fù)前準(zhǔn)備
備份主庫(kù)
備份主庫(kù)數(shù)據(jù)【/home/oracle/backup/20190506/】
mkdir /home/oracle/backup/20190506
sqlplus / as sysdba
SQL> create directory data_dir as '/home/oracle/backup/20190506';
expdp SYSTEM/密碼@orcl schemas=用戶(hù)名 dumpfile=bak20190506.dmp directory=data_dir logfile=bak20190506.log;
檢查日志文件
恢復(fù)之前需要了解當(dāng)前備庫(kù)的數(shù)據(jù)庫(kù)文件、日志文件,查看主備庫(kù)是否一致【如不一致需要拷貝】。
SQL> set linesize 300
SQL> col MEMBER for a60
SQL> select type,member from v$logfile;
![](http://img.jbzj.com/file_images/article/201905/201957104206065.png?201947104214)
檢查數(shù)據(jù)庫(kù)文件
SQL> select name from v$datafile;
![](http://img.jbzj.com/file_images/article/201905/201957104642323.png?201947104649)
備庫(kù)恢復(fù)
關(guān)閉備庫(kù),并啟動(dòng)了實(shí)例,加載數(shù)據(jù)庫(kù),但是數(shù)據(jù)庫(kù)沒(méi)有打開(kāi)。打開(kāi)日志進(jìn)程
shutdown immediate
startup mount;
alter database recover managed standby database using current logfile disconnect from session;
主庫(kù)操作
alter system switch logfile;
強(qiáng)制日志切換,不一定就歸檔當(dāng)前的重做日志文件(若自動(dòng)歸檔打開(kāi),就歸檔前的重做日志,若自動(dòng)歸檔沒(méi)有打開(kāi),就不歸檔當(dāng)前重做日志。)
alter system switch logfile;
多操作幾次,操作之后,稍等一段時(shí)間,時(shí)間視網(wǎng)速而定,過(guò)一段時(shí)間后,在主庫(kù)上查詢(xún)一下同步情況:
select name,sequence#,archived,applied from v$archived_log order by sequence#;
如果返回結(jié)果"APPLIED"都是“YES”或者只有最后一個(gè)是“NO”的話(huà),說(shuō)明全部歸檔日志全部已經(jīng)歸檔完了
,此時(shí)到備庫(kù)上上操作
啟動(dòng)備庫(kù)
alter database recover managed standby database cancel;
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- Oracle數(shù)據(jù)庫(kù)由dataguard備庫(kù)引起的log file sync等待問(wèn)題
- win平臺(tái)oracle rman備份和刪除dg備庫(kù)歸檔日志腳本
- ORA-00349|激活 ADG 備庫(kù)時(shí)遇到的問(wèn)題及處理方法