物理備庫的搭建過程
物理備庫的搭建過程:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
一、簡單DG搭建:預設為最大效能,可以不用建立standby redo log
主庫:
1、確認資料庫在歸檔模式(配置好歸檔路徑)、FORCE LOGGING模式。
2、啟動到NOMOUNT下,生成initDGDH.ora,修改初始化引數檔案,生成兩份initDGDH.ora和initDGDHSTB.ora,主要引數如下:
.......
.......
.......
*.db_name='DGDH'
.......
.......
*.DB_UNIQUE_NAME=DGDH
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGDH,DGDHSTB)'
*.LOG_ARCHIVE_DEST_1= 'LOCATION=d:\dir\DGDH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DGDH'
*.LOG_ARCHIVE_DEST_2= 'SERVICE=DGDHSTB SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGDHSTB'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.fal_server='DGDHSTB'
*.fal_client='DGDH'
*.log_file_name_convert=("D:\oracle\product\10.2.0\oradata\DGDHSTB","D:\oracle\product\10.2.0\oradata\DGDH")
*.db_file_name_convert=("D:\oracle\product\10.2.0\oradata\DGDHSTB","D:\oracle\product\10.2.0\oradata\DGDH") --用於RMAN複製時重建redo檔案
*.standby_file_management=auto #裸裝置,必須將該引數設定為manual。
----該引數檔案裡面除了db_name引數值相同,必須取主庫的名字,其它引數都要把DGDH和DGDHSTB互換
3、在MOUNT下,生成備庫控制檔案:以上面配置好的引數檔案為基礎,啟動到MOUNT下,這樣資料庫才能知道備庫的SID
alter database create standby controlfile as 'c:\control01.ctl'
4、配置好主庫和備庫的靜態監聽和網路服務
備庫:
1、在備庫伺服器上,建立例項 oradim -NEW -SID DGDHSTB -STARTMODE manual
2、配置好主庫和備庫的靜態監聽和網路服務。
3、建立目錄:admin、oradata下建立對應的目錄
4、複製(initDGDHSTB.ora、standby控制檔案、資料檔案、日誌檔案、密碼檔案)到備份伺服器相應目錄,備庫上的控制檔案要和主庫數量一致
5、啟動備庫到MOUNT下
後臺自動應用日誌 alter database recover managed standby database disconnect from session;
取消後臺自動應用日誌 alter database recover managed standby database cancel;
開啟資料庫:alter database open [read only]
驗證:
1、select name,switchover_status,open_mode,protection_mode,database_role from v$database;
name switchover_status open_mode protection_mode database_role
--------- -------------------- ---------- -------------------- ----------------
dgdh to standby read write maximum performance primary
2、SELECT STATUS,DESTINATION, ERROR FROM V$ARCHIVE_DEST; ----如果有錯誤,要排查原因。
3、alter system switch logfile;
select max(sequence#) from v$archived_log; -----主備查詢結果一致,Data Guard 搭建結束。
4、驗證archive log是否接收和 applied.
alter session set nls_datE_format='YYYY-MM-DD HH24:MI:SS';
select SEQUENCE#,DEST_ID,ARCHIVED,APPLIED,DELETED,STATUS,FIRST_TIME from v$archived_log order by SEQUENCE#;
5、select process,status,thread#,sequence#,client_pid from v$managed_standby; ----檢視當前備庫裡面的程式有哪些
這裡需要明確的是,當沒有開啟recover managed standby database,則備庫會關掉MRPn程式的。但是RFS程式還是開啟的,還在能不停的接受日誌寫日誌。
重:SQL>select process,client_process from v$managed_standby;
PROCESS CLIENT_PROCESS
--------- --------------
ARCH ARCH
ARCH ARCH
RFS LGWR
RFS ARCH
MRP0 N/A
從上面的對應關係可以看出LGWR-->RFS和ARCH-->RFS
注意:如果在主庫執行 alter database clear unarchived logfile或alter database open resetlogs , 則dataguard要重建。
相關檢視:
v$archive_dest
v$archive_dest_status
v$log_history
v$archvied_log
v$managed_standby
v$archive_gap
二、最大效能、最大可用、最大保護
前提:必須建立standby redo log,數量=(maximum number of logfiles for each thread + 1) * maximum number of threads
命令:ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE; ----最大效能,預設,無法同步日誌時不影響主庫
ALTER DATABASE SET STANDBY DATABASE TO MAXISIZE AVAILABILITY; ----最大可用,無法同步日誌時自動切換到最大效能,待可同步時再切換到最大保護
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION; ----最大保護,無法同步日誌時主庫會shutdown
***11G裡面怎麼是MAXISIZE,而非MAXIMIZE
alter database add standby logfile group 5 ('d:\oracle\product\oradata\dgdhicu\stbredo01.log') size 50M;
alter database add standby logfile group 4 ('/oracle/dbs/log1c.rdo') size 500m; ---一主一備的話就應該要建立4個standby redo log
另:*.LOG_ARCHIVE_DEST_2= 'SERVICE=DGDH LGWR SYNC AFFIRM REOPEN=10 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGDH'
以上紅色引數也要加上,以後再研究,現在要考試了
三、日誌傳送方式
可分為三種:ARCH程式傳送日誌、LGWR程式的SYNC傳送日誌、LGWR程式的ASYNC傳送日誌
引數檔案中在此處指定:*.LOG_ARCHIVE_DEST_2= 'SERVICE=DGDHSTB SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGDHSTB'
ARCH 程式:
Primary DB àRedo log àOnline redo log àArch redo log àRFS à>Arch redo log àMRP/LSPàStandby DB
|
注:ARCH程式傳送日誌,傳送的都是歸檔日誌,所以很容易丟失redo log,不建議使用
LGWR程式的SYNC:
注:1、LGWR 必須等待寫入本地日誌檔案操作和通過LNSn程式的網路傳送都成功,Primary DB上的事務才能提交,這也是SYNC的含義所在;
2、Primary DB的日誌切換也會觸發Standby DB上的日誌切換,即Standby DB對Standby Redo Log的歸檔,然後觸發Standby DB的MRP或者LSP程式恢復歸檔日誌;
3、實時應用(Real-Time Apply):只要RFS把日誌寫入Standby Redo Log 就會立即進行恢復;歸檔應用:在完成對Standby Redo Log 歸檔才觸發恢復,預設的恢復方式。
alter database recover managed standby database using current logfile disconnect from session; 把歸檔恢復轉換為實時應用
4、實時恢復,時可以新增time_out引數,alter system set log_archive_dest_2 = 'SERVICE=ST LGWR SYNC NET_TIMEOUT=30' scope=both;
LGWR程式的ASYNC: 同LGWR(SYNC),主要區別是在於redo log傳輸為非同步
☆☆☆上面講的三種日誌傳送方式的具體解釋見Data Guard 理論知識
*****這時有同學要問AFFIRM是什麼意思了,其實它決定歸檔日誌寫磁碟的方式,AFFIRM同步方式,noAFFIRM非同步方式
1)利用LGWR SYNC和時實應用,實現redo(不是日誌檔案)時實傳輸與應用
按照上面的理論,只要主庫上配置為LGWR SYNC,那麼完成事務後,也即commit後,LGWR會把redo寫到online redo log裡面,同時會把redo傳送到standby,standby的
RFS程式接收到這個日誌後寫入standby online redo log,再由MRPn程式立即應用到Standby DB中,這樣就OK,不過在主庫commit後,要等10s多的樣子才能在備庫看到
2)前人支招:
1、ARCH方式傳送日誌時,如果主備庫密碼檔案不一致,在重新設定密碼檔案後,必須重啟主庫才能使日誌傳送恢復正常。
2、LGWR方式傳送日誌時,如果主備庫密碼檔案不一致,在重新設定密碼檔案後,只需可以重啟主庫或重啟備庫就可使日誌傳送恢復正常。
注意事項:
Arch:傳統的日誌傳送方式。現在只有在最大效能模式時才能採用。歸檔日誌通過primary上的arch程式傳送給standby的RFS程式。
LGWr:oracle9i開始可以使用LGWR即時將日誌傳送到standby,而不再需要等到歸檔操作時才傳送,已減少可能的資料丟失。在三種保護模式下都可使用該方式傳送日誌。
使用LGWR方式傳送,在standby必須先建立standby redo logfile
Maximum Availability Maximum Performance Maximum Protection
AFFIRM NOAFFIRM AFFIRM
SYNC ASYNC SYNC
DB_UNIQUE_NAME DB_UNIQUE_NAME DB_UNIQUE_NAME
注意Data Guard 啟動順序:
啟動順序:先standby ,後primary;
閉順序:先primary 後standby;
四、利用RMAN搭建DG
區別於COPY,不需求建立STANDBY控制檔案,RMAN複製會自動建立。
然後,再執行duplicate複製
1)在主庫上先進行來個全備
RMAN> backup full database include current controlfile for standby plus archivelog FORMAT '/u02/backup/orcl_%U_%T'
skip inaccessible filesperset 5 ;
備庫在NOMOUNT下,執行duplicate
SQL> rman target system/medical@DGDH auxiliary system/medical@DGDHSTB;
2)不用duplicate的RMAN
主庫:
rman>backup database format='/data/backup/rman_backup/%d_%s.bak';
備庫:
rman>restore database;
sys>alter database recover managed standby database disconnect from session;
五、常見的主庫備庫上的操作
備庫:
SQL>startup nomount;
SQL>alter database mount standby database ;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL>alter database recover managed standby database disconnect from session;
七、主備切換switchover
主備切換的檢查
SQL> select switchover_status from v$database;
主庫需要注意事項
A 如果switchover_status為TO_STANDBY說明可以轉換 直接轉換:alter database commit to switchover to physical standby;
B 如果switchover_status為SESSIONS ACTIVE 則關閉會話 alter database commit to switchover to physical standby with session shutdown;
備庫需要注意事項
A 如果switchover_status為TO_PRIMARY 說明標記恢復可以直接轉換為primary庫 alter database commit to switchover to primary
B 如果switchover_status為SESSION ACTIVE 就應該斷開活動會話 alter database commit to switchover to primary with session shutdown;
C 如果switchover_status為NOT ALLOWED 說明切換標記還沒收到,此時不能執行轉換。
切換時如果不滿足條件,請檢查:
確認主庫和從庫間網路連線通暢;
確認沒有活動的會話連線在資料庫中;
PRIMARY資料庫處於開啟的狀態,STANDBY資料庫處於MOUNT狀態;
確保STANDBY資料庫處於ARCHIVELOG模式;
如果設定了REDO應用的延遲,那麼將這個設定去掉;
確保配置了主庫和從庫的初始化引數,使得切換完成後,DATA GUARD機制可以順利的執行;
如果是最大保護模式,先變成最大效能模式。
切換的順序:先從主庫到備用,再從備庫到主庫
****注:10.2.0.1備庫老是在not allowed狀態,可能是BUG吧
八、failover
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25960404/viewspace-1104237/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 華為GaussDB T資料庫主備物理複製搭建過程資料庫
- 搭建物理備庫
- 【DATAGUARD】DG系列之RACtoONE物理備庫的搭建
- Data guard 配置之搭建物理備庫
- 10G物理備庫搭建文件
- 【DATAGUARD】DG系列之11g物理備庫的搭建
- 【DataGuard】手工冷備搭建 Oracle 11g DataGuard 物理備庫Oracle
- 通過RMAN Duplicate建立Oracle物理standby備庫Oracle
- 物理備庫互轉快照備庫
- 配置物理備庫+邏輯備庫
- RMAN遠端複製搭建物理DG過程小結
- Oracle 12c 使用RMAN搭建物理備庫(RAC to RAC)Oracle
- [ standby db ] windows下備庫的刪除過程Windows
- 企業級災備方案Oracle Stream搭建過程Oracle
- DATA GUARD物理備庫的SWITCHOVER切換
- 10 管理物理和快照備庫
- Oracle:Failover 到物理備庫OracleAI
- RMAN DUPLICATE建立DataGuard物理備庫
- 物理備庫failover實驗AI
- 物理備用資料庫(二)資料庫
- 物理備用資料庫(一)資料庫
- 磁碟物理結構及IO時的過程
- 用物理備庫的檔案來恢復主庫
- 搭建Oracle Data Guard 11g(物理備用)Oracle
- 12c RAC下搭建物理備用
- Oracle10G Dataguard 多個備庫 - 主庫和物理備庫的切換Oracle
- dataguard-建立物理備庫全程解析
- 重建物理備庫案例兩則
- 物理備庫無法接受archivelogHive
- [ standby db ] windows下備庫的刪除過程 -- 【轉發】Windows
- 【DG】怎麼使用Data Pump備份物理備庫
- MySQL的物理儲存結構和session過程MySqlSession
- 區域網的搭建過程
- 整理:RAC搭建過程
- 部落格搭建過程
- rac的系統時間與物理備庫lag
- 物理data guard備standby庫的時候報錯。
- 在物理備庫上部署閃回資料庫資料庫