ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Logical Standby中的supplemental logging和rely disable constraint

Logical Standby中的supplemental logging和rely disable constraint

原创 Linux操作系统 作者:tolywang 时间:2009-04-21 13:48:23 0 删除 编辑

Windows 2003 Server  ,  Oracle10.2.0.4   

          由于rowid  (虚列) 是定位Oracle中具体数据的物理存储位置,是物理地址,由于在逻辑Standby 采用SQL Apply 方式(而不是数据块block直接更新同步方式) 进行数据同步, Standby 数据库里rowid可能不等于Primary 数据库里的rowid,所以必须采取一些机制来保证在Primary DB里所更新的行能够对应到Logical Standby 里相应的行。

http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/create_ls.htm#i76902  

 

添加一个disabled的主键类型的rely的限制(disabled primary key rely constraint)

  如果应用程序确保表里的行是唯一标识的,你可以在表上创建一个disabled主键类型的rely的限制:
SQL>alter table mytab add primary key(id,name) rely disable;
  rely constraint告诉系统确保了所有的行都是唯一的。如果rely constraint所指定的列没有唯一,则在逻辑备用数据库应用SQL时将会失败。最好添加主键或唯一索引,这样在逻辑备用数据库应用SQL语句时也会速度快些。可见,一般是不建议使用rely disabled 来进行限制的,而最好是添加主键或唯一索引。

 

            supplemental logging在重做日志里添加了唯一标识行的信息。主键或唯一索引存在与否,能够影响追加的日志(supplemental logging):

  a、如果表有主键或唯一索引,则在supplemental logging的时候,向重做日志添加的信息是最少的。
  b、如果表没有主键或唯一索引,supplemental logging会自动在重做日志里记录所有字段的值。

如何启用supplemental logging 
  在主数据库上,执行下面语句以便将主键和唯一索引信息添加到归档日志里:
SQL> alter database add supplemental log data(primary key,unique index) columns;   如果想删除,使用drop .
  该语句在主数据库中向重做日志添加了唯一标识行的信息,从而日志应用服务可以在备用数据库里正确的标识相同的行了。

 

备注:  Oracle中定义PK与Unique Index 区别是 not null ,  在Oracle中唯一索引中的null数值被视为不同 ,PK不允许有null 值。 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-591147/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13276531