oracle 10g 流复制实验-源端捕获

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ORACLE10gSTREAM高级流复制技术一、实验环境操作系统:MicrosoftWindowsXP[版本5.1.2600]数据库:OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0二、实验步骤2.1主库配置:DB_NAME=SOURCEORACLE_SID=SOURCE2.2从库配置:DB_NAME=DESTORACLE_SID=DEST2.3主库监听配置:#LISTENER.ORANETWORKCONFIGURATIONFILE:D:\ORACLE\PRODUCT\10.2.0\DB_1\NETWORK\ADMIN\LISTENER.ORA#GENERATEDBYORACLECONFIGURATIONTOOLS.SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=OK3)(ORACLE_HOME=D:\ORACLE\PRODUCT\10.2.0\DB_1)(SID_NAME=SOURCE)))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(ADDRESS=(PROTOCOL=TCP)(HOST=PC-201006151039)(PORT=1521))))2.4从库监听配置:#LISTENER.ORANETWORKCONFIGURATIONFILE:D:\ORACLE\PRODUCT\10.2.0\DB_1\NETWORK\ADMIN\LISTENER.ORA#GENERATEDBYORACLECONFIGURATIONTOOLS.SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=OK4)(ORACLE_HOME=D:\ORACLE\PRODUCT\10.2.0\DB_1)(SID_NAME=DEST)))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(ADDRESS=(PROTOCOL=TCP)(HOST=PC-201006151039)(PORT=1521))))2.5主库网络连接串#TNSNAMES.ORANETWORKCONFIGURATIONFILE:D:\ORACLE\PRODUCT\10.2.0\DB_1\NETWORK\ADMIN\TNSNAMES.ORA#GENERATEDBYORACLECONFIGURATIONTOOLS.SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC-201006151039)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=OK3)))2.6从库网络连接串#TNSNAMES.ORANETWORKCONFIGURATIONFILE:D:\ORACLE\PRODUCT\10.2.0\DB_1\NETWORK\ADMIN\TNSNAMES.ORA#GENERATEDBYORACLECONFIGURATIONTOOLS.DEST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC-201006151039)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=OK4)))2.7启用追加日志可以基于DATABASE级别或TABLE级别,启用追加日志(SUPPLEMENTALLOG)。在建立根据SCHEMA粒度进行复制的ORACLESTREAM环境中,如果确认SCHEMA下所有TABLE都有合理的主键(PRIMARYKEY),则不再需要启用追加日志。#启用DATABASE追加日志ALTERDATABASEADDSUPPLEMENTALLOGDATA;#启用TABLE追加日志ALTERTABLEADDSUPPLEMENTLOGGROUPLOG_GROUP_NAME(TABLE_COLUMN_NAME)ALWAYS;2.8创建DBLINK根据ORACLE10GR2STREAM官方文档,针对主数据库建立的数据库链的名字必须和从数据库的GLOBAL_NAME相同。如果需要修改GLOBAL_NAME,执行ALTERDATABASERENAMEGLOBAL_NAMETOXXX;2.9创建主库数据库链路C:\SETORACLE_SID=SOURCE;C:\SQLPLUS/ASSYSDBASQLCREATEUSERSTRMADMINIDENTIFIEDBYSTRMADMIN;用户已创建。SQLGRANTDBA,CONNECT,RESOURCE,ALLPRIVILEGESTOSTRMADMIN;授权成功。SQLCONNSTRMADMIN/STRMADMIN已连接。#以STRMADMIN身份,登录主数据库。CONNECTSTRMADMIN/STRMADMIN#建立数据库链CREATEDATABASELINKBOOKCONNECTTOSTRMADMINIDENTIFIEDBYSTRMADMINUSING'BOOK';3.0创建从库数据库链C:\SETORACLE_SID=DEST;C:\SQLPLUS/ASSYSDBASQLCREATEUSERSTRMADMINIDENTIFIEDBYSTRMADMIN;用户已创建。SQLGRANTDBA,CONNECT,RESOURCE,ALLPRIVILEGESTOSTRMADMIN;授权成功。SQLCONNSTRMADMIN/STRMADMIN已连接。以STRMADMIN身份,登录从数据库。CONNECTSTRMADMIN/STRMADMIN建立数据库链CREATEDATABASELINKCISCOSYSCONNECTTOSTRMADMINIDENTIFIEDBYSTRMADMINUSING'CISCOSYS';3.1创建MASTER流队列#以STRMADMIN身份,登录主数据库。CONNECTSTRMADMIN/STRMADMIN;BEGINDBMS_STREAMS_ADM.SET_UP_QUEUE(QUEUE_TABLE='SOURCE_QUEUE_TABLE',QUEUE_NAME='SOURCE_QUEUE');END;3.2创建BACKUP流队列#以STRMADMIN身份,登录从数据库。CONNECTSTRMADMIN/STRMADMINBEGINDBMS_STREAMS_ADM.SET_UP_QUEUE(QUEUE_TABLE='DEST_QUEUE_TABLE',QUEUE_NAME='DEST_QUEUE');END;/3.3创建捕获进程以STRMADMIN身份,登录主数据库。提醒一下,本文档以HR用户做示例。CONNECTSTRMADMIN/STRMADMINBEGINDBMS_STREAMS_ADM.ADD_SCHEMA_RULES(SCHEMA_NAME='HR',STREAMS_TYPE='CAPTURE',STREAMS_NAME='CAPTURE_SOURCE',QUEUE_NAME='STRMADMIN.SOURCE_QUEUE',INCLUDE_DML=TRUE,INCLUDE_DDL=TRUE,INCLUDE_TAGGED_LCR=FALSE,SOURCE_DATABASE=NULL,INCLUSION_RULE=TRUE);END;/3.4实例化复制数据库在主数据库环境中,执行如下SHELL语句。如果从库的HR用户不存在,建立一个HR的空用户。EXPUSERID=HR/HR@SOURCEFILE='C:\HR.DMP'OBJECT_CONSISTENT=YROWS=YIMPUSERID=HR/HR@DESTFILE='C:\HR.DMP'IGNORE=YCOMMIT=YLOG='F:\HR.LOG'STREAMS_INSTANTIATION=YFROMUSER=HRTOUSER=HR3.5创建传播进程以STRMADMIN身份,登录主数据库。CONNECTSTRMADMIN/STRMADMIN/BEGINDBMS_STREAMS_ADM.ADD_SCHEMA_PROPAGATION_RULES(SCHEMA_NAME='HR',STREAMS_NAME='SOURCE_TO_DEST',SOURCE_QUEUE_NAME='STRMADMIN.SOURCE_QUEUE',DESTINATION_QUEUE_NAME='STRMADMIN.DEST_QUEUE@DEST',INCLUDE_DML=TRUE,INCLUDE_DDL=TRUE,INCLUDE_TAGGED_LCR=FALSE,SOURCE_DATABASE='SOURCE',INCLUSION_RULE=TRUE);END;/#修改PROPAGATION休眠时间为0,表示实时传播LCR。BEGINDBMS_AQADM.ALTER_PROPAGATION_SCHEDULE(QUEUE_NAME='SOURCE_QUEUE',DESTINATION='DEST',LATENCY=0);END;/3.6创建应用进程#以STRMADMIN身份,登录从数据库。CONNECTSTRMADMIN/STRMADMIN/BEGINDBMS_STREAMS_ADM.ADD_SCHEMA_RULES(SCHEMA_NAME='HR',STREAMS_TYPE='APPLY',STREAMS_NAME='APPLY_DEST',QUEUE_NAME='STRMADMIN.DEST_QUEUE',INCLUDE_DML=TRUE,INCLUDE_DDL=TRUE,INCLUDE_TAGGED_LCR=FALSE,SOURCE_DATABASE='SOURCE',INCLUSION_RULE=TRUE);END;/3.7启动STREAM#以STRMADMIN身份,登录从数据库。CONNECTSTRMADMIN/STRMADMIN#启动APPLY进程BEGINDBMS_APPLY_ADM.START_APPLY(APPLY_NAME='APPLY_DEST');END;/#以STRMADMIN身份,登录主数据库。CONNECTSTRMADMIN/STRMADMIN#启动CAPTURE进程BEGINDBMS_CAPTURE_ADM.START_CAPTURE(CAPTURE_NAME='CAPTURE_SOURCE');END;/3.8停止STREAM以STRMADMIN身份,登录主数据库。CONNECTSTRMADMIN/STRMADMIN停止CAPTURE进程BEGINDBMS_CAPTURE_ADM.STOP_CAPTURE(CAPTURE_NAME='CAPTURE_SOURCE');END;/以STRMADMIN身份,登录从数据库。CONNECTSTRMADMIN/STRMADMIN#停止APPLY进程BEGINDBMS_APPLY_ADM.STOP_APPLY(APPLY_NAME='APPLY_DEST');END;4.0测试场景本文档建立了针对HR用户的STREAM复制环境,如果没有特别声明,以下测试场景均以HR用户身份执行。4.1建一张表测试主数据库SQLCREATETABLET1(idNUMBERPRIMARYKEY,nameVARCHAR2(50));Tablecreated.从数据库SQLDESTT1NAMENULLTYPE-----------------------------

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功