建立DATAGUARD最大保護模式-測試手記
建立DATAGUARD最大保護模式(自寫)
(備註:本文件符合最大保護模式,所有引數均為最大保護模式下適用,其他模式不適用)
1、主庫,啟動歸檔,開啟強制歸檔。
alter database archivelog;
alter database force logging;
2、建立standby日誌。
alter database add standby logfile group 4 ('D:\oracle\product\10.2.0\oradata\orcl\standbyredo04.log') size 50m;
3、建立備庫用的控制檔案。
alter database create standby controlfile as 'd:\standbycontrol01.ctl';
4、建立pfile引數檔案。
create pfile from spfile;
5、修改主庫pfile引數檔案。
增加以下內容:
*.DB_UNIQUE_NAME='PRIMARY'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIMARY,STANDBY)'
*.LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\product\10.2.0\oradata\ARCH\ MANDATORY REOPEN=60 MAX_FAILURE=3 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRIMARY'
*.LOG_ARCHIVE_DEST_2='SERVICE=STANDBY LGWR SYNC AFFIRM VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
*.LOG_ARCHIVE_FORMAT=ORCL_%T_%S_%R.ARC
*.FAL_CLIENT = 'PRIMARY'
*.FAL_SERVER = 'STANDBY'
*.STANDBY_FILE_MANAGEMENT =AUTO
用pfile引數檔案啟動後,建立spfile檔案,然後用spfile啟動資料庫。
6、修改主庫listener和net解析配置檔案。(這部分主要的目的是要保證兩邊資料庫要互相能夠登入,所以在啟動DG之前,一定要用從各自主機上用sqlplus登入,嘗試能不能登入,記得用sys使用者登入要加上as sysdba,否則會報異常錯誤,由於備庫會處於mount狀態,經過驗證,在mount下,動態註冊監聽會導致遠端sqlplus用sys使用者登入會報錯,所以備庫還是使用靜態註冊監聽)(NET部分配置,可以使用NETCA來配置,只是從主庫上建立到備庫的連線時,由於沒有啟動或者處於mount狀態,只能用sys使用者來做測試,輸入本地服務名主要和log_archive_dest_2中的service後面的服務名相關,要一樣才能讓主庫進行解析,備庫一樣配置的目的,主要為了切換之後可以正常使用.)
由於備庫沒有啟動,所以用netca配置可能不靈光,還是推薦直接用配置檔案的方式做。
listener.ora配置
SID_LIST_LISTENER =
(SID_LIST =
下增加: (SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = orcl)
)
就是增加一個靜態監聽註冊,其實主庫可以不這樣配置,但是為了以後切換之後,可以正常使用,所以還是按照standby資料要求來配置。
tnsnames.ora配置
增加:
PRIMARY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
7、複製檔案到備庫:資料庫資料檔案,生成出來的控制檔案,做好的pfile引數檔案,日誌檔案,以及修改過的listener.ora和tnsnames.ora。這裡和網上的不太一樣,但是我推薦還是將聯機日誌檔案全部複製到備庫。
8、修改備庫上的pfile檔案
*.DB_UNIQUE_NAME='STANDBY'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIMARY,STANDBY)'
*.LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\product\10.2.0\oradata\ARCH\ MANDATORY REOPEN=60 MAX_FAILURE=3 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY'
*.LOG_ARCHIVE_DEST_2='SERVICE=PRIMARY LGWR SYNC AFFIRM VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRIMARY'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
*.LOG_ARCHIVE_FORMAT=ORCL_%T_%S_%R.ARC
*.FAL_CLIENT = 'STANDBY'
*.FAL_SERVER = 'PRIMARY'
*.STANDBY_FILE_MANAGEMENT =AUTO
9、檢查listener.ora和tnsnames.ora檔案配置是否正確,主要可能是目錄不太一樣。
10、將控制檔案複製2份,複製到和主庫一樣的位置,並且檔名改成和主庫一樣的。
11、將資料檔案複製到和主庫一樣的位置。
12、將修改好的pfile引數檔案,複製到db_1\database下。
13、將listener.ora和tnsnames.ora複製到到db_1\network\admin下。
14、備庫上的資料夾要建立和主庫一樣的。主要有D:\oracle\product\10.2.0\admin\orcl下的6個資料夾,D:\oracle\product\10.2.0\flash_recovery_area,D:\oracle\product\10.2.0\oradata下的資料檔案存放資料夾及歸檔日誌資料夾。
15、pfile、listener.ora、tnsnames.ora修改檢查複製完成,資料檔案、聯機日誌檔案及控制檔案複製完成之後,可以開始了。
16、建立服務:oradim -new -sid orcl -startmode m
17、生成密碼檔案:orapwd file='D:\oracle\product\10.2.0\db_2\database\pwdorcl.ora' password=XXXX entris=5;
18、用pfile引數檔案啟動資料庫到mount狀態,建立spfile,然後用spfile重新啟動到mount狀態,由於在複製過來的時候,帶過來了關於standby日誌的配置,這裡最好是刪除之後重新建立:
alter database drop standby logfile group 4;
alter database add standby logfile group 4 ('D:\oracle\product\10.2.0\oradata\orcl\standbyredo04.log') size 50m;
19、啟動備庫中的redo實時應用:
alter database recover managed standby database using current logfile disconnect from session;
19、回到主庫:
用sqlplus來檢查一下standby 資料庫能不能正常登陸。記得用SYS使用者登入,加上as sysdba。
20、啟動主庫到mount狀態,mount狀態下修改主庫到最大保護模式:
alter database set standby database to maximize protection;
21、啟動正常,說明DG建立成功。
22、資料庫切換
主庫執行:
Alter database commit to switchover to phiscal standby with session shutdown;
Shutdown immediate
Startup mount
備庫執行:
Alter databse commit to switchover to primary;
可能需要執行一下redo應用之後,才能切換
Alter databse recover managed standby database disconnect from session;
Alter databse commit to switchover to primary;
主要是備庫切換過來之後,由於是雙向都是最大保護,所以要備庫能連線到主庫,所以首先要在備庫上執行sqlplus,看看能不能正常登入到主庫,也有可能登入不上,那麼有可能是主庫的listener.ora的服務名不一樣,將備庫中tnsnames.ora中的service_name改成要主庫一樣的就可以了,這主要是因為主庫和備庫都配置了db_unique_name,listener.ora有netca配置的時候,可能會將db_unique_name配置為服務名,但是oracle_sid還是orcl,這個要務必注意。
總結 :
一、DG主要,是有引數檔案的引數來確定,只要正確,建立一般沒有問題,每種DG保護模式引數都不一樣,不能套用。
二 、DG啟動,則是有SQLPLUS命令來控制的,引數正確,命令執行就沒有問題。
三、DG中的NET部分非常重要,很多錯誤可能會發生在NET配置部分,由於DB_UNIQUE_NAME的設立,可能會導致listener.ora中的配置和一般的不一樣,也就是裡面的服務名和oracle_sid 不一定是一樣的,這點要注意,如果不一樣,也需要改動太多,只要將對面的資料庫(主庫或者備庫)中的tnsnames.ora中的service_name改成一樣就可以了,儘量不要修改太多。
本 文件 已經經過3次驗證,沒有問題,如果有錯誤,一定要仔細看看引數是否正確,配置是否一致,NET部分是否支援相互正常登入。再三提醒,本文件中的引數,只適合DG最大保護模式,其他模式,可能需要更改.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9606200/viewspace-757947/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10gR2最大保護模式DataGuard建立模式
- 0gR2最大保護模式DataGuard建立 (轉載)模式
- dataguard三種保護模式模式
- DataGuard切換保護模式模式
- 【DataGuard】不能沒有你,我的Standby ——Oracle DataGuard最大保護模式 故障實驗Oracle模式
- 【DataGuard】Oracle DataGuard 資料保護模式切換Oracle模式
- 【DataGuard】Oracle Dataguard三種保護模式特點總結Oracle模式
- oracle實驗記錄 (oracle 10G dataguard(6)保護模式)Oracle模式
- 11g dataguard 型別、保護模式、服務型別模式
- 聊聊Dataguard的三種保護模式實驗(上)模式
- 聊聊Dataguard的三種保護模式實驗(下)模式
- 10g Data Guard三種保護模式測試模式
- 最大效能保護,最大資料保護,最大可用性,LGWR, ARCH大資料
- 滴水中級班保護模式階段測試作業模式
- 保護模式模式
- 建立 oracle data gurd 以及三種保護模式Oracle模式
- 【DataGuard】調整Data Guard資料保護模式詳細步驟模式
- 最大效能模式DATAGUARD 搭建 及SWITCH模式
- DG學習筆記(7)_保護模式筆記模式
- 10g DG保護模式的切換:從最大效能到最大可用模式
- 探索Oracle11gR2 之 DataGuard_03 三種保護模式Oracle模式
- DG的保護模式模式
- 真實模式和保護模式模式
- 保護性暫停模式模式
- Windows的保護模式 (轉)Windows模式
- 保護模式:段機制模式
- 【DataGuard】使用Grid Control調整Oracle物理Data Guard資料保護模式Oracle模式
- 一步一步學DataGuard(22)Standby之選擇資料保護模式模式
- Oracle DataGuard 常用維護命令參考手冊 [轉載記錄]Oracle
- 保護模式篇——PAE分頁模式
- 保護模式知識(三) (轉)模式
- 固態硬碟掉電保護的原理及測試方法硬碟
- 蘋果新隱私保護功能測試中,Facebook表示不可蘋果
- 【系列筆記】保護小區的調查、監測和巡護?(二)筆記
- 11g 最大保護模式 standby database網路故障導致主庫當機模式Database
- Oracle11g的Dataguard測試,建立物理備庫(Physical Standby Database)OracleDatabase
- 軟體測試手記:切莫忽視效能測試
- Oracle DataGuard 常用維護命令參考手冊Oracle