您可以将源数据库中的所有对象重新定位到其他目标数据库。要将源中所有对象复制到其他目标数据库,请添加 target_database 元素并指定目标数据库的名称。只有在指定 selection = "included" 的情况下才能指定 target_database。如果在指定 selection= "all" 的情况下指定 target_database 元素,则会出现创建时间错误。
创建作业之前,必须存在目标数据库。Data Mover 不会在目标系统上创建数据库。
- 添加 target_database 元素。
- 指定目标数据库的名称。
在以下示例中,数据库 MySourceDB 中的对象会复制到目标数据库 MyTargetDB 中。
<database selection="included"> <name>MySourceDB</name> <target_database> <name>MyTargetDB</name> </target_database> </database>
在重新定位整个数据库时,Teradata DSA 不会自动复制源数据库中的联接索引和哈希索引。需要在 XML 中指定要复制到目标的联接索引或哈希索引。该索引会在目标上重新定位的表中创建。联接索引或哈希索引本身不会重新定位。
如果在版本低于 16.20 的数据库上使用 DSA,则不支持在作业中再另外指定 indices 部分。使用 DSA 重新定位整个数据库时,必须创建单独的作业才能仅复制索引。
在以下示例中,哈希索引 MyDB.orders_hi 会复制到目标数据库 MyDB。由于正在将关联的表 MyDB.Orders 重新定位到 MyTargetDB,因此,哈希索引将在目标上的表 MyTargetDB.Orders 中创建。<database selection="included"> <name>MyDB</name> <target_database> <name>MyTargetDB</name> </target_database> </database> <indices> <index selection="included"> <name>Orders_hi</name> <index_database>MyDB</index_database> <index_type>HASH_INDEX</index_type> </index> </indices>