一:Oracle DataGuard环境概述OS: CentOS5 + ORACLE10G 10.2.0.4.0IP:192.168.100.208(primary) 192.168.8.201(standby)ORACLE_SI
一:Oracle DataGuard环境概述
OS: CentOS5 + ORACLE10G 10.2.0.4.0
IP:192.168.100.208(primary) 192.168.8.201(standby)
ORACLE_SID:jscn
ORACLE_HOME:/oracle/ora10/product
二,主数据库做准备
1.修改primary dba 为归档模式
SQL> alter system set log_archive_dest_1='location=/oraarch/' scope=spfile;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
2.将 primary 数据库置为 FORCE LOGGING 模式
SQL> alter database force logging;
3.检查主机是否有口令文件,如没有需建立
orapwd file='/oracle/ora10/product/dbs/orapwjscn' password=sys
4.为主数据库添加"备用联机日志文件"
SQL> alter database add standby logfile group 4 ('/oracle/ora10/oradata/jscn/redo04.log') size 50m;
SQL> alter database add standby logfile group 5 ('/oracle/ora10/oradata/jscn/redo05.log') size 50m;
SQL> alter database add standby logfile group 6 ('/oracle/ora10/oradata/jscn/redo06.log') size 50m;
SQL> alter database add standby logfile group 7 ('/oracle/ora10/oradata/jscn/redo07.log') size 50m;
5.修改主库参数文件
SQL> create pfile='/home/oracle/init_pr.ora' from spfile;
[oracle@10-208 jscn]$ vim /home/oracle/init_pr.ora
*********************************分割线开始***************************************
jscn.__db_cache_size=515899392
jscn.__java_pool_size=4194304
jscn.__large_pool_size=4194304
jscn.__shared_pool_size=536870912
jscn.__streams_pool_size=0
*.audit_file_dest='/oracle/ora10/admin/jscn/adump'
*.background_dump_dest='/oracle/ora10/admin/jscn/bdump'
*.compatible='10.2.0.3.0'
*.control_files='/oracle/ora10/oradata/jscn/control01.ctl','/oracle/ora10/oradata/jscn/control02.ctl','/oracle/ora10/oradata/jscn/control03.ctl'
*.core_dump_dest='/oracle/ora10/admin/jscn/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=8
*.db_name='jscn'
*.db_recovery_file_dest='/oracle/ora10/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=jscnXDB)'
*.job_queue_processes=10
#*.log_archive_dest_1='location=/oraarch/'
*.open_cursors=300
*.pga_aggregate_target=2684354560
*.processes=1500
*.remote_login_passwordfile='EXCLUSIVE'
*.sessiOns=1655
*.sga_max_size=1073741824
*.sga_target=1073741824
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/ora10/admin/jscn/udump'
###add below parameter for standy database
*.DB_UNIQUE_NAME='10gpri'
*.log_archive_cOnfig='DG_COnFIG=(10gpri,10gstandby)'
*.log_archive_dest_1='location=/oraarch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=10gpri'
*.log_archive_dest_2='SERVICE=10gstandby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=10gstandby'
*.STANDBY_FILE_MANAGEMENT=AUTO
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.FAL_SERVER='10gstandby'
*.FAL_CLIENT='10gpri'
*********************************分割线结束***************************************
6.主库用PFILE建立SPFILE
[oracle@host160 pfile]$ sqlplus / as sysdba
SQL> create spfile from pfile='/home/oracle/init_pr.ora';
7.生成数据库备份
[oracle@10-208 ~]$ mkdir /oracle/rmanback/
RMAN> backup database format='/oracle/rmanback/%d_%s.dbf' plus archivelog;
8.建立备用库的控制文件
SQL> alter database create standby controlfile as '/oracle/rmanback/standby_ctl01.ctl';
9.配置主数据库listener及tnsnames
[oracle@10-208 admin]$ vim listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/ora10/product)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10-208)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
[oracle@10-208 admin]$ cat tnsnames.ora
10gpri =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.208)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 10gpri)
)
)
10gstandby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.201)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 10gstandby)
)
)