对于使用 Teradata PT API 的作业,在使用 create 或 move 命令复制单个大型数据库对象(如表或数据库)时,通过在 XML 文件中编辑相应的命令,可以使用多个代理。
- 添加 max_agents_per_task 元素。
- 将 max_agents_per_task 元素的值设置为一个大于 1、小于等于已安装的联机代理数量的整数。此值对应于为复制作业中的各个数据库对象而分配的代理的最大数量。
- 将 data_streams 元素的值设置为一个大于 1 的整数。通过向每个代理分配一个或多个数据流,工作将分散在多个代理之间。
- 仅对于 Teradata PT API,将 source_sessions 和 target_sessions 的值设置为大于或等于 data_streams 的整数值。Teradata PT API 在数据流间分配会话。因为每个 Teradata PT API 数据流至少需要一个源会话和一个目标会话,所以源会话和目标会话的数量必须大于等于数据流的数量。对于 Teradata PT API 而言,所有条件都必须为 true 的参数值包括:
参数 产品 max_agents_per_task > 1 Teradata PT API max_agents_per_task <= number-of-online-agents Teradata PT API data_streams > 1 Teradata PT API source_sessions >= data_streams Teradata PT API target_sessions >= data_streams Teradata PT API 如果未指定值,Data Mover 将动态计算 max_agents_per_task,从而获得最佳性能。
下表说明了 data_streams、max_agents_per_task、source_sessions 和 target_sessions 参数具有不同值时会发生的情况。值 说明 max_agents_per_task 大于联机代理的数量。 Teradata PT API:
将 max_agents_per_task 设置为等于联机代理的数量。data_streams 大于 max_agents_per_task Teradata PT API:
优化在线代理之间可用数据流的均匀分配。max_agents_per_task 大于 data_streams 的值。 用于运行任务的代理数等于 data_streams 的值。 未提供 data_streams 和 max_agents_per_task。 Teradata PT API:
首先计算优化数据流,然后将 max_agents_per_task 的值设置为等于计算出的 data_streams。source_sessions 或 target_sessions 小于 data_streams。 仅 Teradata PT API:
将 source_sessions 或 target_sessions 设置为等于数据流的数量。未提供 source_sessions 或 target_sessions。 Teradata PT API:
动态设置 source_sessions 或 target_sessions 以提供最佳性能。提供了 data_streams,但未提供 max_agents_per_task。 Teradata PT API:
将 max_agents_per_task 的值设置为等于 data_streams。未提供 data_streams,但提供了 max_agents_per_task。 Teradata PT API:
计算优化数据流。如果指定 max_agents_per_task 并且值小于或等于计算的数据流数量,则使用指定值;否则,将 max_agents_per_task 值设置为与计算的数据流数量相同的值。