主库
ip:192.168.200.88
instance_name=orcl
db_name=orcl
db_unique_name=orcl
service_names=orcl
备库
ip:192.168.200.88
instance_name=orclbk
db_name=orcl
db_unique_name=orclbk
service_names=orclbk
过程如下
1.创建pfile
create pfile from spfile;
2.修改刚创建的pfile文件,添加对应的几个参数,此参数文件用于主库
*.audit_file_dest='/u01/app/oracle/admin/orcl11g/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/orcl11g/control01.ctl','/u01/app/oracle/fast_recovery_area/orcl11g/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='ORCL' ---两端一定要一样
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.db_unique_name='ORCL' ---两端必须唯一
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=1000
*.open_cursors=300
*.pga_aggregate_target=1071644672
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.service_names='ORCL'
*.sga_target=2073034752
*.undo_tablespace='UNDOTBS1'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbk)'
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archive/primary/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_2='SERVICE=orclbk ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclbk'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=orclbk
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orclbk/','/u01/app/oracle/oradata/orcl11g/' --主备切换时使用,方法是先写备库文件地址,再写主库文件地址
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orclbk/','/u01/app/oracle/oradata/orcl11g/'
STANDBY_FILE_MANAGEMENT=AUTO
3.创建对应的目录
4.复制initorcl.ora,重命名initorclbk.ora
5.修改initorclbk.ora中的相关参数,其值刚好与主库的相反
由于是在同一个服务器上,以下几个参数一定要注意修改,注意db_name一定要与主库一致
*.db_unique_name=orckbk
*.instance_name=orclbk
*.service_names=orclbk
log_file_name_convert
db_file_name_convert
其值如下:
orclbk.__db_cache_size=1543503872
orclbk.__java_pool_size=16777216
orclbk.__large_pool_size=33554432
orclbk.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orclbk.__pga_aggregate_target=1073741824
orclbk.__sga_target=2080374784
orclbk.__shared_io_pool_size=0
orclbk.__shared_pool_size=452984832
orclbk.__streams_pool_size=16777216
*.audit_file_dest='/u01/app/oracle/admin/orclbk/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/orclbk/control01.ctl','/u01/app/oracle/fast_recovery_area/orclbk/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='ORCL'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.db_unique_name='ORCL'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclbkXDB)'
*.job_queue_processes=1000
*.open_cursors=300
*.pga_aggregate_target=1071644672
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.service_names='ORCLBK'
*.sga_target=2073034752
*.undo_tablespace='UNDOTBS1'
DB_UNIQUE_NAME=orclbk
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orclbk,orcl)'
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archive/standby/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclbk'
LOG_ARCHIVE_DEST_2='SERVICE=orcl ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=orcl
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orcl11g/','/u01/app/oracle/oradata/orclbk/'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orcl11g/','/u01/app/oracle/oradata/orclbk/' ---------注意和主库位置相反
STANDBY_FILE_MANAGEMENT=AUTO
6.创建并检查备库所需要目录是否都正常
7.创建orclbk实例
向用户根目录下.bash_profile添加ORACLE_SID=orclbk即可
8.修改tnsname.ora,并向其添加如下内容,linux下注意server_name的大小写
orcl=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.139.88)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
orclbk=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.139.88)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLBK)
)
)
9.手工创建监听文件listener.ora内容如下
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = orclbk)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/)
(SID_NAME = orclbk)
)
)
10.创建备库的口令文件,使其和主库相同,建议在主库上先修改密码,然后记住此密码
orapwd file=orapworcl entries=4 force=y password=xxxxxx
然后将主库的密码复制一份,并改名为orapworclbk
11.确定主备库的别名没有问题,如果这里测试不过,需要检测前面创建的密码文件是否正常
tnsping orcl
sqlplus sys/xxxxxx@orcl as sysdba
tnsping orckbk
sqlplus sys/xxxxxx@orclbk as sysdba
12.连接至主库,开启归档和force logging
alter database force logging;
alter database archivelog;
12.使用rman 连接主库和备库
[oracle@oracle ~]$ rman target sys/xxxxxx@orcl auxiliary sys/xxxxxx@orclbk
duplicate target database for standby from active database NOFILENAMECHECK ---由于我们的主备数据文件目录不同,这里nofilenamecheck参数可以不添加
等待复制完成
13.传输完成后,检测数据文件是否都在对应的目录
14.此时查看备库状态,应该是处于mount,角色为物理备库
select database_role,open_mode from v$database;
15.查看主库状态,应该为open,可读写
select database_role,open_mode from v$database;
16.在备库上打开实时应用
recover managed standby database using current logfile disconnect from session;
recover managed standby database cancel;
alter database open;
recover managed standby database using current logfile disconnect from session;
此时备库的状态应该是read only with appply,并且角色为物理备库
17,可以在主库上做创建表等操作,看备库是否实时应用日志
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 下一篇:cisco交换机端口镜像