oracle快照刷新后,两边的数据不一致?

Michaelyfj 2001-07-25 04:17:18
原来的快照主服务器的oracle版本是oracle7.3.4,快照服务器的版本也是7.3.4,所有的快照都能正常工作,快照刷新后,两边的数据都一致。后来我对主服务器的数据库做了升级,操作系统是unix,oracle8.16,快照服务器保持不变,但自从升级后,快照刷新后,快照服务器上的记录反而比主服务器上的记录数多,且很多数据不一致。
我猜想可能是由于快照两边的数据库不一致造成的,请大虾们指点。特别是guo!
...全文
4665 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guo 2001-07-26
  • 打赏
  • 举报
回复
Michaelyfj,不太清楚你定义snapshot有没有使用refresh with rowid子句,如果有的话oracle是不允许在8.0以上的master site上使用with rowid方式刷新.我对7.3的oracle不熟,下面我将oracle的有的原话给你参考:
For backwards compatibility, Oracle supports ROWID snapshots in addition to the
default primary key snapshots. A ROWID snapshot is based on the physical row
identifiers (ROWIDs) of the rows in a master table. ROWID snapshots should be
used only for snapshots based on master tables from an Oracle7 database, and
should not be used when creating new snapshots based on master tables from
Oracle release 8.0 or greater databases.

书名Oracle 8I Replication (A76959-01)

oldwain(老斗)说的有理,但是产生一份copy,还是出现记录差异就不得而知了.
oldwain 2001-07-26
  • 打赏
  • 举报
回复
建议在snapshot节点重新创建所有的snapshot.

原因(纯属本人猜测, 哪位朋友如有更合理的解释,请指正):
7.x与8.x的rowid结构不同,对于以refresh with rowid的snapshot来说,会认为所有的记录都是新的,因此将会再产生一份copy.


fita 2001-07-26
  • 打赏
  • 举报
回复
我的意思不是说快照本身造成primary key修改,而是你们的数据库应用程序修改主服务器上数据时,有update语句修改了primary key字段
Michaelyfj 2001-07-26
  • 打赏
  • 举报
回复
今天之内,求助...
Michaelyfj 2001-07-25
  • 打赏
  • 举报
回复
我的快照是单向的快照,即simple snapshot,应该不会修改主服务器上的primary key字段。
fita 2001-07-25
  • 打赏
  • 举报
回复
就我的经验,在8.1.6的快照数据复制时,要防止update语句修改主表中的primary key字段,否则就会出现快照服务器上的记录比主服务器上的多的现象(快照服务器update前的记录还在,增加了一条update后的记录),对于主服务器要修改主键字段的语句,可以把update语句修改为一条delete语句和一条insert语句

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧