- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用streams实现不同数据库下不同schema间DDL同步
用streams实现不同数据库下不同schema间DDL同步
上个礼拜有同事问我——她想做两个数据库下不同schema间的DDL同步,问我如何实现?
即她想实现这样的目的:
源数据库:cuihua,cuihua里有两个schema,分别为s1和s2
目标数据库:cuihua1,cuihua1里有两个schema,分别为s3和s4
即现在要做s1和s3的DDL同步,s2和s4的DDL同步。
当然,你可以通过比较两边数据库同名object的LAST_DDL_TIME来决定哪些object需要被更新,进而在源数据库用dbms_metadata.get_ddl得到这些需要更新的object的ddl语句,然后修改schema名和tablespace名后再在目标数据库上执行这些修改后的ddl语句来实现上述目的。
这里,我尝试用streams来实现上述目的。
Oracle的文档里和metalink上都没有这样的先例,因为streams通常用于相同schema下的DML和DDL同步!
这里,我用streams里的DDL Handler实现了上述目的,并且引入了完备的DDL同步的容错机制,下面我给出一个完整的例子:
我们先来看一下在我本机已经搭建好的streams环境的最终测试效果,上述搭建过程并不顺利,先后碰到了ORA-00600: 内部错误代码, 参数: [kwqbdrcp101],ORA-06512: at SYS.LOGMNR_KRVRDLUID3, line 1799,ORA-23605: invalid value for STREAMS parameter FILE_NAME等一系列问题,虽然上述问题均被我一一解决,但是整个搭建过程给我的感觉就是streams并没有Advanced Replication稳定!
这里测试做8种典型的DDL同步测试:
1、测试对表结构的修改
源数据库cuihua,schema为s1:
SQL conn s1/s1@cuihua;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as s1
SQL desc t1;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
ID NUMBER
C1 VARCHAR2(10) Y
SQL alter table t1 add(c2 varchar2(20));
Table altered
SQL desc t1;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
ID NUMBER
C1 VARCHAR2(10) Y
C2 VARCHAR2(20) Y
目标数据库cuihua1,schema为s3:
SQL conn s3/s3@cuihua1;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as s3
SQL desc t1;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
ID NUMBER
C1 VARCHAR2(10) Y
C2 VARCHAR2(20) Y
2、测试创建一个新的表:
源数据库cuihua,schema为s1:
SQL conn s1/s1@cuihua;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as s1
SQL create table t2(id number,c2 varchar2(30), constraint pk_t2 primary key(id) using index);
Table cre
您可能关注的文档
- 幼儿绘本故事《大卫不可以》.ppt
- 任务四 保证数据的准确性、一致性和完备性.ppt
- 8A10月月考新.docx
- 《卖油翁》教学设计江海宁.docx
- 美国独立战争-初中历史课件.ppt
- Hibernate之one-to-one主键关联映射.doc
- 28.1.1++正弦函数.ppt
- 幼儿园中班故事《龟兔赛跑》.ppt
- 乘法分配律的课件2.ppt
- 24.风娃娃【第1课时】.ppt
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
文档评论(0)