溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何解決oracle11gR2 DataGuard switchover切換的兩個(gè)錯(cuò)誤狀態(tài)

發(fā)布時(shí)間:2021-11-20 11:55:59 來(lái)源:億速云 閱讀:671 作者:小新 欄目:云計(jì)算

這篇文章給大家分享的是有關(guān)如何解決oracle11gR2 DataGuard switchover切換的兩個(gè)錯(cuò)誤狀態(tài)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

在公司的測(cè)試環(huán)境搭建了一套o(hù)racle11gR2  DataGuard,用來(lái)預(yù)生產(chǎn)測(cè)試。在Data Guard中分為兩種冗余切換,一種是switchover無(wú)損切換,一種是failover丟棄切換。

所謂switchover是針對(duì)failover而言的,它是一種無(wú)損切換,切換的過(guò)程中不會(huì)丟失數(shù)據(jù)。 可以平滑的使主備互換并且2個(gè)庫(kù)都可以正常使用。 切換過(guò)程:主庫(kù)->切換->備庫(kù)->檢查狀態(tài)->原備庫(kù)->切換->主庫(kù)->再檢查狀態(tài)

應(yīng)用場(chǎng)合:主庫(kù)因性能或其他原因需要調(diào)整升級(jí),這時(shí)可以切換后用新主庫(kù)對(duì)外提供服務(wù)。

關(guān)于DG的搭建過(guò)程這里就不詳述了,下面就切換過(guò)程中出現(xiàn)的兩個(gè)錯(cuò)誤狀態(tài)進(jìn)行分析和解決。

一、SWITCHOVER LATENT狀態(tài)

在備庫(kù)上查詢(xún)數(shù)據(jù)庫(kù)角色和狀態(tài)

SYS@standby> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS    OPEN_MODE

---------------- -------------------- --------------------

PHYSICAL STANDBY SWITCHOVER LATENT    READ ONLY

發(fā)現(xiàn)是switchover latent而不是to primary

這個(gè)問(wèn)題是說(shuō)切換處于pending模式,沒(méi)有完成無(wú)法回到主庫(kù)。當(dāng)你查看ALERT日志時(shí),也沒(méi)有發(fā)現(xiàn)什么報(bào)錯(cuò),是不是要繼續(xù)等下去呢?其實(shí)不需要等待,出現(xiàn)這個(gè)問(wèn)題的原因就是日志沒(méi)有歸檔,所以備庫(kù)與主庫(kù)不一致,需要恢復(fù)。當(dāng)備庫(kù)恢復(fù)到和主庫(kù)一致后,狀態(tài)就會(huì)成為to_primary

驗(yàn)證一下這個(gè)問(wèn)題是不是上面所說(shuō)的原因,你可以繼續(xù)在備庫(kù)上執(zhí)行下面這句

sys@standby>  ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN

*

ERROR at line 1:

ORA-16139: media recovery required

這里提示需要介質(zhì)恢復(fù)。

根據(jù)以上的分析和定位,我們要解決這個(gè)問(wèn)題,需要在備庫(kù)上切斷應(yīng)用,啟用日志同步

SYS@standby> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

SYS@standby> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

--------------------

TO PRIMARY

顯示為T(mén)O PRIMARY,這時(shí)看狀態(tài)就正常了。

SYS@standby> alter database commit to switchover to primary with session shutdown;

Database altered.

SYS@standby> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS    OPEN_MODE

---------------- -------------------- --------------------

PRIMARY  NOT ALLOWED      MOUNTED

打開(kāi)數(shù)據(jù)庫(kù)

sys@standby>alter database open;

切換一下日志

sys@standby> alter system switch logfile ;

System altered.

再檢查一下日志的狀態(tài)

SYS@standby> select sequence#,standby_dest,archived,applied,status from v$archived_log;

SEQUENCE# STA ARC APPLIED   S

---------- --- --- --------- -

4 NO  YES YES     A

5 NO  YES YES     A

6 NO  YES YES     A

7 NO  YES YES     A

8 NO  YES YES     A

9 NO  YES YES     A

10 NO  YES YES     A

11 NO  YES YES     A

11 NO YES YES     A

10 NO YES YES     A

12 NO  YES YES     A

發(fā)現(xiàn)都是YES,說(shuō)明已經(jīng)同步了。

二、FAILED DESTINATION狀態(tài)

當(dāng)備庫(kù)切換為主庫(kù)后,發(fā)現(xiàn)切換狀態(tài)為FAILED DESTINATION

SYS@primary> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS    OPEN_MODE

---------------- -------------------- --------------------

PRIMARY  FAILED DESTINATION   READ WRITE

發(fā)現(xiàn)是FAILED DESTINATION而不是to standby

這個(gè)問(wèn)題說(shuō)明主庫(kù)連接備庫(kù)有問(wèn)題,可以具體查看一下ALERT日志,看看是怎么回事

Error 12541 received logging on to the standby

Check whether the listener is up and running.

Errors in file /u01/app/oracle/diag/rdbms/primary/primary/trace/primary_arc2_2546.trc:

ORA-12541: TNS:no listener

PING[ARC2]: Heartbeat failed to connect to standby 'standby'. Error is 12541.

這里說(shuō)明備庫(kù)的監(jiān)聽(tīng)有問(wèn)題,重啟備庫(kù)監(jiān)聽(tīng),再查狀態(tài)就變成to standby了

SYS@primary> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS    OPEN_MODE

---------------- -------------------- --------------------

PRIMARY  TO STANDBY      READ WRITE

當(dāng)然導(dǎo)致FAILED DESTINATION的原因會(huì)有很多,比如log_archive_dest_2 參數(shù)的屬性值還有口令文件的配置出錯(cuò)或者權(quán)限問(wèn)題等。

總之出了問(wèn)題,面對(duì)問(wèn)題分析問(wèn)題就對(duì)了,從中你可以學(xué)到很多。

附Switchover_Status值的含義

NOT ALLOWED

當(dāng)前的數(shù)據(jù)庫(kù)不是帶有備用數(shù)據(jù)庫(kù)的主數(shù)據(jù)庫(kù)

PREPARING DICTIONARY

該邏輯備用數(shù)據(jù)庫(kù)正在向一個(gè)主數(shù)據(jù)庫(kù)和其他備用數(shù)據(jù)庫(kù)發(fā)送它的重做數(shù)據(jù),以便為切換做準(zhǔn)備

PREPARING SWITCHOVER

接受用于切換的重做數(shù)據(jù)時(shí),邏輯備用配置會(huì)使用它

RECOVERY NEEDED

備用數(shù)據(jù)庫(kù)還沒(méi)有接收到切換請(qǐng)求

SESSIONS ACTIVE

在主數(shù)據(jù)庫(kù)中存在活動(dòng)的SQL會(huì)話(huà);在繼續(xù)執(zhí)行之前必須斷開(kāi)這些會(huì)話(huà)

SWITCHOVER PENDING

適用于那些已收到主數(shù)據(jù)庫(kù)切換請(qǐng)求但是還沒(méi)有處理該請(qǐng)求的備用數(shù)據(jù)庫(kù)

SWITCHOVER LATENT

切換沒(méi)有完成并返回到主數(shù)據(jù)庫(kù)

TO LOGICAL STANDBY

主數(shù)據(jù)庫(kù)已經(jīng)收到了來(lái)自邏輯備用數(shù)據(jù)庫(kù)的完整的字典

TO PRIMARY

該備用數(shù)據(jù)庫(kù)可以轉(zhuǎn)換為主數(shù)據(jù)庫(kù)

TO STANDBY

該主數(shù)據(jù)庫(kù)可以轉(zhuǎn)換為備用數(shù)據(jù)庫(kù)

感謝各位的閱讀!關(guān)于“如何解決oracle11gR2 DataGuard switchover切換的兩個(gè)錯(cuò)誤狀態(tài)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI