Oracle 9I dataguard(standby)
Oracle 9I dataguard
一個主資料庫可以有物理standby或邏輯的standby,也可以有兩者都有。資料的同步主要是主庫將archive log 傳送到standby系統上面,然後standby上將archive log恢復(即物理的standby)或者使用logmnr生成sql語句寫到standby庫上(即邏輯的standby),這樣的機制資料是不會立即從主庫上到standby上面,不能提供實時性要求高的查詢。邏輯standby的資料庫可以提供查詢功能,物理的standby需要先切換到readonly模式下才能提供查詢功能。
物理standby
物理standby在read only狀態下不能夠恢復redo log,但是可以繼續從主庫上接收redo log,如果需要的話可以重複轉換readonly狀態和recovery(redo apply)狀態。
物理standby可以作為一個工具去克隆一個新的資料庫和原來的一模一樣,克隆完了可以直接open(read/write),此時不能接收redo data 從主庫上,也不能提供災難保護。
物理standby 的優點:
1、災難恢復和高可用性
當主庫發生問題時,容易的主備切換機制,可以立即切換到standby,保證最短的當機時間。
2、資料保護
可以確保資料不丟失,其支援主庫支援的任何資料型別、物件以及sql。主庫上儲存級的物理錯誤不會被傳遞到standby上面。Standby在應用日誌的時候還會去校驗一下redo log的。
3、減低主庫的工作壓力
首先備份可以使用standby去備份,standby還可以開啟刀readonly狀態提供查詢。
4、效能
應用日誌是使用底層的機制去恢復資料,繞過了sql級的程式碼層,所以對於大量的資料來說它是最有效的恢復機制。
邏輯standby
邏輯standby初始時複製了一個和主庫一樣的資料庫,邏輯資料庫是執行sql語句生成的資料,即它是處在open的狀態下的,可以read/write,但是透過sql重新生成的表是隻讀的。當表被更新生成時也是可以查詢生成報表的,當然可以另外的建立索引去提高效能。邏輯standby是有資料型別、表的型別及sql型別等的限制的。
邏輯standby的優點:
有效的使用了standby庫的硬體資源
降低主庫的壓力
測試例子:
主庫: primarydb net service:pdb
備庫: standbydb net service:sdb
第一階段:建立一個物理的standby:
1、修改主庫的初始化引數
LOG_ARCHIVE_DEST_2=’SERVICE=sdb optional reopen=180’
LOG_ARCHIVE_DEST_STATE_2=ENABLE
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=SDB
FAL_CLIENT=PDB
LOG_ARCHIVE_DEST_2作為主庫角色時,說明了主庫會將日誌透過net8傳輸到net service name為sdb的資料庫上,即備庫上。Optional是指當主庫的聯機重做日誌沒有成功的歸檔到該地(sdb),也可以被迴圈使用。此處還有引數mandatory,強制規定聯機重做日誌歸檔到該位置後才能夠被迴圈使用。Reopen是指歸檔過程中發生故障,是否是強制嘗試重新歸檔到目標,此處的reopen=180,是指經過180秒後將嘗試重新歸檔。STANDBY_FILE_MANAGEMENT=AUTO 說明了主庫的資料檔案的增加刪除會自動地應用到備庫。FAL_SERVER引數是說明本庫作為standby角色時,日誌出現傳輸丟失,告訴standby去哪一個主庫去取日誌。FAL_CLIENT引數是說明從主庫取回日誌後送到哪個standby去。
如果主庫和備庫的資料檔案目錄不一致,需要在初始化引數中增加:
DB_FILE_NAME_CONVERT=’/data/oradata/primarydb/’,’/data/oradata/standbydb/’
LOG_FILE_NAME_CONVERT=’/arch1/pdb/’,’/arch1/sdb/’,’/arch2/pdb/’,’/arch2/sdb/’
2、主庫處於歸檔模式執行,如果不是請更改為歸檔模式:
sql>shutdown immediate
sql>startup mount;
sql>alter database archivelog;
sql>alter database open;
sql>
修改初始化引數檔案,增加:
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_1=/arch/oradata/
LOG_ARCHIVE_START=TRUE
3、備份主庫:冷備或者rman
冷備:將主庫shutdown,複製資料檔案、歸檔日誌檔案、線上日誌檔案。
Rman:
備份資料檔案:
Backup database filesperset 2 format='/disk3/oradata/backup/%U_%s.bak';
歸檔當前日誌:
sql "Alter System Archive Log Current";
檢查歸檔日誌刪除過期的:
Crosscheck archivelog all;
Report obsolete;
Delete noprompt expired archivelog all;
Delete noprompt obsolete;
建立控制檔案並備份控制檔案和歸檔日誌:
Backup filesperset 10 archivelog all format=’/disk3/oradata/backup/%U_%s.log’;
在sql環境下執行:
Alter database create standby controlfile as ‘/data/oradata/test2/control01.ctl’;
4、給備庫準備初始化引數檔案
在主庫上執行:
sql>create pfile=’/tmp/initpdb.ora’ from spfile;
將該初始化引數檔案搞到備庫上去。
備庫上的目錄環境如果按照主庫上的一樣,則可以不用修改,如果不一樣,請修改為備庫上的目錄環境,主要是控制檔案的位置,db_file_name_convert和log_file_name_convert是根據需要來設定的。
Log_archive_dest_1=’location=/arch/sdb/’
Log_archive_dest_2=’service=pdb optional reopen=180’
Fal_server=pdb
Fal_client=sdb
Standby_file_management=auto
當作為standby角色時Log_archive_dest_1這個引數是說明從主庫傳過來的日誌放到的位置,Log_archive_dest_2作為standby角色時是被忽略掉的。
5、將主庫備份的資料檔案拷到備庫
在備庫上建立與主庫一致的路徑(也可以不一致,但是需要和初始化引數檔案中指定的一致),將主庫的密碼檔案複製到備庫,放到相應的位置:$ORACLE_HOME/dbs/。將3步中生成的standby的控制檔案拷到對應的目錄下,注意要和初始化引數檔案中指定的路徑數量一致。
啟動standby資料庫:
sql>Startup nomount pfile=’/opt/oracle/products/9.2.0/dbs/initinstancename.ora’
sql>alter database mount standby database;
如果是冷備,將相應的檔案複製到對應的位置;
如果是rman備份,使用rman命令進行
rman>restore database;
rman>recover database;此時可能會出現錯誤,需要手工將主庫日誌歸檔,然後拷到備庫的日誌對應的路徑,然後註冊alter database register logfile ‘..’,再進行恢復recover automatic standby database until cancel;。
完畢後,將資料庫直接啟動到自動恢復模式即可:
Alter database recover managed standby database disconnect from session;
至此物理的standby搭建完畢.
可以進行日誌切換來測試是否配置成功,alter system switch logfile;
第二階段:主備庫切換
下面介紹物理standby進行相互轉換得過程,如上配置已經完全滿足了主備庫相互轉換的要求。
在主庫上執行:
sql>alter database commit to switchover to physical standby with session shutdown;
sql>hutdown immediate
sql>tartup nomount pfile=’’
sql>alter database mount standby database;
sql>alter database recover managed standby database disconnect from session;
在備庫上執行:
Sql>alter database commit to switchover to primary;
Sql>shutdown immediate
Sql>startup
第三階段:恢復模式和只讀模式切換
Standby從shutdown狀態到read only狀態。
SQL> STARTUP NOMOUNT pfile=initSTANDBY.ora
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE OPEN READ ONLY;
Standby從manual recovery模式下到read only狀態
SQL> RECOVER CANCEL
SQL> ALTER DATABASE OPEN READ ONLY;
Standby從managed recovery模式下到read only狀態
SQL> RECOVER MANAGED STANDBY DATABASE CANCEL
SQL> ALTER DATABASE OPEN READ ONLY;
從只讀模式轉到自動恢復模式
SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION
從只讀模式轉到手工恢復模式
SQL> RECOVER STANDBY DATABASE DISCONNECT FROM SESSION
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7312700/viewspace-1001184/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 9i Dataguard (Standby) 引數設定參考
- oracle 之dataguard standby 切換Oracle
- 【DataGuard】Oracle 11g physical standby switchoverOracle
- Oracle DataGuard Standby database ID mismatch錯誤OracleDatabase
- 【DataGuard】Oracle 11g DataGuard 新特性之 Snapshot Standby DatabaseOracleDatabase
- oracle 12c 支援級聯 standby dataguardOracle
- ORACLE10g DataGuard 配置Physical Standby DatabaseOracleDatabase
- [轉帖]Oracle9i Standby (Dataguard) 建立Oracle
- DataGuard:Physical Standby Switchover
- Oracle Dataguard Standby Redo Log的兩個實驗Oracle
- oracle10g 物理standby dataguard 建立過程Oracle
- oracle 9i physical standby database狀態查詢OracleDatabase
- Oracle 9i R2 配置 Logical StandbyOracle
- Oracle 9i Logical Standby與Physical standby歸檔恢復區別Oracle
- DataGuard搭建物理StandBy
- DataGuard搭建邏輯StandBy
- Dataguard(Standby) 後臺程式
- DataGuard:Physical Standby FailoverAI
- DataGuard:Logical Standby Switchover
- 配置 Oracle 10g RAC primary + RAC physical standby dataguardOracle 10g
- ORACLE 9I DATAGUARD實施和維護總結Oracle
- 【DataGuard】不能沒有你,我的Standby ——Oracle DataGuard最大保護模式 故障實驗Oracle模式
- DataGuard:Logical Standby FailoverAI
- Oracle 11g Data Guard (physical standby - active dataguard) [final]Oracle
- oracle 9i physical standby database 上的v$archived_logOracleDatabaseHive
- oracle9204(9i)_logical standby_ddl_relatedOracle
- oracle 9i dataguard 由MAXIMUM PERFORMANCE模式變為MAXIMUM PROTECTIONOracleORM模式
- Oracle 9i DataGuard Failover 發生ORA-16139OracleAI
- 【DataGuard】Oracle 11g DataGuard 新特性之 Active Standby:Real-Time Apply+QueryOracleAPP
- oracle實驗記錄 (oracle 10G dataguard(11)建立logical standby)Oracle
- dataguard 搭建 oracle_sid不同 2節點 primary+standbyOracle
- dataguard 搭建 oracle_sid相同 2節點 primary+standbyOracle
- ORACLE 11G DataGuard Failover後如何修復standby庫OracleAI
- Oracle11g R2之Dataguard搭建物理standbyOracle
- 附錄A Oracle Dataguard 物理Standby跨平臺組合支援列表Oracle
- oracle dataguard standby log_archive_dest_state_n 中defer 含義OracleHive
- Oracle 9i Dataguard Max Performance Configuration for freshman in DBA TeamOracleORM
- Dataguard物理Standby Switchover 角色轉換