一:试验环境:
primary server:
CentOS Linux4.4 + oracle 10.2.0.1
ORACLE_SID:orcl
主库ip:192.168.60.144
ORACLE_HOME: /free/oracle/product/10.2.0/db_1/
standby server:
SUSE Linux9 + oracle 10.2.0.1
ORACLE_SID:orcl
备库ip:192.168.60.253
IXDBA.NET技术社区
ORACLE_HOME: /free/oracle/product/10.2.0/db_1/
二:配置步骤
首先,装好primary和standby上的oracle,建SID同为orcl的库,所有设置完全相同。然后停止shutdown两台上的oracle,将primary上的所有数据文件,控制文件,redo文件和password文件都copy到standby机器的相应位置。这样,我们就拥有了两台完全一样的oracle server。
1. 在primary database上设置force logging
SQL>alter database force logging;
2. 修改primary databse的初始化参数,主要增加参数如下:
*.control_files='/free/oracle/oradata/orcl/control01.ctl','/free/oracle/oradata/orcl/control02.ctl','/free/oracle/oradata/orcl/control03.ctl'
*.service_names=’primary’ #这个参数指定了主库的service name
*.log_archive_config='DG_CONFIG=(PRIMAYR,STANDBY)'
*.DB_UNIQUE_NAME='PRIMARY'
*.LOG_ARCHIVE_DEST_1= 'LOCATION=/free/oracle/orabak'
*.LOG_ARCHIVE_DEST_2= 'SERVICE=STANDBY VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY LGWR SYNC AFFIRM' #如果不指定REOPEN,默认为300
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.LOG_ARCHIVE_FORMAT='arc%s%t%r.arc'
*.FAL_SERVER=' STANDBY '
*.FAL_CLIENT=' PRIMARY '
*.STANDBY_FILE_MANAGEMENT='AUTO'
*.standby_archive_dest='/free/oracle/orabak'
LOCK_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 ‘/free/oracle/oradata/orcl/controlstandby.ctl’
SQL>alter database open;
然后将该controlfile复制到standby server的对应位置。
5. 修改standby databse的初始化参数
*.service_names=’standby’ #这个参数指定了备库的service name
*.control_files='/free/oracle/oradata/orcl/controlstandby.ctl'
*.log_archive_config='DG_CONFIG=(PRIMARY,STANDBY)'
*.LOG_ARCHIVE_DEST_1= 'LOCATION=/free/oracle/orabak VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY'
*.LOG_ARCHIVE_DEST_2= 'SERVICE=primary VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIMARY LGWR SYNC AFFIRM REOPEN=10' #如果不指定REOPEN,默认为300
#*.LOG_ARCHIVE_DEST_2= 'SERVICE=standby VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY LGWR SYNC REOPEN=10'
*.db_unique_name='STANDBY'
*.FAL_CLIENT='STANDBY'
*.FAL_SERVER='PRIMARY'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.STANDBY_ARCHIVE_DEST='/free/oracle/orabak'
*.STANDBY_FILE_MANAGEMENT='AUTO'
DB_FILE_NAME_CONVERT ----当primary和standby的数据文件路径不一致时使用
LOG_FILE_NAME_CONVERT ----当primary和standby的数据文件路径不一致时使用
LOCK_NAME_SPACE ----当主数据库和备用数据在同一台机上时设为备用数据库的 查看所有的文章内容需要 80ixdba.net技术社区 和 普通会员权限 查看