适用于:SQL Server
在配置 Oracle 发布服务器并实施复制更改跟踪机制后,Oracle 数据库系统管理员仍然可以使用标准 Oracle 数据库实用工具并执行典型的系统管理任务。 但是,应该了解执行某些管理任务对已发布数据的影响。
但以下情况除外:删除或修改已发布用于复制的列,或者删除或修改任何复制对象;这些注意事项不适用于快照发布。
导入和加载数据
触发器用于在 Oracle 的事务发布中进行更改跟踪。 只有当发生更新、插入或删除操作时复制触发器被触发,对已发布表所做的更改才能复制到订阅服务器。 Oracle Import 和 SQL*Loader 这两个 Oracle 实用工具都提供了一些选项,这些选项会影响在使用这些实用工具将行插入复制表时,触发器是否会被触发。
Oracle 导入
用 Oracle 导入,可以将 ignore 选项设置为“y”或“n”(默认值为“n”)。 如果将 ignore 设置为“n”,表会删除并在导入过程中重新创建。 这会删除复制触发器并禁用复制。 如果将 ignore 设置为“y”,导入将尝试将行加载到现有表中,这会激发复制触发器。 因此,用导入工具向复制的表导入时,确保将 ignore 设置为“y”。
SQL*Loader
使用 SQL*Loader,可以将选项“direct”设置为“true”或“false”(默认值为“false”)。 如果将 direct 设为“false”,则会使用常规的 INSERT 语句插入行,从而触发复制触发器。 如果将 direct 设置为“true”,则优化加载而不激发触发器。 因此,使用 SQL*Loader 工具向复制的表导入时,请确保将 direct 设置为“false”。
对已发布的对象进行更改
下列操作没有特别的注意事项:
重新生成对已发布表的索引。
将用户触发器添加到已发布表。
下列操作需要停止已发布表上的所有活动:
- 移动已发布的表。
下列操作要求删除发布、执行操作,然后重新创建发布:
截断已发布的表。
重命名已发布的表。
向已发布的表中添加列。
删除或修改已发布用于复制的列。
执行日志未记录的操作。
删除或修改复制对象
如果删除或修改了任何发布服务器级别的跟踪表、触发器、序列或存储过程,则必须删除并重新配置该发布服务器。 有关这些对象的部分列表,请参阅在 Oracle 发布服务器上创建的对象。
有关删除和重新配置发布服务器的信息,请参阅主题 Troubleshooting Oracle Publishers中的“进行需要重新配置发布服务器的更改”部分。