SharePlex实施文档以及常见故障

上传人:沈*** 文档编号:202394955 上传时间:2023-04-22 格式:DOC 页数:46 大小:775.50KB
收藏 版权申诉 举报 下载
SharePlex实施文档以及常见故障_第1页
第1页 / 共46页
SharePlex实施文档以及常见故障_第2页
第2页 / 共46页
SharePlex实施文档以及常见故障_第3页
第3页 / 共46页
资源描述:

《SharePlex实施文档以及常见故障》由会员分享,可在线阅读,更多相关《SharePlex实施文档以及常见故障(46页珍藏版)》请在装配图网上搜索。

1、1SharePlex安装配置部分41.1解压安装41.2 ora_setup配置41.3 sp_cop -u2300&启动41.4 sp_ctrl控制台51.5 config配置文件51.6 analyze config 52SharePlex常用操作62.1 copy命令62.2 compare与repair72.3 param设置参数72.4 清除当前复制82.5 SharePlex实用参数命令82.6 忽略大事务的操作92.7 修改SharePlex的数据库用户密码92.8 新增复制表122.9 删除复制表132.10重命名表142.11新增LOB列或者重命名列142.12 Alter

2、table move a new tablespace152.13一个软件启动多个SP实例163SharePlex AA复制实施193.1 前言193.2 环境准备193.3 数据初始化193.4 reconcile队列数据203.5开启目标端post203.6目标端FK,job,trigger处理214SharePlex其他复制说明214.1 DDL复制214.2 异构复制map columns224.3 级联复制234.3.1中间系统为数据库,有post情况下级联复制234.3.2中间系统为pass-through244.4 SharePlex高可用复制244.5 配置Change-His

3、tory复制244.5.1Change-History244.5.2其他的change-history配置选项264.6 Oracle到Kafka复制274.6.1概述274.6.2发送到Kafka说明274.6.3源端SharePlex配置284.6.4开启supplemental logging284.6.5设置SP_OCT_USE_SUPP_KEYS参数284.6.6配置复制284.6.7目标端SharePlex配置294.6.8查看并且修改Kafka设置294.6.9设置恢复选项315日常监控325.1 启动/关闭SharePlex325.2 登录控制台325.3 主要监控项目325.

4、4 查看日志346一些性能诊断方案356.1 针对capture too slow357SharePlex一些问题的解决方案357.1 View events and error357.2 忽略一些确定的可以忽略的错误367.3 insert null复制到Kafka不显示377.3.1问题描述377.3.2解决方案381SharePlex安装配置部分l 端口:2100 :SharePlex默认端口。2501:start launcher需要开启端口,可以使用copy快速复制表。l 安装前数据库操作打开数据库最小附加日志:首先查看v$transaction视图有没有大事务,尽量避免有大事务的时

5、候执行,如果系统资源非常紧会导致宕机,RAC情况下各个节点都需要执行。alter database add supplemental log data (primary key,unique index) columns;查询最小附加日志情况:select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI,SUPPLEMENTAL_LOG_DATA_FK,SUPPLEMENTAL_LOG_DATA_ALL from v$database;l 源库需要打开归档。1.1解压安装使用oracle用户

6、解压,安装。$ ./SharePlex-8.6.6-b64-oracle110-rh-40-amd64-m64.tpm1.2 ora_setup配置-配置shareplex,配置时如果需要自定义复制的源与目标端的ORACLE_SID,则需要配置tnsnames.ora别名,且/etc/oratab中必须有对应于自定义的tnsnames别名的ORACLE_SID。1.3 sp_cop -u2300&启动splexlocalhost export SP_SYS_HOST_NAME=cluster1vip 可以使用该参数指定shareplex启动到指定的IP上,可以使用netstat -an | g

7、rep -启动 -u可以启动shareplex实例到指定端口,可以复制多个库。1.4 sp_ctrl控制台SharePlex日常操作都在sp_ctrl控制台中进行,启动命令为:/bin/sp_ctrl,一般启动之后首先进入控制台执行sp_ctrl stop post,停止。1.5 config配置文件 Config配置文件为复制链路需要复制对象以及链路映射文件。sp_ctrl list configsp_ctrl verify configsp_ctrl activate config sp_ctrl activate config threads -n nolock -加nolock不锁表,

8、如果在一定时间获取锁失败,则继续往下进行activate尽量执行两次,确保成功,可以同时tail -f 查看执行情况。config配置样例以及配置规则:datasource:o.wahaha#source tables target tables routing map#splex.demo_src splex.demo_dest target_systemo.target_sid -target_sid为目标端的sid或别名。 splex.demo_src -源库的用户名.表名,可以使用%通配符,全匹配半匹配等。priv%not(table_name)排除表。 splex.demo_dest

9、 -目标库的用户名.表名 target_systemo.target_sid -目标库的IP或hosts文件中映射名为目标端的sid或别名。 hr.test hr.test 192.168.204.151:scott_tabo.honor1 -IP或主机名后加冒号,可以为该表复制单独起一个队列。 mary.cust2!key(c1,c2) mary.cust2 prodao.sid -自定义pk1.6 analyze config -可以分析config,生成报表,分析数据库表操作频繁记录等。2SharePlex常用操作2.1 copy命令命令说明:会将目标先truncate掉,然后再利用ex

10、pdp加constraint=y参数导出再导入,如果你不想truncate目标端的原有同步数据则你需要使用另一个命令appendcopy命令可实现单表或表分区的同步,不适合大批量表的同步。使用要求:l 目标端启动launcher: sp_ctrl start launcher 默认端口是2501l 同步的表出现在已激活的配置文件中。l 目标端的复制表所属用户需先建立,copy可以创建表结构,但要求表空间不变,所以建议先建好表结构再复制。语法如下:sp_ctrl copy owner.tablename at target_host如果相同的对象复制到不同的主机,需加at target_host

11、选项,源端和目标端的用户名或者表名不一致的话还需加入目标端的owner.tablename 。检查源端的copy状态: sp_ctrl copy status allcopy status 查看job细节cancel 可以取消job,一般针对长时间wait for的job当日志积累多了不方便查看时,可清除日志:源端清除日志:sp_ctrl clear history all目标端清除:cd vardir/log ; rm sync_clt*log2.2 compare与repair如果发现或怀疑源端和目标端的表数据不一致,可以通过compare命令查看和修复。但由于compare需要把比较的数

12、据排序,然后逐条比较,大量数据的比较可能会导致资源的过量使用,所以不建议对大量数据的比较。sp_ctrl compare table owner.table to owner.table target target_hosto.targetsid repair比较表分区:sp_ctrl compare table owner.tablep1 to owner.tablep1 target target_hosto.targetsid repair直接修复在后面加上repair,不加repair参数则将可用于修复的SQL语句生成在日志文件中。查看比较进度:sp_ctrl show compare

13、 detail取消比较:sp_ctrl compare cancel id 清除比较日志:sp_ctrl remove log compare id 或者 remove log compare all可以指定compare使用其他端口,不指定则随机选端口:compare table owner.tablep1 to owner.tablep1 target target_hosto.targetsid repair port 25002.3 param设置参数sp_ctrl list param all -列出所有参数。sp_ctrl set param -设置参数sp_ctrl list p

14、aram modified -查看被修改的参数shareplex安装目录说明:/bin 包含可执行程序的符号连接/.app_modules 包含可执行程序/data 默认参数文件,包含默认的参数设置/doc 空目录/install SharePlex安装、license管理等相关的脚本/lib SharePlex 应用到的库文件/util SharePlex 工具 ,SQL脚本,监控脚本等 2.4 清除当前复制sp_ctrlshutdown$ env | grep SP_SYS_VARDIR -一定要在清除之前确认清理的实例正确。执行下条语句之前一定确认上述参数正确,防止清理掉正在使用的实例。

15、$ ora_cleanup splex/splex2.5 SharePlex实用参数命令export SP_SYS_VARDIR=/splex/vardir -类似ORACLE_SID,指定splex使用指定的队列配置文件等等。export SP_SYS_HOST_NAME 在启动sp_cop之前设置,指定SharePlex启动在指定的IP上,在RAC安装时需要注意此选项。sp_ctrlset param SP_OPO_DISABLE_OBJECT_NUM -在目标端设置。抛弃指定表。sp_ctrlr 20 2 -执行上条命令20次,两秒一次。sp_ctrlhelp target sp_ctr

16、ltarget o.orcl set metadata time:sp_time.op:sp_op -可以在目标端增加列,写入时间戳与DML语句行为。sp_ctrlhelp target set metadata time2.6 忽略大事务的操作过大的事务复制可能会遇到问题,所以建议所有大于1000万数据DML操作事务,分成多批次commit,并建议不要对相同表做并行的大事物操作。在有的场景下可能不希望源端的某些修改复制到目标端,比如源端清除历史数据而目标端需要保留等。具体步骤如下:源端,在数据库中以shareplex用户执行util目录下的create_ignore.sql,该脚本创建了SH

17、AREPLEX_IGNORE_TRANS procedure;只需执行一次。在执行大的事务前先执行这个procedure,即可忽略对该事务(从这个存储过程至下一个commit之间的所有DML操作)的复制,如:SQL conn test/testSQL exec splex.shareplex_ignore_trans;SQL insert into tb1 values (100, aaa);SQL commit;2.7 修改SharePlex的数据库用户密码SharePlex数据库用户的密码还存在于SharePlex参数文件中,不能简单的在数据库中更改,需要执行SharePlex提供的脚本进

18、行,具体步骤如下。对每个环境都单独列出了详细步骤。a. 源端stop capture进程,观察SharePlex队列中数据都已应用到目标端;b. shutdown源端和目标端的SharePlex;c. 执行prod/bin目录下的ora_chpwd命令来自动改变存储在数据库中和paramdb文件中的密码。l 生产环境:dcdb02:/oracle$ ora_chpwdThis program allows you to change the password of theSharePlex user account needed to run Oracle replication.In res

19、ponse to prompts, a carriage return will choose thedefault given in brackets. If there is no default, a reply must be entered.Please enter the SID where SharePlex is installed dl2 : empty response-try again : splex注意:在此处不要使用本地的实例名,要输入TNS别名,然后回车;In order to change the password for the SharePlex user

20、account,we must connect to the database as SYSTEM.Enter password for the SYSTEM account, which will not echo MANAGER : empty response-try again : 注意:此处输入oracle数据库system的口令,但应当在口令的后面加上TNS_ALIAS, 然后回车;connecting-This may take a few seconds.Enter the current username for SharePlex user : empty response

21、-try again : splexEnter new password for SharePlex user : empty response-try again : Re-enter password for SharePlex user : empty response-try again : 注意:此处输入SharePlex用户的口令,但应当在口令的后面加上TNS_ALIAS, 然后回车。Changing SharePlex parameter database . . .SharePlex password change completed successfully.l 管理环境:d

22、cadm:/oracle$ ora_chpwdThis program allows you to change the password of theSharePlex user account needed to run Oracle replication.In response to prompts, a carriage return will choose thedefault given in brackets. If there is no default, a reply must be entered.Please enter the SID where SharePlex

23、 is installed adm : adm empty response-try again : In order to change the password for the SharePlex user account,we must connect to the database as SYSTEM.Enter password for the SYSTEM account, which will not echo MANAGER : empty response-try again : 注意:此处输入oracle数据库system的口令,不需要后面加上TNS_ALIAS, 然后回车

24、;connecting-This may take a few seconds.Enter the current username for SharePlex user : empty response-try again : splexEnter new password for SharePlex user : empty response-try again : Re-enter password for SharePlex user : empty response-try again : 注意:此处输入SharePlex用户的口令,不需要在口令的后面加上TNS_ALIAS, 然后回

25、车。Changing SharePlex parameter database . . .SharePlex password change completed successfully.d. 启动源端和目标端的SharePlex; e. 源端start capture进程,观察SharePlex是否复制正常。2.8 新增复制表u 如果需要对新建的表进行复制,则需要遵循以下步骤:(尽量在业务少的时候进行)(1)在目标系统数据库建立相同的表,然后在源系统的SharePlex控制台sp_ctrl下运行copy config命令将当前配置文件复制并生成一个新的配置文件。例如,当前处在激活状态的配置文

26、件名为filename,则建立一个文件名为newname的配置文件;sp_ctrl(sysA) copy config filename to newname(2)通过源系统的SharePlex控制台sp_ctrl运行edit config 命令编辑新建的配置文件newnamesp_ctrl(sysA) edit config newname(3)在文件里为新建的表增加一行信息,这行信息包括该表在源系统中的表名、该表在目标服务其中的表名和路由信息。例如,在源和目标服务器的APP模式下新建了名为a的表,则应该在文件里增加如下的信息:APP.a APP.a sysBo.TargetSID (4)保

27、存并退出配置文件;(5)停止用户对新建表的任何操作,包括select, update,insert和delete等操作;(6)在源系统的SharePlex控制台sp_ctrl下运行activate config命令激活修改后的新的配置文件,在激活的过程中原先处于激活状态的旧的配置文件会自动解除激活状态;sp_ctrl(sysA) activate config newname live(7)此时,维护工作完成,用户可以对新建的表进行访问和操作。u 如果需要对已有数据的表新增到链路中,则需要遵循如下步骤:(1)首先在目标端停止postsp_ctrl (192.168.204.110:2400)

28、stop postsp_ctrl (192.168.204.110:2400) show 确认post已经停止(2)在源端修改config,新增复制表sp_ctrl (11rac1:2400) copy config hr_scott to hr_scott_01 复制一份正在使用的configsp_ctrl (11rac1:2400) edit config hr_scott_01 编辑复制的config,新增复制表datasource:o.source#source tables target tables routing maphr.jobs scott.jobs 192.168.204

29、.110:jobs01o.tarsphr.regions scott.regions 192.168.204.110:regions01o.tarsp 需要在host之后自定义队列名称sp_ctrl (11rac1:2400) verify config hr_scott_01 验证configsp_ctrl (11rac1:2400) activate config hr_scott_01 激活config注:在激活配置文件之后,目标端除新增表之外的其他复制队列已经可以激活。(3)查看v$transaction中start_timeSQL select start_time from v$t

30、ransaction;查看数据库事务开始时间,确认是否所有事务都在activate config时间之后,以保证所有事务都已捕获。(4)expdp导出源端需要新增的表数据oracle11rac1 expdp$ expdp system/111111 directory=expdp dumpfile=regions.dmp tables=hr.regions flashback_scn=5597451(5)impdp在目标端导入新增的表数据,并禁用表上的约束以及触发器oracle11rac1 expdp$ impdp system/111111 directory=expdp dumpfile=

31、regions.dmp remap_schema=hr:scott 如果用户相同,则不需要使用remap_schema参数(6)reconcile队列数据到之前选取的scnsp_ctrl (192.168.204.110:2400) qstatusQueues Statistics for 192.168.204.110 Name: regions01 (o.source-o.tarsp) (Post queue) Number of messages: 9 (Age 7404 min; Size 1 mb) Backlog (messages): 9 (Age 7404 min) Name:

32、 jobs01 (o.source-o.tarsp) (Post queue) Number of messages: 0 (Age 0 min; Size 1 mb) Backlog (messages): 0 (Age 0 min)sp_ctrl (192.168.204.110:2400) reconcile queue regions01 for o.source-o.tarsp scn 5597452 一般expdp导出的需要在reconcile时加1,使用RMAN基于scn恢复的则不需要加1(7)启动新增加的表对应的post队列sp_ctrl (192.168.204.110:24

33、00) start post queue regions01(8)查看数据同步情况以及链路情况。2.9 删除复制表如果将要被删除的表在当前处在激活状态的SharePlex配置文件中,则需要遵循以下步骤:(尽量在业务少的时候进行)(1)通过源系统的SharePlex控制台sp_ctrl运行copy config命令将当前配置文件复制并生成一个新的配置文件。例如,当前处在激活状态的配置文件名为filename,则建立一个文件名为newname的配置文件;sp_ctrl(sysA) copy config filename to newname(2)通过源系统的SharePlex控制台sp_ctrl

34、下运行edit config 命令编辑配置新建的配置文件sp_ctrl(sysA) edit config newname(3)在文件中将该含有该表的信息行删除。 (4)保存并退出配置文件;(5)通过源系统的SharePlex控制台sp_ctrl运行activate config命令激活修改后的新的配置文件,在激活的过程中原先处于激活状态的旧的配置文件会自动解除激活状态;sp_ctrl(sysA) activate config newname live(6)维护工作完成。2.10重命名表如果被重命名的表在当前处在激活状态的SharePlex配置文件中,则需要遵循以下步骤:(尽量在业务少的时候

35、进行)(1)停止用户对该表的任何操作,包括select, update,insert和delete等操作;(2)在源系统和目标系统数据库中上重命名该表;(3)通过源系统的SharePlex控制台sp_ctrl运行copy config命令将当前配置文件复制并生成一个新的配置文件。例如,当前处在激活状态的配置文件名为filename,则建立一个文件名为newname的配置文件;sp_ctrl(sysA) copy config filename to newname(4)通过源系统的SharePlex控制台sp_ctrl运行edit config 命令编辑配置新建的配置文件sp_ctrl(sys

36、A) edit config newname(5)在文件里修改被重命名表所在的行信息,将该表在源系统中的表名、该表在目标服务其中的表名该为重命名后的表名。例如,在源和目标服务器的APP模式下的表a被重命名为表b,则该表所在的行信息应该改为:APP.b APP.b sysBo.TargetSID (6)保存并退出配置文件;(7)通过源系统的SharePlex控制台sp_ctrl运行activate config命令激活修改后的新的配置文件newname,在激活的过程中原先处于激活状态的旧的配置文件会自动解除激活状态;sp_ctrl(sysA) activate config newname li

37、ve(8)维护工作完成,用户可以对重命名之后的表进行访问和操作。2.11新增LOB列或者重命名列对于alter table add a LOB column操作,如果被执行该操作的表在当前处在激活状态的SharePlex配置文件中,则必须遵循以下步骤保证复制环境两套数据库系统的一致性。(尽量在业务少的时候进行)(1)停止用户对该表的任何操作,包括select, update,insert和delete等操作;(2)通过源系统的SharePlex控制台sp_ctrl下运行copy config命令将当前配置文件复制并生成一个新的配置文件。例如,当前处在激活状态的配置文件名为filename,则建

38、立一个文件名为newname的配置文件;sp_ctrl(sysA) copy config filename to newname(3)通过源系统的SharePlex控制台sp_ctrl下运行edit config 命令编辑配置新建的配置文件;sp_ctrl(sysA) edit config newname(4)在文件中将要增加LOB字段(或重命名字段)的表的信息行删除。 (5)保存并退出配置文件;(6)通过源系统的SharePlex控制台sp_ctrl运行activate config命令激活修改后的新的配置文件,在激活的过程中原先处于激活状态的旧的配置文件会自动解除激活状态;sp_ctr

39、l(sysA) activate config newname live(7)在源系统和目标系统数据库中对该表增加LOB字段(或重命名字段);(8)通过源系统的SharePlex控制台sp_ctrl运行activate config命令激活原先的配置文件filename,在激活的过程中刚刚处于激活状态的配置文件newname会自动解除激活状态;sp_ctrl(sysA) activate config filename live(9)维护工作完成,用户可以对该表进行访问和操作。2.12 Alter table move a new tablespace对于alter table move ta

40、blespace操作,如果被执行该操作的表在当前处在激活状态的SharePlex配置文件中,则必须遵循以下步骤保证复制环境两套数据库系统的一致性。(尽量在业务少的时候进行)(1)停止用户对该表的任何操作,包括select, update,insert和delete等操作;(2)通过源系统的SharePlex控制台sp_ctrl下运行copy config命令将当前配置文件复制并生成一个新的配置文件。例如,当前处在激活状态的配置文件名为filename,则建立一个文件名为newname的配置文件;sp_ctrl(sysA) copy config filename to newname(3)通过

41、源系统的SharePlex控制台sp_ctrl下运行edit config 命令编辑配置新建的配置文件;sp_ctrl(sysA) edit config newname(4)在文件中将要转移表空间的表的信息行删除。 (5)保存并退出配置文件;(6)通过源系统的SharePlex控制台sp_ctrl运行activate config命令激活修改后的新的配置文件,在激活的过程中原先处于激活状态的旧的配置文件会自动解除激活状态;sp_ctrl(sysA) activate config newname live(7)在源系统和目标系统数据库中对移动该表到新的表空间;(8)通过源系统的SharePl

42、ex控制台sp_ctrl运行activate config命令激活原先的配置文件filename,在激活的过程中刚刚处于激活状态的配置文件newname会自动解除激活状态;sp_ctrl(sysA) activate config filename live(9)维护工作完成,用户可以对该表进行访问和操作。2.13一个软件启动多个SP实例(1)分配端口号需要给每一个sp_cop分配一个唯一的端口号(2)创建variable-data目录为每一个sp_cop实例创建一个variable-data目录。l 按照SharePlex Instanllation Guide安装SharePlex,在安装

43、最后,你需要一个product目录以及一个variable-data目录关联一个端口以及一个数据库账户,这是你的基础实例。l 关闭正在运行的sp_cop实例。l 为每一个实例复制一个vardir目录。cp -p -r /splex/vardir/splex2100 /splex/vardir/splex2101cp -p -r /splex/vardir/splex2100 /splex/vardir/splex2102(3)定义端口号在SharePlex环境中a.定义环境variable-data环境变量ksh shell:export SP_SYS_VARDIR=/full_path_of

44、_variable-data_directorycsh shell:setenv SP_SYS_VARDIR /full_path_of_variable-data_directory b.定义环境变量SP_COP_TPORT and SP_COP_UPORT ksh shell:export SP_COP_TPORT=portexport SP_COP_UPORT=portcsh shell:setenv SP_COP_TPORT portsetenv SP_COP_UPORT port c.启动sp_cop实例使用-u选项$ /productdir/bin/sp_cop -uport& d

45、.使用如下参数为环境变量中variable-data设置端口sp_ctrl set param SP_COP_TPORT portsp_ctrl set param SP_COP_UPORT port e.关闭实例Shut down sp_cop. f.在variable-data目录中的rim子目录中,删除shstinfo.ipc以及shmaddr.loc文件(如果之前安装的SharePlex从未启动过sp_cop这两个文件可能不存在)h.重复上述步骤为每一个实例如果是为同一个数据库启动不同实例,则下面步骤可以省略。(4)如果针对不同数据库,则需要在完成上述步骤之后,为每一个数据库运行ora

46、_setupa.定义环境variable-data环境变量ksh shell:export SP_SYS_VARDIR=/full_path_of_variable-data_directorycsh shell:setenv SP_SYS_VARDIR /full_path_of_variable-data_directory b.定义环境变量SP_COP_TPORT and SP_COP_UPORT ksh shell:export SP_COP_TPORT=portexport SP_COP_UPORT=portcsh shell:setenv SP_COP_TPORT portsete

47、nv SP_COP_UPORT port c./ora_setup,根据交互界面提示,为每个sp_cop实例配置不同数据库设置。3SharePlex AA复制实施3.1 前言l AA复制即源端为oracle,目标端也为oracle。l 实施之前一定要备份源库,并保证备份的可用性,并制定完备的回退方案。l SharePlex可以用作容灾,报表分离,数据分发,数据迁移。l 使用SharePlex进行数据迁移一般具有数据量大,源端与目标段为异构平台,停机时间短等特点,迁移完成之后,可以再次配置目标段到源端的复制,防止试运行阶段出现问题以便回切。l 使用SharePlex进行异构容灾实施步骤大致与异构

48、迁移相同,主要区别在于最后数据迁移完成之后目标段FK,job,trigger的处理。3.2 环境准备l 源库空间准备,中间库准备,目标端相关软件安装,RAC安装时需要安装在共享磁盘上,并且将SharePlex启动在可浮动的一个service IP上。l 在源库与目标库安装同版本的ShanrePlex,可以不同平台,但一定要保证版本一致。l 在源端编写config文件,并在源端与目标端都停止Post进程,然后verify并analyze config,然后再根据分析结果,修改优化config文件。3.3 数据初始化l a.有中间库时,可以使用DG搭建与源库同平台的中间库环境,并配置好DG,然后在

49、源端激活上一步配置好的config文件,开始capture捕获,在v$transaction视图中事务开始时间都晚于捕获时间之后,查询select to_char(current_scn) from v$database;选取一个SCN,然后在确保SCN之前所有的数据都同步到中间库之后,可以将DG断开。(1) 如果是10g之前的版本,如果数据量较大,则可以使用RMAN在中间库不完全恢复到选取的SCN,然后使用exp人为分割大表启动多个exp进程,启用并发加快导出数据速度。(2) 10g以后的版本使用expdp配合FLASHBACK_SCN=将数据导出。l b.没有中间库时,在源端先开启捕获,保

50、证v$transaction视图中所有事务开始时间都在捕获时间之后,然后选取scn,使用exp/expdp进行基于该scn导出,在目标端导入。注:目标数据库FK、job、trigger的处理,正常的job与schedule job必须都禁用掉,使用如下语句生成批量禁用语句,然后执行。SQL select alter table |owner|.|table_name| disable constraint |constraint_name|; from dba_constraints where constraint_type in (R) and owner in(HR) order by

51、status,owner;SQL select alter trigger |owner|.|trigger_name| disable; from dba_triggers where owner in(HR) order by status,owner;禁用目标端job:SQLalter system set job_processes=0 scope=both sid=*;3.4 reconcile队列数据l 在目标端,使用sp_ctrl控制台,reconcile目标端post队列中激活源端config开启capture到选取的SCN之间的数据,以保证开启post之后,SharePlex

52、可以将之后数据对接,保证数据一致性。l sp_ctrl (cluster1vip:2100)qstatusl sp_ctrl (cluster1vip:2100)help reconcilel sp_ctrl (cluster1vip:2100) reconcile queue datamove for o.wahaha-o.honor1 scn 698767l sp_ctrl (cluster1vip:2100)qstatus注:数据泵导入导出的时候,reconcile时scn一般需要加1,rman until scn方式恢复的不需要加1.3.5开启目标端postl sp_ctrl (clu

53、ster1vip:2100)start postl sp_ctrl (cluster1vip:2100)qstatusl sp_ctrl (cluster1vip:2100)show syncl 使用sqlplus查看数据同步情况,同步完成之后,查看源端与目标端数据是否一致。3.6目标端FK,job,trigger处理l 如果使用SharePlex做容灾镜像复制,目标端FK,job,trigger则禁止,直到需要切换到灾备库时启用。l 如果使用SharePlex做数据迁移,则需要在迁移完成之后启用FK,job,trigger。4SharePlex其他复制说明4.1 DDL复制u 在级联复制中,

54、DDL复制只从源端到中间端,不包含中间段到目标段。u 默认SharePlex开启Truncate TABLE与ALTER TABLE to ADD COLUMNS or DROP COLUMNS的DDL复制。注:默认DDL配置受参数SP_OCT_REPLICATE_DDL参数影响,1为ALTER TABLE,2为TRUNCATE TABLE,3为ALTER TABLE与TRUNCATE TABLE,默认为3u 默认SharePlex的AUTO_ADD特性会自动捕获在激活配置文件(前提是新建的对象在配置文件中使用通配符等方式匹配)之后创建的表与索引,并自动复制到目标端,将对象加入复制列表,维护对

55、象以后的DDL与DML。注:默认AUTO_ADD受SP_OCT_AUTOADD_ENABLE参数影响,默认为1,即ENABLEu 如果需要开启TRIGGER,SYNONYM,GRANT的复制,需要设置以下参数为1DDL commandSet this parameter to 1CREATE / DROP TRIGGERSP_OCT_REPLICATE_TRIGGERCREATE / DROP SYNONYMSP_OCT_REPLICATE_SYNONYMGRANTSP_OCT_REPLICATE_GRANTu 如果需要开启SEQUENCE,MATERIALIZED VIEW复制,需要设置一下

56、参数为1前提:1.保证SP_OCT_AUTOADD_ENABLE参数设置为1.DDL to auto-addParameter to set to 1Additional requirementsCREATE / DROP SEQUENCE SP_OCT_AUTOADD_SEQSet the SP_OCT_TARGET_COMPATIBILITY parameter to at least 8.6.3CREATE / DROP MATERIALIZED VIEW*SP_OCT_AUTOADD_MVSet the SP_OCT_TARGET_COMPATIBILITY parameter to

57、at least 8.6.3u SharePlex可以复制不包含在激活的配置文件的对象的DDL,但是不会复制任何数据,因为没有激活的配置文件包含对象。SP_OCT_REPLICATE_ALL_DDL设置为1。4.2 异构复制map columns环境:RedHat6 Oracle11.2.0.4 SharePlex9.0注意事项:1.源库的所有列必须映射给目标端的列,名称可以不同,目标表的列数量可以多于源库表的列数量。2.在配置了列映射的表中使用ALTER TABLE增加列是不被支持的。样例配置文件:sp_ctrl (11rac1:2300) view config hr_20170708 d

58、atasource:o.source#source tables target tables routing map#splex.demo_src splex.demo_dest target_systemo.target_sidhr.employees hr.employees 192.168.204.112o.targethr.test (id,name) hr.coltest (nu,last_name) 192.168.204.112o.target4.3 级联复制l 级联复制情境1.源库允许有超过1024个复制路由,则可以通过发送到中间系统,通过广播的方式,分发给目标系统。2.源库由

59、于防火墙限制或者其他因素导致无法直接建立与目标端的连接,则可以使用级联复制。注:使用级联复制,即使源库无法连接目标端,源端也要能解析目标端的主机。l 级联复制要求1. 在所有系统中创建相同SharePlex用户名用户。2. 在目标端禁用影响DML操作的触发器。3. 排除SharePlex用户的DML与DDL复制,配置文件中对象以外的表可以有DML与DDL操作,但不能影响复制队列。4. 如果序列在目标端是不需要的,则不要复制序列,复制序列会造成复制迟缓。因为序列用来在插入操作时产生列的键值,而值会复制到目标端,所以序列可以不复制。4.3.1中间系统为数据库,有post情况下级联复制l 配置注意事

60、项:1. 在所有系统的数据库中,必须有相同名称的SharePlex的用户。2. 触发器必须在在中间库与目标库中禁用。3. SharePlex不支持从中间库到目标库的DDL复制,只支持源库到中间库的DDl复制,所以在中间库需要禁用掉SP_OCT_REPLICATE_DDL与SP_OCT_REPLICATE_ALL_DDL两个参数。4. 需要在源库与中间库创建两个配置文件。5. 源库与中间库开启归档,防止在捕获完成之前联机重做日志被清除。l 配置样例:Example on source systemDatasource:o.oraAhr.emp hr.emp2 hostBo.oraBhr.sal hr.sal2 hostBo.oraBcust.% cust.% hostBo.oraBExample on intermediary systemDatasource:o.oraBhr.emp hr.emp2

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!