成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【博文推薦】Oracle DataGuard 學習之 DataGuard FailOver案例

數據庫 Oracle
Oracle DG(Dataguard)是目前比較常見的數據庫HA配置策略。通過實現Physical Standby和Logical Standby,可以實現數據冗余容錯機制。防止在主庫出現嚴重故障,不能支持服務的時候,沒有快速的后備支持環境。

本博文出自51CTO博客客居天涯博主,有任何問題請進入博主頁面互動討論!
博文地址:http://tiany.blog.51cto.com/513694/1617646


Oracle DG(Dataguard)是目前比較常見的數據庫HA配置策略。通過實現Physical Standby和Logical Standby,可以實現數據冗余容錯機制。防止在主庫出現嚴重故障,不能支持服務的時候,沒有快速的后備支持環境。

在DG中,switchover和failover是兩個重要的概念,也是DG實現的核心。兩者共同點都是Primary和Standby角色切換,差異在于Planned和UnPlanned之分。Switchover關鍵點在于Planned,這個切換動作是在運維機構規劃范圍內的動作。比如,進行定期系統軟硬件升級、設備維修等動作。而Failover是真正出現嚴重系統故障,如數據庫宕機、軟硬件故障導致的Primary不能支持服務,從而進行的切換動作。

根據不同的DG配置,switchover和failover也是有差異的。理論上,Switchover是不會造成數據丟失的,Primary在切換之后也是在DG配置環境中,作為Standby存在的。但是Failover則不同,除了運行在***保護(Maximum Protection)模式下,Primary突發的故障可能引起一部分Redo Log不能及時的傳遞到Standby端,切換之后很可能有數據損失的情況。更重要的是,Primary端在發生Failover之后,是不能夠直接加入回DG配置的!也就是說,Failover之后,Primary實際上就是被“拋出”了DG環境。

那么,有什么方法實現Primary回到原有的環境呢?這個問題的困難在于保持Primary和Standby一致。在正常情況下,Primary和Standby之間是關聯同步的,即使發生了Switchover,也在可控情況下。Failover過程中有數據的缺失,還有Primary修復問題。在目前流行版本(11g)中,有三個方法:

  • 環境重建:一種最簡單的方法就是直接刪除原來的Primary庫,引用DG重建方法,重新搭建Standby端;
  • RMAN備份恢復:如果Primary端保留過一份Failover之前的備份,則可以強制原來的Primary端恢復到進行Failover的時間點,之后作為Standby接收當前Primary的redo log傳遞,應用后可以跟上進度;
  • Flashback Database恢復:Flashback技術是作為傳統備份還原技術的補充,提供了更加便捷的恢復策略。使用flashback,可以將數據庫恢復到failover之前的時間點。之后的過程和RMAN備份恢復策略相同;

案例分析:

一、在主庫端模擬數據庫意外宕機

  1. 7scott@bjdb>conn /as sysdba 
  2. Connected. 
  3. sys@bjdb>alter system switch logfile; 
  4. System altered. 
  5. sys@bjdb>shutdown abort 
  6. ORACLE instance shut down. 

二、在備庫端

1、查看切換信息

  1. 5sys@shdb>select name,database_role,switchover_status from v$database; 
  2. NAME DATABASE_ROLE SWITCHOVER_STATUS 
  3. --------- ---------------- -------------------- 
  4. TESTDB12 PHYSICAL STANDBY NOT ALLOWED 
  5. 可以看到此時備庫處于無法切換狀態 

2、直接切換

  1. sys@shdb>alter database commit to switchover to primary; 
  2. alert_log:(告警日志) 
  3. Fatal NI connect error 12514, connecting to: 
  4. (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=shsrv)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=shdb)(CID=(PROGRAM=oracle)(HOST=bjsrv)(USER=oracle)))) 
  5. VERSION INFORMATION: 
  6. TNS for Linux: Version 11.2.0.3.0 - Production 
  7. TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.3.0 - Production 
  8. Time: 04-MAR-2015 21:25:13 
  9. Tracing not turned on. 
  10. Tns error struct: 
  11. ns main err code: 12564 
  12. TNS-12564: TNS:connection refused 
  13. ns secondary err code: 0 
  14. nt main err code: 0 
  15. nt secondary err code: 0 
  16. nt OS err code: 0 
  17. Error 12514 received logging on to the standby 
  18. FAL[client, MRP0]: Error 12514 connecting to shdb for fetching gap sequence 
  19. Wed Mar 04 21:26:00 2015 
  20. alter database commit to switchover to primary 
  21. ALTER DATABASE SWITCHOVER TO PRIMARY (TestDB12)  
  22. Maximum wait for role transition is 15 minutes.  
  23. Switchover: Media recovery is still active  
  24. Database not available for switchover  
  25. End-Of-REDO archived log file has not been recovered  
  26. Database not available for switchover  
  27. End-Of-REDO archived log file has not been recovered 
  28. Database not available for switchover 

3、關閉standby MPR進程

  1. 35sys@shdb>ALTER DATABASE RECOVER managed standby database finish; 
  2. ALTER DATABASE RECOVER managed standby database finish  
  3. Terminal Recovery: request posted (TestDB12)  
  4. Wed Mar 04 21:34:34 2015 
  5. Begin: Standby Redo Logfile archival  
  6. End: Standby Redo Logfile archival  
  7. Terminal Recovery timestamp is '03/04/2015 21:34:34'  
  8. Terminal Recovery: applying standby redo logs.  
  9. Terminal Recovery: thread 1 seq# 34 redo required 
  10. Media Recovery Waiting for thread 1 sequence 34 
  11. Terminal Recovery: End-Of-Redo log allocation  
  12. Terminal Recovery: standby redo logfile 4 created '/dsk4/arch_bj/arch_1_0_820054583.log'  
  13. This standby redo logfile is being created as part of the  
  14. failover operation. This standby redo logfile should be  
  15. deleted after the switchover to primary operation completes.  
  16. Media Recovery Log /dsk4/arch_bj/arch_1_0_820054583.log 
  17. Terminal Recovery: log 4 reserved for thread 1 sequence 34  
  18. Recovery of Online Redo Log: Thread 1 Group 4 Seq 34 Reading mem 0 
  19. Mem# 0: /dsk4/arch_bj/arch_1_0_820054583.log 
  20. Identified End-Of-Redo (failover) for thread 1 sequence 34 at SCN 0xffff.ffffffff 
  21. Incomplete Recovery applied until change 1234252 time 03/04/2015 21:23:43
  22. MRP0: Media Recovery Complete (TestDB12)  
  23. Terminal Recovery: successful completion  
  24. Wed Mar 04 21:34:35 2015 
  25. ARCH: Archival stopped, error occurred. Will continue retrying 
  26. ORACLE Instance TestDB12 - Archival Error 
  27. ORA-16014: log 4 sequence# 34 not archived, no available destinations 
  28. ORA-00312: online log 4 thread 1'/dsk4/arch_bj/arch_1_0_820054583.log' 
  29. Forcing ARSCN to IRSCN for TR 0:1234252
  30. Attempt to set limbo arscn 0:1234252 irscn 0:1234252 
  31. Resetting standby activation ID 2865247982 (0xaac836ee 
  32. MRP0: Background Media Recovery process shutdown (TestDB12) 
  33. Terminal Recovery: completion detected (TestDB12) 
  34. Completed: ALTER DATABASE RECOVER managed standby database finish 

4、切換數據庫到Primary

  1. sys@shdb>select status from v$instance; 
  2. STATUS 
  3. ------------ 
  4. OPEN 
  5. sys@shdb>select name,database_role,switchover_status from v$database; 
  6. NAME DATABASE_ROLE SWITCHOVER_STATUS  
  7. --------- ---------------- --------------------  
  8. TESTDB12 PHYSICAL STANDBY TO PRIMARY  
  9. sys@shdb>alter database commit to switchover to primary;  
  10. Database altered.  
  11. sys@shdb>alter database open;  
  12. Database altered.  
  13. 告警日志:  
  14. alter database commit to switchover to primary  
  15. ALTER DATABASE SWITCHOVER TO PRIMARY (TestDB12)  
  16. Maximum wait for role transition is 15 minutes.  
  17. All dispatchers and shared servers shutdown  
  18. CLOSE: killing server sessions.  
  19. CLOSE: all sessions shutdown successfully.  
  20. Wed Mar 04 21:35:47 2015  
  21. SMON: disabling cache recovery 
  22. Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/bjdb/TestDB12/trace/TestDB12_ora_3146.trc 
  23. Standby terminal recovery start SCN: 1234251  
  24. RESETLOGS after incomplete recovery UNTIL CHANGE 1234252  
  25. Online log /dsk2/oradata/bjdb/redo01b.log: Thread 1 Group 1 was previously cleared 
  26. Online log /dsk1/oradata/bjdb/redo01a.log: Thread 1 Group 1 was previously cleared  
  27. Online log /dsk2/oradata/bjdb/redo02b.log: Thread 1 Group 2 was previously cleared 
  28. Online log /dsk1/oradata/bjdb/redo02a.log: Thread 1 Group 2 was previously cleared 
  29. Online log /dsk2/oradata/bjdb/redo03b.log: Thread 1 Group 3 was previously cleared 
  30. Online log /dsk1/oradata/bjdb/redo03a.log: Thread 1 Group 3 was previously cleared 
  31. Standby became primary SCN: 1234250 
  32. Wed Mar 04 21:35:47 2015 
  33. Setting recovery target incarnation to 3  
  34. AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file. 
  35. Switchover: Complete - Database mounted as primary 
  36. Completed: alter database commit to switchover to primary 

三、原主庫修復后,開機

  1. sys@bjdb>startup  
  2. ORACLE instance started.  
  3. Total System Global Area 442601472 bytes  
  4. Fixed Size 2229184 bytes  
  5. Variable Size 281021504 bytes  
  6. Database Buffers 155189248 bytes 
  7. Redo Buffers 4161536 bytes  
  8. Database mounted.  
  9. Database opened.  
  10. sys@bjdb>select name,database_role,switchover_status from v$database; 
  11. NAME DATABASE_ROLE SWITCHOVER_STATUS  
  12. --------- ---------------- -------------------- 
  13. TESTDB12 PRIMARY FAILED DESTINATION 

現在原來的主庫被修復后,整個DataGuara架構已經被破壞了,所以必須把原來的主庫構建成新的備庫,重新恢復DataGuard的環境。

四、重新構建DataGuard

  1. 1sys@bjdb>select name,database_role from v$database; 

NAME DATABASE_ROLE

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

TESTDB12 PHYSICAL STANDBY

 

責任編輯:Ophira 來源: 51CTO
相關推薦

2021-12-27 09:15:16

Oracle數據庫后端開發

2009-07-03 09:44:30

Oracle Data

2015-09-29 10:26:51

pythonlogging模塊

2011-07-05 16:18:14

DataGuardSTANDBY

2015-05-15 10:04:28

localhost

2021-11-08 08:29:57

Oracle數據庫后端開發

2017-07-04 15:45:30

數據庫RACWindows平臺

2015-06-17 09:34:09

軟件定義存儲 云存儲

2015-07-01 10:25:07

Docker開源項目容器

2014-10-15 11:40:44

LNMP搭建LNMP

2014-12-12 10:46:55

Azure地緣組affinitygro

2015-06-15 13:06:23

項目項目經驗

2014-10-23 09:47:28

安全運維Iperf

2010-01-18 09:03:15

Dataguard配置

2014-12-01 10:33:51

Python

2015-04-21 09:28:58

ockerdocker監控平臺監控

2015-07-29 13:46:27

OpenStackIcehouse私有云實戰部署

2015-07-03 11:26:07

MySQL高可用架MHA

2015-04-17 11:17:15

大數據大數據擇業

2014-12-23 11:23:14

DRBDHeartbeatNFS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美性久久| 国产精品久久久久一区二区三区 | 亚洲中午字幕 | 欧美性乱| 区一区二在线观看 | 男人亚洲天堂 | 日韩欧美在线观看视频 | 人人干免费 | 色综合久 | 久久大 | 日日操夜夜操天天操 | 一区二区三区高清在线观看 | 福利视频一区二区 | 亚洲小视频在线观看 | 四虎影院新网址 | 国产精品一区久久久 | 一区二区三区四区不卡 | 中文在线观看视频 | 欧美日韩在线一区 | 欧美jizzhd精品欧美巨大免费 | 国产精品美女久久久久aⅴ国产馆 | 能看的av网站 | 久久99深爱久久99精品 | 日韩欧美在线观看视频 | 久久91精品国产一区二区三区 | 国产精品久久毛片av大全日韩 | 18成人在线观看 | 成人国产免费观看 | 狠狠干影院 | 成人免费三级电影 | 中文字幕一区在线观看视频 | 国产清纯白嫩初高生在线播放视频 | 免费亚洲一区二区 | 91久久国产综合久久 | 黄色片在线免费看 | 久久综合久久自在自线精品自 | 国产视频精品免费 | 毛片高清| 在线观看视频h | 7777在线视频 | 欧美日韩一区二区电影 |