Oracle10G Physical Standby Database筆記
2024-08-29 13:28:48
供稿:網(wǎng)友
試驗環(huán)境primary server:
windows2000 server + oracle 10.0.1.0.2
oracle_sid:dgtest
oracle_home: d:/oracle/product/10.1.0/db_1standby server:
windows xp pro + oracle 10.0.1.0.2oracle_sid:dgtestoracle_home: d:/oracle/product/10.1.0/db_1
配置步驟首先,裝好primary和standby上的oracle,建sid同為dgtest的庫,所有設(shè)置完全相同。然后停止shutdown兩臺上的oracle,將primary上的所有數(shù)據(jù)文件,控制文件,redo文件和password文件都copy到standby機(jī)器的相應(yīng)位置。(還可以利用熱備,rman等來建立初始standby庫),這樣,我們就擁有了兩臺完全一樣的oracle server
1. 在primary database上設(shè)置force loggingsql>alter database force logging;
2. 修改primary databse的初始化參數(shù)db_unique_name=’primary’control_files='d:/oracle/product/oradata/control01.ctl','d:/oracle/product/oradata/control02.ctl','d:/oracle/product/oradata/control03.ctl'log_archive_dest_1= 'location= d:/oracle/product/arch’log_archive_dest_2= 'service=standby'log_archive_dest_state_1=enablelog_archive_dest_state_2=enableremote_login_passwordfile=exclusivelog_archive_format='arc%s%t%r.arc'fal_server=standbyfal_client=primarystandby_file_management=autolock_name_space ----這是當(dāng)主數(shù)據(jù)庫和備用數(shù)據(jù)在同一臺機(jī)上時要設(shè)該參數(shù),設(shè)為備用數(shù)據(jù)庫的sid
3. 設(shè)置primary database為archivelog模式sql>shutdown immediate;sql>startup mount;sql>alter database archivelog;sql>alter database open:
4. 在primary database上創(chuàng)建standby database的控制文件sql>shutdown immedaite;sql>startup mount;sql>alter database create standby controlfile as ‘d:/oracle/product/oradata/controlstandby.ctl’sql>alter database open;然后將該controlfile復(fù)制到standby server的對應(yīng)位置
5. 修改standby databse的初始化參數(shù)db_unique_name=’standby’control_files='d:/oracle/product/oradata/controlstandby.ctl'log_archive_dest_1= 'location= d:/oracle/product/arch’log_archive_dest_2= 'service=primary'log_archive_dest_state_1=enablelog_archive_dest_state_2=enablestandby_archive_dest=’ d:/oracle/product/arch’
remote_login_passwordfile=exclusivefal_server=primaryfal_client=standbystandby_file_management=autodb_file_name_convert ----當(dāng)primary和standby的數(shù)據(jù)文件路徑不一致時使用log_file_name_convert ----當(dāng)primary和standby的數(shù)據(jù)文件路徑不一致時使用lock_name_space ----當(dāng)主數(shù)據(jù)庫和備用數(shù)據(jù)在同一臺機(jī)上時設(shè)為備用數(shù)據(jù)庫的sid
具體參數(shù)的說明請參考o(jì)racle在線文檔
6. 設(shè)置primary database和standby database的tnsnames.oraprimary = (description = (address_list = (address = (protocol = tcp)(host = primary_server)(port = 1521)) ) (connect_data = (service_name = dgtest) ) )standby = (description = (address_list = (address = (protocol = tcp)(host = standby_server)(port = 1521)) ) (connect_data = (service_name = dgtest) ) )
7. 啟動standby database sql>startup nomount pfile=’d:/oracle/product/initdgtest.ora’sql>alter database mount standby database;
8. 啟動primary databasesql>startup pfile=’d:/oracle/product/initdgtest.ora’
9. 啟動standby database到recover manage模式sql>alter database recover managed standby database disconnect from session;
switchover
在primary上
1. sql>select switchover_status from v$database switchover_status的值入股是to standby,可以直接switchover,如果是sessions active, 則需要在switchover的命令后面加上with session shutdown
2. sql>alter database commit to switchover to physical standby;
3. sql>shutdowm immediate;
4. sql>startup mount;
在standby上
1. sql> select switchover_status from v$database
switchover_status的值入股是to primary,可以直接switchover,如果是sessions active, 則需要在switchover的命令后面加上with session shutdown
2. sql>alter database commit to switchover to primary;
3. sql>shutdown immediate;
4. sql>startup;
要想順利的實現(xiàn)switchover,最好在每臺server上都同時設(shè)置好primary和standby的一些初始化參數(shù),雖然其中一些參數(shù)只有在primary或者standby其中之一上起作用
failover
在standby上
1. sql>alter database recover managed standby database finish; or sql>alter database recover managed standby database finish skip standby logfile;
2. sql>alter database commit to switchover to primary;
3. sql>shutdown immediate;
4. sql>startup;
相關(guān)視圖
v$archive_dest
v$archive_dest_status v$log_history v$archvied_log v$managed_standby v$archive_gap
常見問題
1. 日志無法傳送 sql>select dest_name,status,error from v$archive_dest; 察看相應(yīng)的歸檔路徑的狀態(tài)是否valid,否則根據(jù)error信息進(jìn)行處理
2. 無法使用alter database重命名data file在standby上,當(dāng)設(shè)置standby_file_management為auto時,不允許下列操作alter database renamealter database add/drop logfilealter database add/drop standby logfile memberalter database create datafile as
3. switchover失敗sql>alter database commit to switchover to physical standbyora-01093:alter database close only permitted with no session connected察看引起該錯誤的活動sessionsql> select sid,process,program from v$session where type='user' and sid<>(select distinct sid from v$mystat);斷開該session,或者使用如下命令來做switchoversql>lter database commit to switchover to physical standby with session shutdown;