栢图教育Oracle高级课程实验手册DataGuard环境构建如果在DataGuard环境下引入RAC,主库和备库都可以是RAC,所以此时可以有四种组合:组合PrimaryStandby比例关系说明1单节点单节点LGWR:RFS:MRP=1:1:1ARC:RFS:MRP=1:1:12单节点RACLGWR:RFS=1:1ARCn:RFS=1:1RFS:MRP=1:1StandbyRAC中所有的实例的地位是对等的,主库的日志可以发送到RAC中的任何一个实例,但是只能由一个实例运行MRP3RAC单节点LGWR:RFS=n:1ARCn:RFS=n:1(n=1)PrimaryRAC的每个实例都会产生日志,这些日志由每个实例自己的LGWR或者ARCn进程发送给StandbyDatabase。StandbyDatabase的RFS进程要同时接受所有的RAC是立法来的日志。4RACRACLGWR:RFS=n:nARCn:RFS=n:nRFS:MRP=n:1主库RAC的每个实例都会产生日志,这些日志可以发送给备库RAC中的一个实例,主库RAC和备库RAC的实例配对组合。但是只能有一个实例执行MRP。1案例拓扑图本案例演示第三种组合方式,环境拓扑图如下图所示:class1class2ASMPrimaryDatabase(RAC)Standbydatabase(single)2环境介绍主库是一个两节点的RAC,存储采用ASM方式,具体如下表所示。RACPrimaryClass1Class2PublicIP192.168.1.118192.168.1.119PrivateIP10.0.0.5410.0.0.55VIP192.168.1.130192.168.1.131栢图教育Oracle高级课程实验手册InstanceORCL1ORCL2DB_NAMEORCLData、ControlFile、RedoFileASM备库的数据文件放在本地,而不是用ASM方式单节点实例的standby说明IP192.168.1.117Oracle安装的非RAC版本InstanceORCLData、ControlFile、RedoFile/backup/ORCL_DATA3配置要点这个例子中包括了switchover过程,所以这里也按照switchover前后进行介绍。除此之外要求数据库版本要一致。本案例要求全部为10.2.0.4.3.1switchover之前RAC的每个实例都要配置日志发送,目的地都指向standby;确认日志发送方法,本例使用LGWRstandby配置日志接收方法,本例使用SRL。启动MRP3.2switchover之后如果standby是RAC,则日志接收和日志恢复可以不是同一个实例,因此oracle在术语上把这两种实例分别叫做ReceiveInstance和RecoverInstance。本例中为了简化统一为一个Instance。单节点实例日志只发送到RAC的一个实例确认RAC的日志接收方法,本例使用SRL在RAC的一个实例上启动MRP4配置步骤4.1创建一个备库节点创建一个主机名为class3的节点,IP地址192.168.1.117,安装数据库软件但是不创建数据库实例。然后将数据库软件升级到10.2.0.4。不创建实例。4.2将RAC数据库归档日志切换到ASMSQLconn/assysdbaConnected.SQLaltersystemsetlog_archive_dest_2=''scope=bothsid='*';Systemaltered.SQLaltersystemsetlog_archive_dest_1='location=+RECOVERY'scope=bothsid='*';Systemaltered.SQLaltersystemswitchlogfile;Systemaltered.查询视图确认:select*fromv$archived_log改完后,实例1和实例2的归档日志的生成位置全部集中在一个共享位置。栢图教育Oracle高级课程实验手册用交叉检查方式将本地的归档清除。4.3配置两个数据库的tnsname文件和listener文件RAC和standby上的tnsname.ora相同。RAC上的和单节点数据库实例上的tnsnames文件配置class1和class2的tnsnames文件中添加下面的内容,可以通过netca同时两个节点添加。栢图教育Oracle高级课程实验手册栢图教育Oracle高级课程实验手册栢图教育Oracle高级课程实验手册栢图教育Oracle高级课程实验手册栢图教育Oracle高级课程实验手册ORCL117=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.117)(PORT=1521)))(CONNECT_DATA=栢图教育Oracle高级课程实验手册(SERVER=DEDICATED)(SID=ORCL)))class3上用netca来配置ORCL1\ORCL2\ORCL117,过程略。standby主机上的listener文件,通过netca创建LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=class3)(PORT=1521))(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))))primary主机上的listener文件不动:class1节点监听文件中:LISTENER_CLASS1=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=class1-vip)(PORT=1521)(IP=FIRST))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.118)(PORT=1521)(IP=FIRST))))class2节点监听文件中:LISTENER_CLASS1=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=class2-vip)(PORT=1521)(IP=FIRST))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.119)(PORT=1521)(IP=FIRST))))4.4准备参数文件原始的RAC参数文件如下,如果有值的冲突,需要做适当的调整*.audit_file_dest='/oracle/admin/ORCL/adump'*.background_dump_dest='/oracle/admin/ORCL/bdump'*.cluster_database=TRUE*.cluster_database_instances=2*.compatible='10.2.0.1.0'*.control_files='+DATA/orcl/controlfile/current.260.837386431','+RECOVERY/orcl/controlfile/current.256.837386431'*.core_dump_dest='/oracle/admin/ORCL/cdump'*.db_block_size=8192*.db_create_file_dest='+DATA'栢图教育Oracle高级课程实验手册*.db_domain=''*.db_file_multiblock_read_count=16*.db_name='ORCL'*.db_recovery_file_dest='+RECOVERY'*.db_recovery_file_dest_size=2147483648*.dispatchers='(PROTOCOL=TCP)(SERVICE=ORCLXDB)'ORCL1.instance_number=1ORCL2.instance_number=2*.job_queue_processes=10*.log_archive_dest_1='location=+RECOVERY/orcl/arch/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)'*.log_archive_local_first=TRUE*.open_cursors=300*.pga_aggregate_target=402653184*.processes=150*.remote_listener='LISTENERS_ORCL'*.remote_login_passwordfile='exclusive'*.sga_target=1210056704ORCL2.thread=2ORCL1.thread=1*.undo_management='AUTO'ORCL1.undo_tablespace='UNDOTBS1'ORCL2.undo_tablespace='UNDOTBS2'*.user_dump_dest='/oracle/admin/ORCL/udump'参数冲突的调整方法:1、先将最新的pfile文件反解出来:createpfilefromspfile;2、在pfile文件中修改;3、反解回共享存储:cretaespfile='+DATA/orcl/spfileorcl.ora'frompfile;RAC的原有参数不变,添加以下参数*.LOG_ARCHIVE_DEST_2='SERVICE=ORCL117lgwrasyncVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)'*.db_file_name_convert='/oracle/oradata/ORCL','+DATA/orcl/datafile','/oracle/oradata/ORCL','+DATA/orcl/tempfile'*.log_file_name_convert='/oracle/oradata/ORCL/redo','+DATA/orcl/onlinelog','/oracle/oradata/ORCL/redo','+RECOVERY/orcl/onlinelog'*.standby_file_management=AUTO;*.fal_server='ORCL117'ORCL1.fal_client='ORCL1'ORCL2.fal_client='ORCL2'*.standby_archive_dest='location=use_db_recovery_file_dest'在RAC参数文件基础上创建standby参数文件,集群特有的参数不需要可以删除,最后的整理结果如下:*.audit_file_dest='/oracle/admin/ORCL/adump'*.background_dump_dest='/oracle/admin/ORCL/bdump'栢图教育Oracle高级课程实验手册*.compatible='10.2.0.1.0'*.control_files='/oracle/oradata/ORCL/controlfile01.ctl','/oracle/oradata/ORCL/controlfile02.ctl'*.core_dump_dest='/oracle/admin/ORCL/cdump'*.db_block_size=8192*.db_domain=''*.db_file_multiblock_read_count=16*.db_name='ORCL'*.db_recovery_file_dest='/oracle/flash_recovery_area'*.db_recovery_file_dest_size=2147483648*.dispatchers='(PROTO