DataGuard簡稱DG,是一種資料庫層級的HA方案,最主要功能是冗災、資料保護、故障恢複,DG是生產資料庫的"事務一致性copy",建立時,使用生產庫的物理copy,建立完成後,備庫會通過生產庫傳輸過來的歸檔日誌(或重做條目)自動維護備用資料庫。將重做資料應用到備用庫。DG分為"物理standby"和"邏輯standby" 。本執行個體是採用“物理standby”。DG是Oracle企業版專有特性,因此標準版是沒有的。
| 作業系統 |
主從關係 |
IP地址 |
資料檔案路徑 |
| win2003server |
Primary |
192.168.48.101 |
D:\oracle\product\10.2.0\oradata\dgoracle |
| win2003server |
Standby |
192.168.48.102 |
D:\oracle\product\10.2.0\oradata\dgoracle |
註:Primary與Standby的資料檔案路徑可以不一樣。 硬體及作業系統要求:1. 運行於相同的硬體平台,比如都是intelx86架構的32位linux平台2. 伺服器的配置可以不一樣,只要有足夠的儲存資料檔案的空間就行3. primary與standby伺服器的作業系統必須一致,當然版本可以略有差異,比如一個是AS4,另一個是AS5。 Oracle資料庫名稱規劃:
| db_name |
dgoracle |
| db_uniqe_name |
dgoracle |
| instance_name |
txgj |
| service_name |
dgoracle |
| oracle_sid |
txgj |
在Primary與standby伺服器上分別安裝好Oracle資料庫,也可以先安裝軟體,然後在Primary上建庫,然後再將資料檔案copy到standby上。 DG配置之路 1. 在Primary上查看歸檔SQL>archive log list如果未歸檔,則開啟歸檔SQL>shutdown immediate;SQL>startup mount;SQL>alter database archivelog;SQL>alter database open;SQL>archive log list; 2.在Primary上指定歸檔日誌路徑與格式SQL>alter system set log_archive_dest_1=’D:\oracle\archlog VALID_FOR=(ALL_LOGFILES,ALL_ROLES)’scope=spfile;SQL>alter system set log_archive_format=’arch_%t_%s_%r_arc’ scope=spfile; 3.在Primary上修改資料庫為強制歸檔模式SQL>alter database force logging;SQL>shutdowm immediate; 4.在Primary上建立參數檔案及standby控制檔案SQL>startup mountSQL>create pfile=’D:\oracle\init.ora’ from spfile;SQL>alter database create standby controlfile as ‘D:\oracle\01.ctl’;SQL>shutdown immediate; 5.關閉Standby庫,並將Primary的資料檔案複製並覆蓋同名檔案,複製剛建立的參數檔案與控制檔案,將01.ctl再複製2份並命名為同名控制檔案,然後覆蓋安裝目錄下同名檔案。複製Primary密碼檔案覆蓋standby安裝目錄下同名檔案。 6.修改Primary剛建立的pfile參數,添加如下內容:*.LOG_ARCHIVE_DEST_STATE_1=ENABLE*.LOG_ARCHIVE_DEST_STATE_2=ENABLE*.FAL_SERVER='standby'*.FAL_CLIENT='primary'*.STANDBY_FILE_MANAGEMENT='AUTO'*.STANDBY_ARCHIVE_DEST='D:\oracle\archstandby'*.LOG_FILE_NAME_CONVERT=('D:\oracle\product\10.2.0\oradata\dgoracle','D:\oracle\product\10.2.0\oradata\dgoracle')*.DB_FILE_NAME_CONVERT=('D:\oracle\product\10.2.0\oradata\dgoracle','D:\oracle\product\10.2.0\oradata\dgoracle') 每個參數具體什麼意思去Baidu一下。 7.修改Standby參數檔案,添加以下內容:*.log_archive_dest_2='SERVICE=primary LGWR ASYNC'*.LOG_ARCHIVE_DEST_STATE_1=ENABLE*.LOG_ARCHIVE_DEST_STATE_2=ENABLE*.FAL_SERVER=primary*.FAL_CLIENT=standby*.STANDBY_ARCHIVE_DEST='D:\oracle\archstandby'*.STANDBY_FILE_MANAGEMENT=AUTO*.LOG_FILE_NAME_CONVERT=('D:\oracle\product\10.2.0\oradata\dgoracle','D:\oracle\product\10.2.0\oradata\dgoracle')*.DB_FILE_NAME_CONVERT=('D:\oracle\product\10.2.0\oradata\dgoracle','D:\oracle\product\10.2.0\oradata\dgoracle') 8.配置主備庫的監聽檔案SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = f:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME= dgoracle) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (SID_NAME = txgj) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.48.101)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) )註:藍色字型為主備庫都要新增內容,紅色字型則是修改成原生IP。