首页 > 数据库 > Oracle > 正文

Oracle10G Physical Standby Database笔记

2020-03-09 22:56:00
字体:
来源:转载
供稿:网友

试验环境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的库,所有设置完全相同。然后停止shutdown两台上的oracle,将primary上的所有数据文件,控制文件,redo文件和password文件都copy到standby机器的相应位置。(还可以利用热备,rman等来建立初始standby库),这样,我们就拥有了两台完全一样的oracle server




 


1.      在primary database上设置force loggingsql>alter database force logging;



2.      修改primary databse的初始化参数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           ----这是当主数据库和备用数据在同一台机上时要设该参数,设为备用数据库的sid



3.      设置primary database为archivelog模式sql>shutdown immediate;sql>startup mount;sql>alter database archivelog;sql>alter database open:



4.      在primary database上创建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复制到standby server的对应位置



5.      修改standby databse的初始化参数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     ----当primary和standby的数据文件路径不一致时使用log_file_name_convert    ----当primary和standby的数据文件路径不一致时使用lock_name_space           ----当主数据库和备用数据在同一台机上时设为备用数据库的sid



具体参数的说明请参考oracle在线文档



6.      设置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;



要想顺利的实现switchover,最好在每台server上都同时设置好primary和standby的一些初始化参数,虽然其中一些参数只有在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;




 


相关视图



   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; 察看相应的归档路径的状态是否valid,否则根据error信息进行处理



2.      无法使用alter database重命名data file在standby上,当设置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;




发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表