Oracle 发布者的管理考虑事项

配置 Oracle 发布服务器并设置复制更改跟踪机制后,Oracle 数据库系统的管理员仍可以使用标准 Oracle 数据库实用工具并执行典型的系统管理任务。 但是, 您应该注意执行某些管理任务对已发布数据的影响。

除了删除或修改发布以用于复制的列,或删除或修改任何复制对象,这些考虑因素不适用于快照发布。

导入和加载数据

触发器用于 Oracle 上的事务性发布中的更改跟踪。 只有在发生更新、插入或删除时,触发器生效,才能将已发布表的更改复制到订阅方。 Oracle 实用工具中的 Oracle 导入和 SQL*加载程序都有一些选项,这些选项会影响在将行插入到复制表中时是否触发数据库触发器。

Oracle 导入

使用 Oracle 导入,可以将选项 忽略 设置为“y”或“n”(默认值为“n”。 如果 忽略 设置为“n”,则删除表并在导入期间重新创建。 这会删除复制触发器并禁用复制。 如果 忽略 设置为“y”,则导入将尝试将行加载到现有表中,这会触发复制触发器。 因此,使用导入工具导入到复制的表中时,请确保 忽略 设置为“y”。

SQL*Loader

使用 SQL*Loader,可以将选项 直接 设置为“true”或“false”(默认值为“false”。 如果 direct 设置为“false”,则使用传统的 INSERT 语句插入行,这会触发复制触发器。 如果 直接 设置为“true”,则会优化负载,并且不会触发触发器。 因此,在使用 SQL*Loader 工具加载到复制表时,请确保 直接 设置为“false”。

对已发布的对象进行更改

以下作不需要特殊注意事项:

  • 重新生成已发布表的索引。

  • 将用户触发器添加到已发布的表。

以下要求您暂停所有发布表上的活动:

  • 移动已发布的表。

以下作要求删除发布、执行该作,然后重新创建发布:

  • 截断已发布的表。

  • 重命名已发布的表。

  • 向已发布表添加列。

  • 删除或修改用于复制发布的列。

  • 执行未记录的作。

删除或修改复制对象

如果删除或修改任何发布服务器级别的跟踪表、触发器、序列或存储过程,则必须删除和重新配置发布服务器。 有关这些对象的部分列表,请参阅 在 Oracle 发布服务器上创建的对象

有关删除和重新配置发布服务器的信息,请参阅“ Oracle 发布服务器疑难解答”主题中的“需要重新配置发布服务器的更改”。

另请参阅

配置 Oracle 发布服务器
Oracle 发布服务器的设计注意事项和限制
Oracle 发布概述