配置 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 发布服务器疑难解答”主题中的“需要重新配置发布服务器的更改”。