使用 Teradata ARC 或 Teradata DSA 时,您可以将所有对象从源数据库复制到目标数据库,而不必在数据库中逐一指定每个对象。对于指定各个表来说,这是一种非常有用的替代方法,当数据库具有大量对象时尤其如此。将整个数据库复制到目标时,您可以执行以下任意或所有操作:
- 将特定表排除在复制范围之外
- 在目标数据库中重命名要复制的表
- 复制部分表数据
- 复制联接索引和哈希索引
- 复制触发器
- 复制永久日志(DSA 不支持)
- 为所有要复制的表启用比较 DDL 功能
- 为选定的要复制的表禁用比较 DDL 功能
- 重命名哈希索引和联接索引以及重新指定其位置
- 复制整个数据库及其所有子数据库
- 将子数据库排除在复制范围之外
- 重命名子数据库中的表
- 复制子数据库中的特定表
- 复制到其他目标数据库
- 复制父数据库及其子数据库,但将一个子数据库的位置重新指定至目标上的其他数据库
规则和限制
- 如果某个作业使用 Teradata ARC 或 Teradata DSA 复制整个数据库,并且数据库包含具有外键的表,则创建的目标表将不含外键。
- 只能使用 ARC 或 DSA 实用程序在 Teradata Database 系统之间复制整个数据库。
- Teradata PT API 运算符和 Teradata JDBC 实用程序不支持复制整个数据库。
- 指定的目标数据库必须存在并拥有足够空间。
- 使用 ARC 或 DSA 复制已收集了统计数据的整个数据库时,无论 copyStats 属性如何,都将复制数据库内所有对象的统计信息。
不能在 Teradata 与 Hadoop 系统之间复制数据库。
- 使用 ARC 将数据复制到高于源系统一个或多个主要版本的目标系统时,作业日志可能包含以下 ARC 警告︰
Warning ARC1257: A cross-release data restore requires that a Teradata SQL conversion script be run.
Data Mover 不会自动执行此数据还原后转换脚本。在大多数情况下,不必执行此脚本,除非您要复制整个数据库,而数据库中包含外部存储过程 (XSP) 或用户定义函数 (UDF)。