在Linux AS 5中配置Dataguard

來源:互聯網
上載者:User

記錄一下在windows裡用VMware虛擬機器安裝Oracle Dataguard的過程。
1,在VMWare安裝兩台Linux AS 5虛擬機器,不用安裝兩次,在一台安裝完成後(Linux 5以及Oracle後) ,拷貝這個虛擬機器的檔案修改部分內容作為第二台虛擬機器的檔案直接開啟。
參照http://www.5ienet.com/note/html/srac/rac_step_setup_second_note.shtml
2,將兩台虛擬機器的網路連接配置為host-only
IP資訊如下:這樣能保證虛擬機器之間網路能串連。
windows主機的 VMware Virtual Ethernet Adapter for VMnet1
172.16.245.1
255.255.255.0
172.16.245.1
dg1 虛擬機器1的IP配置如下
172.16.245.100
255.255.255.0
172.16.245.1
dg2 虛擬機器2的IP配置如下
172.16.245.101
255.255.255.0
172.16.245.1
*注意要將Linux虛擬機器的防火牆關閉。
Oracle的官方文檔:http://docs.oracle.com/cd/B19306_01/server.102/b14239/create_ps.htm#g88234
3,在第一台虛擬機器上建立資料庫(db name 為test),作為primary資料庫。
資料庫資訊如下:
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.0.2/db_1
export ORACLE_SID=test
然後執行下面步驟:
將資料庫改為歸檔模式參照:http://blog.csdn.net/kkdelta/article/details/7193738
然後做主要資料庫的準備工作
1,SQL> ALTER DATABASE FORCE LOGGING;
2,編輯參數檔案,以目前的spfile為基準,建立一個pfile,然後在這個基礎上編輯。
create pfile from spfile; 會在/opt/oracle/product/10.0.2/db_1/dbs下建立inittest.ora
加入下面的內容:
#--------------------------
DB_UNIQUE_NAME=testp
LOG_ARCHIVE_CONFIG='DG_CONFIG=(testp,tests)'
LOG_ARCHIVE_DEST_1='LOCATION=/opt/oracle/product/10.0.2/oradata/test/arclog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testp'
LOG_ARCHIVE_DEST_2='SERVICE=test_s LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=tests'

FAL_SERVER=test_s
FAL_CLIENT=test_p
STANDBY_FILE_MANAGEMENT=AUTO
這裡的 testp是主要資料庫的unique名字,tests是備用資料庫的unique名字,test_p是主要資料庫的tns,test_s是備用資料庫的tns。
這些tns都需要在兩台虛擬機器上配置(tnsnames.ora)。
3,將資料庫關閉後做一份主要資料庫的資料檔案備份,
shutdown immediate
將第一台虛擬機器中 /opt/oracle/product/10.0.2/oradata/test 的資料檔案(.dbf)拷貝到第二台同樣的檔案夾。
4,將主要資料啟動到mount,建立standby 資料庫的控制檔案
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/opt/oracle/product/10.0.2/oradata/stdby/stdby.ctl';
SQL> ALTER DATABASE OPEN;
將建立好的控制檔案拷貝到第二台虛擬機器的位置: /opt/oracle/product/10.0.2/oradata/test/stdby.ctl
5,為備用資料庫準備參數檔案,將主要資料庫的參數檔案拷貝一份到第二台虛擬機器同樣的目錄後如下修改。
修改 *.control_files='/opt/oracle/product/10.0.2/oradata/test/stdby.ctl'
將上面第二步主要資料庫參數檔案添加的內容替換成下面的內容:
#---------------------------
DB_UNIQUE_NAME=tests
LOG_ARCHIVE_CONFIG='DG_CONFIG=(testp,tests)'
LOG_ARCHIVE_DEST_1='LOCATION=/opt/oracle/product/10.0.2/oradata/test/arclog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=tests'
LOG_ARCHIVE_DEST_2= 'SERVICE=test_p LGWR SYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=testp'

STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=test_p
FAL_CLIENT=test_s
6,將主要資料庫的口令檔案拷貝到備用資料庫的虛擬機器。
7,在第二台虛擬機器上為備用資料庫建立listener
8,開啟備用資料庫到mount,建立standby logfile
alter database mount
ALTER DATABASE ADD STANDBY LOGFILE '/opt/oracle/product/10.0.2/oradata/test/stdby_redo01.log' size 20M;
ALTER DATABASE ADD STANDBY LOGFILE '/opt/oracle/product/10.0.2/oradata/test/stdby_redo02.log' size 20M;
ALTER DATABASE ADD STANDBY LOGFILE '/opt/oracle/product/10.0.2/oradata/test/stdby_redo03.log' size 20M;
9,在standby資料庫上開始redo應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
10,在主要資料庫上切換日誌,看歸檔日誌是否會傳送到standby資料庫。
SQL> ALTER SYSTEM SWITCH LOGFILE;
查看日誌是否傳到備用資料庫。

**standby資料庫只能以唯讀方式開啟
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
alter database open read only;
在備用資料庫上查看錶內容:
select * from t1;
在唯讀模式下,主要資料庫的歸檔日誌仍然會傳到standby資料庫,但是standby資料庫不會應用歸檔日誌。
和Dataguard相關的一下視圖
v$dataguard_config
v$dataguard_status
v$dataguard_stats
v$managed_standby
主從切換:
1,在primary資料庫建立standby日誌
ALTER DATABASE ADD STANDBY LOGFILE '/opt/oracle/product/10.0.2/oradata/test/stdby_redo01.log' size 20M;
ALTER DATABASE ADD STANDBY LOGFILE '/opt/oracle/product/10.0.2/oradata/test/stdby_redo02.log' size 20M;
ALTER DATABASE ADD STANDBY LOGFILE '/opt/oracle/product/10.0.2/oradata/test/stdby_redo03.log' size 20M;
2,在primary機上將所有外部應用停止,開始切換
alter database commit to switchover to physical standby with session shudown;
shutdown immediate;
startup mount;
3,將standby機切換到primary,

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
alter database commit to switchover to primary;
alter database open;

standby資料庫會自動建立redo log記錄檔組。
4,在最初的primary開啟日誌應用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

如果是primary資料庫發生了故障,啟用standby資料庫為應用服務。
1,應用所有日誌,recover standby database;
2,啟用standby資料庫
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
shutdown immediate;
startup open;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.