在使用 DSA 复制整个数据库时,如果要重定位数据库或 database.copy.joinIndex 未设置为 true,则源数据库上的联接索引和哈希索引不会自动复制到目标。如果 database.copy.joinIndex 设置为 false,则必须按照以下说明在数据库重定位或数据库复制期间显式复制联接索引和哈希索引:
- 打开包含该作业的作业定义信息的 parameters.xml 文件。
- 创建 indices 区域。
- 将 selection="included" 属性添加到 index 元素中。
- 使用 name 元素指定联接索引或哈希索引的名称。
- 使用 index_type 元素指定索引类型。可能的值包括 HASH_INDEX 和 JOIN_INDEX。当源或目标数据库版本低于 16.20 时,DSA 会自动复制联接索引或哈希索引。在这种情况下,不必另外再创建 indices 部分。此外,如果在版本低于 16.20 的数据库上使用 DSA,则不支持额外的索引。
在以下示例中,在复制数据库 DBName 时会将与 DBName.Orders 表关联的哈希索引 DBName.Orders_hi 复制到目标。
<database selection="included"> <name>DBName</name> </database> <indices> <index selection="included"> <name>Orders_hi</name> <index_database>DBName</index_database> <index_type>HASH_INDEX</index_type> </index> </indices>