ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Kamus

[精华] 高级复制初步研究-2005-2-5 更新到版本0.6 [复制链接]

liang_itpu 该用户已被删除
发表于 2004-6-25 19:34:48 |显示全部楼层

如下:

SQL> DESC CT_VENDORCATA
名稱                                      空值?    型態
----------------------------------------- -------- -----------------
NO                                        NOT NULL CHAR(2)
NAME                                      NOT NULL VARCHAR2(20)
DEMO                                               VARCHAR2(40)

SQL> desc ct_vendor
名稱                                      空值?    型態
----------------------------------------- -------- -----------------
NO                                        NOT NULL CHAR(4)
CATA                                    NOT NULL CHAR(2)
NAME                                   NOT NULL VARCHAR2(16)


SQL >  ALTER TABLE "TMP"."CT_VENDOR"
    ADD( CONSTRAINT "FK_CT_VENDOR_CATA"
             FOREIGN KEY("CATA"
    REFERENCES "TMP"."CT_VENDORCATA"("NO" )
然后把 ct_vendorcata
加入 復制組,操作如下:
BEGIN
   DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
     gname => '"COPY_0509"',
     type => 'TABLE',
     oname => '"CT_VEDNORCATA'"
     sname => '"TMP"',
     copy_rows => TRUE,
     use_existing_object => TRUE);
END;


execute dbms_repcat.generate_replication_support('TMP','CT_VENDORCATA','table');

錯誤信息,截圖如下:

使用道具 举报

liang_itpub 该用户已被删除
发表于 2004-6-25 19:57:51 |显示全部楼层

另外,我把外鍵約束去掉就可以了,狀態如下

<img>http://www.zettapocci.com/imagetest/2.jpg</img>


如果
外键约束跟Advanced Replication 沒關系,這個現象作何解?

使用道具 举报

版主

版主

精华贴数
14
技术积分
51618
社区积分
3322
注册时间
2001-12-29
论坛徽章:
213
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2012-05-15 14:58:09咸鸭蛋
日期:2012-04-19 16:07:53灰彻蛋
日期:2012-02-02 17:30:18迷宫蛋
日期:2012-03-09 12:12:06蛋疼蛋
日期:2011-08-25 16:17:18蜘蛛蛋
日期:2011-05-10 13:07:01茶鸡蛋
日期:2011-05-10 13:05:16现任管理团队成员
日期:2011-05-07 01:45:08ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB技术丛书作者
日期:2010-09-26 15:24:56
发表于 2004-6-25 22:08:42 |显示全部楼层
怀疑你的自表中有非法数据,检查一下是否存在数据的冲突。

使用道具 举报

liang_itpub 该用户已被删除
发表于 2004-6-26 07:43:02 |显示全部楼层

Re: 另外,我把外鍵約束去掉就可以了,狀態如下

最初由 liang_itpub 发布
[B]<img>http://www.zettapocci.com/imagetest/2.jpg</img>


如果
外键约束跟Advanced Replication 沒關系,這個現象作何解? [/B]
,

非法數據,你指什么,請看ct_vendorcata 表的數據,
如圖:





使用道具 举报

版主

版主

精华贴数
14
技术积分
51618
社区积分
3322
注册时间
2001-12-29
论坛徽章:
213
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2012-05-15 14:58:09咸鸭蛋
日期:2012-04-19 16:07:53灰彻蛋
日期:2012-02-02 17:30:18迷宫蛋
日期:2012-03-09 12:12:06蛋疼蛋
日期:2011-08-25 16:17:18蜘蛛蛋
日期:2011-05-10 13:07:01茶鸡蛋
日期:2011-05-10 13:05:16现任管理团队成员
日期:2011-05-07 01:45:08ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB技术丛书作者
日期:2010-09-26 15:24:56
发表于 2004-6-26 08:37:57 |显示全部楼层
你把你的步骤详细描述一下吧。

比如,采用多主复制还是物化视图复制,子表是否为空,在复制的另一边是否也存在外键关系,子表是否复制?

使用道具 举报

liang_itpub 该用户已被删除
发表于 2004-6-26 10:14:12 |显示全部楼层
最初由 yangtingkun 发布
[B]你把你的步骤详细描述一下吧。

比如,采用多主复制还是物化视图复制,子表是否为空,在复制的另一边是否也存在外键关系,子表是否复制? [/B]


答:
是多主復制, 另一邊也有外鍵關系,
結構如下:
SQL> DESC CT_VENDORCATA
名稱 空值? 型態
----------------------------------------- -------- -----------------
NO NOT NULL CHAR(2)
NAME NOT NULL VARCHAR2(20)
DEMO VARCHAR2(40)
pk為no

SQL> desc ct_vendor
名稱 空值? 型態
----------------------------------------- -------- -----------------
NO NOT NULL CHAR(4)
CATA NOT NULL CHAR(2)
NAME NOT NULL VARCHAR2(16)
pk為no


SQL > ALTER TABLE "TMP"."CT_VENDOR"
ADD(
CONSTRAINT "FK_CT_VENDOR_CATA"
FOREIGN KEY("CATA"

REFERENCES "TMP"."CT_VENDORCATA"("NO" [/COLOR] )

-- ct_vendorcata 是被引用的子表
-- 我現在是用這個被引用的子表ct_vendorcata
作 Advanced Replication

tks!!!

使用道具 举报

版主

版主

精华贴数
14
技术积分
51618
社区积分
3322
注册时间
2001-12-29
论坛徽章:
213
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2012-05-15 14:58:09咸鸭蛋
日期:2012-04-19 16:07:53灰彻蛋
日期:2012-02-02 17:30:18迷宫蛋
日期:2012-03-09 12:12:06蛋疼蛋
日期:2011-08-25 16:17:18蜘蛛蛋
日期:2011-05-10 13:07:01茶鸡蛋
日期:2011-05-10 13:05:16现任管理团队成员
日期:2011-05-07 01:45:08ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB技术丛书作者
日期:2010-09-26 15:24:56
发表于 2004-6-26 18:25:07 |显示全部楼层
SQL> create table test1 (id number(3) primary key);

表已创建。

SQL> create table test2 (id number(3) primary key, fid number(3), constraint fk_test2
  2  foreign key (fid) references test1(id));

表已创建。

SQL> BEGIN
  2  DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
  3  gname => 'TEST',
  4  type => 'TABLE',
  5  oname => 'TEST1',
  6  sname => 'YANGTK',
  7  use_existing_object => FALSE,
  8  copy_rows => FALSE);
  9  END;
10  /

PL/SQL 过程已成功完成。

SQL> BEGIN
  2  DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
  3  sname => 'YANGTK',
  4  oname => 'TEST1',
  5  type => 'TABLE',
  6  min_communication => TRUE);
  7  END;
  8  /

PL/SQL 过程已成功完成。

表的外键不是问题,我怀疑你的表中的数据导致外键约束无法正常生成。
你可以先将表中的数据删除,如果这时可以生成则说明是数据的问题。在检查表中是否存在导致外键无法建立的数据

使用道具 举报

注册会员

初级会员

精华贴数
0
技术积分
48
社区积分
0
注册时间
2004-6-28
论坛徽章:
0
发表于 2004-6-30 16:12:15 |显示全部楼层
最近我这个菜鸟在按照领导的意思研究高级复制问题,从网上找了些ORACLE8的例子来看(我用的是ORACLE9),出现了以下问题,不知何故,特请教各位,先谢谢了,小弟很急

创建主复制节点

①、用repadmin身份登录ora8i数据库,创建主复制节点

SQL>execute dbms_repcat.add_master_database  

(gname=>'scott_mg',master=>'demo.sh_yuanzhu.com',use_existing_objects=>true, copy_rows=>false, propagation_mode => 'asynchronous');

参数说明:

gname 主复制组名

master 加入主复制节点的另一个数据库

use_existing_object true表示用主复制节点已经存在的数据库对象

copy_rows false表示第一次开始复制时不用和主复制节点保持一致

propagation_mode 异步地执行


执行这句话的时候,错误提示如下:
ERROR 位于第 1 行:
ORA-23375: 特性与数据库版本DEMO.SH_YUANZHU.COM不兼容
ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 86
ORA-06512: 在"SYS.DBMS_REPCAT_MAS", line 2151
ORA-06512: 在"SYS.DBMS_REPCAT", line 146
ORA-06512: 在line 1

我的复制的组是:scott_mg,master是demo.sh_yuanzhu.com
为什么会这样,帮帮忙啊

使用道具 举报

liang_itpub 该用户已被删除
发表于 2004-6-30 17:03:12 |显示全部楼层
最初由 yangtingkun 发布
[B]SQL> create table test1 (id number(3) primary key);

表已创建。

SQL> create table test2 (id number(3) primary key, fid number(3), constraint fk_test2
  2  foreign key (fid) references test1(id));

表已创建。

SQL> BEGIN
  2  DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
  3  gname => 'TEST',
  4  type => 'TABLE',
  5  oname => 'TEST1',
  6  sname => 'YANGTK',
  7  use_existing_object => FALSE,
  8  copy_rows => FALSE);
  9  END;
10  /

PL/SQL 过程已成功完成。

SQL> BEGIN
  2  DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
  3  sname => 'YANGTK',
  4  oname => 'TEST1',
  5  type => 'TABLE',
  6  min_communication => TRUE);
  7  END;
  8  /

PL/SQL 过程已成功完成。

表的外键不是问题,我怀疑你的表中的数据导致外键约束无法正常生成。
你可以先将表中的数据删除,如果这时可以生成则说明是数据的问题。在检查表中是否存在导致外键无法建立的数据 [/B]


你的test1複制狀態正常嗎?
這是我的: [IMG] http://www.zettapocci.com/imagetest/1.jpg[/IMG]

使用道具 举报

版主

版主

精华贴数
14
技术积分
51618
社区积分
3322
注册时间
2001-12-29
论坛徽章:
213
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2012-05-15 14:58:09咸鸭蛋
日期:2012-04-19 16:07:53灰彻蛋
日期:2012-02-02 17:30:18迷宫蛋
日期:2012-03-09 12:12:06蛋疼蛋
日期:2011-08-25 16:17:18蜘蛛蛋
日期:2011-05-10 13:07:01茶鸡蛋
日期:2011-05-10 13:05:16现任管理团队成员
日期:2011-05-07 01:45:08ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB技术丛书作者
日期:2010-09-26 15:24:56
发表于 2004-7-1 05:53:18 |显示全部楼层
最初由 sanhuamail 发布
[B]最近我这个菜鸟在按照领导的意思研究高级复制问题,从网上找了些ORACLE8的例子来看(我用的是ORACLE9),出现了以下问题,不知何故,特请教各位,先谢谢了,小弟很急

创建主复制节点

①、用repadmin身份登录ora8i数据库,创建主复制节点

SQL>execute dbms_repcat.add_master_database  

(gname=>'scott_mg',master=>'demo.sh_yuanzhu.com',use_existing_objects=>true, copy_rows=>false, propagation_mode => 'asynchronous');

参数说明:

gname 主复制组名

master 加入主复制节点的另一个数据库

use_existing_object true表示用主复制节点已经存在的数据库对象

copy_rows false表示第一次开始复制时不用和主复制节点保持一致

propagation_mode 异步地执行


执行这句话的时候,错误提示如下:
ERROR 位于第 1 行:
ORA-23375: 特性与数据库版本DEMO.SH_YUANZHU.COM不兼容
ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 86
ORA-06512: 在"SYS.DBMS_REPCAT_MAS", line 2151
ORA-06512: 在"SYS.DBMS_REPCAT", line 146
ORA-06512: 在line 1

我的复制的组是:scott_mg,master是demo.sh_yuanzhu.com
为什么会这样,帮帮忙啊 [/B]


我最初在做高级复制的时候,也是根据网上的例子做的,也总是碰到这个错误。这个错误说明在建立主体站点过程中,漏掉了一两个步骤,导致了在添加其他复制站点时失败。

给你的建议是,首先将你的复制环境删除干净。如果你的英文不错的话,建议直接看ORACLE的文档——Replication Management API Reference的第二章和第三章,按照上面的步骤一步步来操作,绝对不会出问题,而且每一步骤都有详细的说明,可以帮助你更好的理解。如果英文不算很好,可以根据Kamus在这本书中给出的例子进行测试。
如果有什么问题,可以继续在这里提问。

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部