oracle11g broker,oracle11g broker主庫異常斷電后的測試

測試了11g 物理dg情況下主庫異常斷電的測試。

發現主庫在異常斷電后,broker通過從庫登錄后,show configuration;等待很長時間返回:

Configuration Status:

ORA-16662: network timeout when contacting a database

DGM-17017: unable to determine configuration status

switchover to cronfun_pri;

Performing switchover NOW, please wait…

Error: ORA-12543: TNS:destination host unreachable

Error: ORA-16625: cannot reach database “cronfun_stdby2”

Failed.

Unable to switchover, primary database is still “cronfun_stdby2”

看來broker的switchover功能只能是在主庫運行良好的情況下使用,如果想在主庫異常斷電能切換到從庫,需要設置使用

Fast-Start Failover:

如果主庫在遇到異常后,無法啟動,switchover無法使用,並且fast-start failover沒有配置的時候,需要進行手工的failover操作,使用dgmgrl可以進行完全的和馬上的兩種方式的failover

完全的failover在保護模式下會自動最大限度的恢復redo,也會避免禁用備庫,可以使得備庫作為新主庫的備庫。

如果轉移的目標是物理備庫或快照備庫,原來的主庫一定要reinstated或重建來成為新主庫的備庫。如果一些備庫應用的redo比新主庫應用的還要多,那么broker會禁用那些備庫,被broker禁用的備庫必須要reinstated或重建。

如果轉移的目標是邏輯備庫,那么原主庫和所有物理,快照備庫都會被禁用,如果主庫的閃回啟用了,可以進行reinstated,物理備庫和快照備庫必須重建。

如果原主庫可以mount,那么可以使用alter system flush redo語句flush沒有發送的redo到目標備庫,如果這個操作成功了,那么可能沒有數據丟失,即使主庫不是在最大保護模式的級別。

馬上的failvoer是一個快速的failover,一旦啟用了沒有額外的數據被應用就,另一個結果就是別的庫都會被禁用,必須reinstated或重建,所以推薦是進行完整的failover。

failover步驟

1確定failover目標,推薦目標是物理備庫,並且延時最小的,通過broker可以看到

2在broker中執行

DGMGRL> failover to db__name

這種的轉移是完全的轉移,會應用所有接受到的redo,如果執行的是failover to db_name immeidate那么執行的是immediate failover,這種情況下是不會應用接受到的redo的,如果主庫能mount,可以flush redo到從庫注冊下,然后failover這樣損失的數據會很少,甚至是0.

3如果原主庫的flashback功能啟用了,那么可以使用broker的reinstate命令重建。

下面是測試,原主庫是cronfun_stdby2,斷電關機后,進行failover到cronfun_pri,這個dgmgrl是連接到cronfun_pri執行的

DGMGRL> failover to cronfun_pri;

Performing failover NOW, please wait…

Failover succeeded, new primary is “cronfun_pri”

DGMGRL> show configuration;

Configuration - ProdBroker

Protection Mode: MaxPerformance

Databases:

cronfun_pri - Primary database

cronfun_stdby - Physical standby database

cronfun_stdby2 - Physical standby database (disabled)

ORA-16661: the standby database needs to be reinstated

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS

可以看到提示原主庫是diabled狀態需要reinstated

要reinstate一個庫,需要做下面的操作:

1restart庫到mount狀態,需要保證flashback啟用

2dgmgrl連接到新主庫

3使用dgmgrl reinstate庫

DGMGRL> REINSTATE DATABASE cronfun_stdby2;

我這個提示下面的錯誤

DGMGRL> REINSTATE DATABASE cronfun_stdby2;

Reinstating database “cronfun_stdby2”, please wait…

Error: ORA-16827: Flashback Database is disabled

Failed.

Reinstatement of database “cronfun_stdby2” failed

但是我的flashback database是打開了的,不去追究了,直接重新創建

重建步驟:

1創建rman,創建備庫控制文件

2傳輸到備庫,啟動到nomount

3rman恢復

重建好后,需要在broker中啟用database

enable database cronfun_stdby2;

我測試用的是11.0.2.0,在上面重建的步驟中,rman恢復后,在開啟數據庫的時候,總是提示備庫需要恢復,一直在等待歸檔日志傳輸過來,卡到那里了,日志中也沒有報錯,重新shutdown再啟動后就好了。能正常打開。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值