您好,登錄后才能下訂單哦!
第一章:Dg理論講述
Data Guard(簡稱:Dg)是oracle高可用性體系中的一種工具。Dg通過冗余數據來提供數據保護,Dg通過日志同步機制保證冗余數據和主數據之前的同步,這種同步可以是實時、延時、同步、異步多種形式。Dg常用于異地容災和小企業的高可用性方案中。Dg可以在standby機器上執行只讀查詢,從而分散primary數據庫的性能壓力。
在Dg環境中,至少有兩個數據庫,一個處于open狀態對外提供服務,這個數據庫叫做primary database。第二個處于恢復狀態,叫做standby database。運行時primary database 對外提供服務,用戶在primary database上進行操作,操作被記錄在聯機日志和歸檔日志中,這些日志通過網絡傳遞給standby database。這個日志會在standby database上重演,從而實現primary database和standby database的數據同步。
第二章:Dg架構
Dg架構可以按功能分成3個部分:
1) 日志發送(redo send)
2) 日志接收(redo receive)
3) 日志應用(redo apply)
1、 日志發送:
Primary database運行過程中,會源源不斷產生redo日志,這些日志需要發送到standby database。這個發送動作可以由primary database的LGWR或ARCH進程完成,不同的歸檔目的地可以使用不同的方法,但是對于一個目的地,只能選用一種方法。選擇哪個進程對數據庫保護能力和系統可用性有很大區別
1) 使用ARCH進程:
Primary database 不斷產生redo log,這些日志被LGWR進程寫到聯機日志;
當一組聯機日志被寫滿之后,會發生日志切換,并且會觸發本地歸檔;
完成本地歸檔后,聯機日志就可以被覆蓋重用;
ARCH進程通過net把歸檔日志發送給standby database的RFS進程;
Standby database端的RFS進程把接收的日志寫入歸檔日志;
Standby database端的MRP進程或LSP進程在standby database上應用這些日志,進而同步數據。
2) 使用LGWR進程:
Primary database產生的日志同時寫到日志文件和網絡。也就是說LGWR進程把日志寫到本地日志文件的同時還要發送給本地的LNSn進程,再由LNSn進程把日志通過網絡發送到遠程的目的地;
LGWR必須等待寫入到本地日志文件操作和通過LNSn進程的網絡傳送成功,primary database上的事務才能提交;
Standby database的日志切換也會觸發standby database上的日志切換,及standby database對standby redo_log的歸檔,然后觸發standby database的MRP或LSP進程恢復歸檔日志。
2、 日志接收:
Standby database的RFS進程接收到日志后,就把日志寫到standby redo log或archived log文件中,具體寫入哪個文件,取決于primary的日志傳送方式和standby database的位置。如果寫到standby redo log文件中,則當primary database發生日志切換時,也會觸發standby database上的standby redo log的日志切換,并把這個standby redo log歸檔。如果寫到archived log,那么這個動作本身也可以看做是個歸檔操作。
3、 日志應用:
日志應用服務,就是在standby database上重演primary database日志,從而實現兩個數據庫的數據同步。
第三章:Dg配置過程
1、首先將源庫設置為強制歸檔模式:
通過sqlplus / as sysdba進入數據庫
2、源庫設置成歸檔模式,目前建立數據庫實例的時候已經設置完成。
3、源庫中添加如下與dg關聯參數,添加完成后重啟所有數據庫實例:
4、查看logfile(每個為500M)和創建standby_logfile
5、Rman備份整個源庫,備份完成后將備份文件復制到源庫對應目錄
6、創建standby庫的pfile,(該過程從源庫中備份過去并進行相關的修改)
7、修改后的參數如下:
8、修改源庫的tnsname.ora,同時復制到目標庫對應位置。
9、dg服務器上創建所需的目錄:
oracle下:
mkdir -p /u01/app/oracle/admin/easdb_dg/adump
mkdir -p /oradata/easdb_dg/controlfile/
mkdir -p /oradata/easdb_dg/standbylog/
mkdir -p /oradata/easdb_dg/onlinelog/
mkdir -p /u01/app/oracle/diag/rdbms/easdb_dg/oem/trace/cdump
root下:
mkdir /backup
chown oracle:oinstall /backup
10、統一源和目標庫的密碼:
11、Dg庫nomount啟動
12、源庫端:rman建立dataguard數據庫
rman target / auxiliary sys/kingdee123@easdb_dg
DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK;
13、恢復完成后,將目標庫當前用的pfile文件創建為當前的spfile,然后啟動數據庫到mount模式
14、目標庫設置為日志恢復模式
大功告成!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。