sql server 2000 提供了比以前版本更多的复制选项,其中包括立即更新订购者,排队更新,以排队更新作为热备份的立即更新,传递复制数据,过滤出版数据等。其中前三个选项表示可在订购者处对复制数据进行修改,然后将修改以相应的方式反映到出版者那里。如果在复制中使用这些复制选项,将使复制的配置和管理更为困难,所以很有必要对这些复制选项有着更为清晰的认识和了解。
16.6.1 立即更新订购者 所谓立即更新订购者是指在复制时使用了立即更新选项。通常而言,快照复制和事务复制都是单向数据复制即数据从出版者的源数据库复制到订购者的目标数据库。但是sql server 通过允许订购者来修改复制数据而增强了这种模式的功能。立即更新订购者选项允许既可以在出版者也可以在订购者处对复制数据进行修改。立即更新是指对复制数据进行修改的订购者与出版者之间保持数据的立即更新,即立即将订购者的修改反映到出版者那里。并且提供了对其它订购者而言的潜在事务一致性,即订购者的修改在立即反映到出版者那里之后,允许这一修改不必马上同步到其它订购者那里。在创建出版物时对该选项进行设置。
16.6.3 转换复制数据 转换复制数据是sql server 2000 新增的功能。用可转换订购(transformable subscriptions)来实现复制数据的转换。可转换订购主要是利用数据转换服务(dts)所提供的功能,如数据移动、传递映射、过滤等,从而可以根据每个订购者的具体要求来定制、发送复制数据。它可以在快照复制和事务复制中使用。比如,在以下情况下我们应该使用转换复制数据选项:
根据每一订购者对出版数据进行列或水平分割 在sql server 2000 以前的版本中,由于不同的订购者需要不同的数据(这里订购者所需要的数据是指表在垂直或水平分割后的某一部分),所以必须把数据分割成不同的数据块,从而在创建快照复制或事务复制时,也要分别为每一个订购者创建不同的出版物。这给复制的管理和配置带来极大的不便,由此可增加系统的负担。但是在sql server 2000 中,可转换订购允许为同一出版物创建定制的数据分割(列或行分割),即同一出版物支持多个订购,从而满足不同订购者对出版数据的不同需求。
改变数据类型(除主键列外) 重新命名某列 从某列提取子字符串或向某列添加额外的字符 对某列使用函数 在创建出版物时设置该选项。完成该选项设置后,将创建一个复制dts 包,订购者将把该dts 包作为出版物的一部分。 下面我们将介绍在enterprise manager 中如何创建可转换订购。 首先,在创建出版物时要设置transform published data 选项,在创建出版物的step6 (见16.3 快照复制图16-24),在updatable subscriptions 对话框中不选中任何选项,然后单击“下一步”,会打开transform published data 对话框,如图16-55。 所示在该对话框中选择yes, transform the data。 然后完成出版物的创建。
其次,在enterprise manager 创建可转换订购需要执行以下操作:
(1) 启动sql server enterprise manager, 登录到指定的服务器,顺次打开 replication、 publication 文件夹。从中选择设置了transform published data 选项的出版物。 (2) 右击该出版物,在弹出菜单中选择define transformation of publication 选项,打开welcome to transform published data 对话框,如图16-56 所示。(有关该向导的余下操作请参看数据转换服务dts 一章)。