适用于 Adaptive Server Enterprise 的 SQL Remote 设计
位于物理上的不同站点的用户可以分别向表中插入新行,因此在保证主键值唯一性方面自然会出现问题。
如果两个用户插入使用相同主键值的行,则复制系统中第二个到达给定数据库的插入操作将会失败。由于 SQL Remote 是一个供非经常性连接用户使用的复制系统,所以该系统中可能没有覆盖所有数据库的锁定机制。有必要相应地设计您的 SQL Remote 系统,以确保不会发生主键错误。
如果要通过设计来避免 SQL Remote 系统中出现主键错误,则必须保证可能在多个站点修改的表的主键是唯一的。有多种方法可以达到这一目的。本章将介绍一种常用的、经济并且可靠的方法,该方法为系统中的每个站点使用一个主键值池。
主键池是一个为 SQL Remote 系统中的每个数据库保存一组主键值的表。每个远程用户都接收他们自己的那组主键值。当远程用户向表中插入新行时,他们使用存储过程从池中选择有效的主键。该池是通过在统一数据库中定期运行补充供应的过程来维护的。
下面使用一个简单的示例数据库来说明此方法,该数据库由销售代表和他们的客户组成。这些表比您在实际数据库中使用的表要简单得多;这便于我们集中讨论那些对复制来说比较重要的问题。
主键池
复制主键池
填充和补充键池
添加新客户
测试键池
主键池摘要
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。