这个得和官方文档一起看:
有空整理个全的吧
$ mkdir -p /opt/oracle/stage
$mkdir -p /opt/oracle/stage
*.log_archive_config='dg_config=(icpdbdg,icpdb)'
*.log_archive_dest_2='service=icpdb valid_for=(online_logfiles,primary_role) db_unique_name=icpdb'
*.db_file_name_convert='+DATAG1/icpdb/','+DATAG1/icpdbdg/','+DATAG2/icpdb','+DATAG2/icpdbdg'
*.log_file_name_convert='+DATAG1/icpdb/','+DATAG1/icpdbdg/','+DATAG2/icpdb','+DATAG2/icpdbdg'
*.standby_file_management=auto
*.fal_server='icpdb'
*.fal_client='icpdbdg'
*.service_names='icpdbdg'
ICPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nccpxdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = nccpxdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = icpdb)
)
)
orapwd file=orapwicpdbdg password=oracle
orapwd file=orapwBOSTON password=oracle
ALTER DISKGROUP DATAG1 ADD DIRECTORY '+DATAG1/icpdbdg';
ALTER DISKGROUP DATAG2 ADD DIRECTORY '+DATAG2/icpdbdg';
CREATE SPFILE='+DATAG1/icpdbdg/spfileicpdbdg.ora' FROM PFILE='?/dbs/initicpdbdg1.ora';
CREATE SPFILE='+DATAG1/icpdbdg/spfileicpdb.ora' FROM PFILE='?/dbs/initicpdbdg1.ora';
startup nomount;
alter system set db_name='icpdb' scope=spfile;
shutdown immediate;
echo "SPFILE='+DATAG1/icpdbdg/spfileicpdbdg.ora'" > initicpdbdg1.ora
echo "SPFILE='+DATAG1/icpdbdg/spfileicpdbdg.ora'" > initicpdbdg2.ora
starup nomount;
rman target sys/oracle@icpdb auxiliary /
duplicate target database for standby;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
group 21 size 500M,
group 22 size 500M,
group 23 size 500M,
group 24 size 500M,
group 25 size 500M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
group 26 size 500M,
group 27 size 500M,
group 28 size 500M,
group 29 size 500M,
group 30 size 500M;
SQL> SELECT * FROM V$LOG;
SQL> SELECT * FROM V$STANDBY_LOG;
SQL> SELECT * FROM V$LOGFILE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
$ srvctl add database -d icpdbdg -o /u01/app/oracle/product/10.2.0/db_1
$ srvctl add instance -d icpdbdg -i icpdbdg1 -n nccpxdb3
$ srvctl add instance -d icpdbdg -i icpdbdg2 -n nccpxdb4
$ srvctl add asm -n nccpxdb3 -i +ASM1 –o /u01/app/oracle/product/10.2.0/db_1 –p /u01/app/oracle/product/10.2.0/db_1/dbs/init+ASM1.ora
$ srvctl add asm -n nccpxdb4 -i +ASM2 -o /u01/app/oracle/product/10.2.0/db_1 –p /u01/app/oracle/product/10.2.0/db_1/dbs/init+ASM2.ora
$ srvctl modify instance -d icpdbdg -i icpdbdg1 -s +ASM1
$ srvctl modify instance -d icpdbdg -i icpdbdg2 -s +ASM2
$ srvctl enable asm -n nccpxdb3 -i +ASM1
$ srvctl enable asm -n nccpxdb4 -i +ASM2
$ srvctl start asm -n nccpxdb3
$ srvctl start asm -n nccpxdb4
配置主节点的parameters
在主节点的asm上添加:
ALTER DISKGROUP DATAG1 ADD DIRECTORY '+DATAG1/icpdbdg';
修改主节点参数文件:
*.log_archive_config='dg_config=(icpdbdg,icpdb)'
*.log_archive_dest_2='service=icpdbdg valid_for=(online_logfiles,primary_role) db_unique_name=icpdbdg'
*.db_file_name_convert='+DATAG1/icpdbdg/','+DATAG1/icpdb/','+DATAG1/icpdbdg','+DATAG1/icpdb'
*.log_file_name_convert='+DATAG1/icpdbdg/','+DATAG1/icpdb/','+DATAG1/icpdbdg','+DATAG1/icpdb'
*.standby_file_management=auto
*.fal_server='icpdbdg'
*.fal_client='icpdb'
*.service_names=icpdb
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
group 31 size 500M,
group 32 size 500M,
group 33 size 500M,
group 34 size 500M,
group 35 size 500M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
group 36 size 500M,
group 37 size 500M,
group 38 size 500M,
group 39 size 500M,
group 40 size 500M;
主机上切换一下日志:
ALTER SYSTEM ARCHIVE LOG CURRENT;
备机上看一下同步的情况
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
碰见的几个问题:
1.用rman恢复的时候提示controlefile里的名称和db_name不符
解决办法:修改db_name 和主库一致,最好用spfile修改,pfile修改完不生效!
2.tns的配置过程有不通的情况,这个就是监听和tns的问题,细心就能解决
3.ORA-01031: insufficient privileges
PING[ARC1]: Heartbeat failed to connect to standby 'icpdbdg1'
密码文件的问题,官方文档里的名称错了,需要加上1和2
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/598601/viewspace-623680/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/598601/viewspace-623680/