启动 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
17.20
Published
2022 年 9 月
Language
中文 (简体)
Last Update
2022-10-12
dita:mapPath
zh-CN/tsn1650877444606.ditamap
dita:ditavalPath
zh-CN/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

用途

start 命令可启动使用 create 命令创建的作业。 运行时,您可以通过在命令行中输入作业变量值,指定与初始使用的值不同的作业变量值。此外,也可以通过提供已更新的 parameters.xml 文件来修改作业变量值和要复制的对象列表。如果守护程序没有充足的资源来立即运行作业,作业将入队等待。

参数

请参阅参数顺序

data_streams
[可选] 可在源数据库和目标数据库之间使用的数据流数量。适用于使用 Teradata DSA 和 TPT API(与 Teradata 之间)的作业。所有其他协议均使用单个数据流。
示例: 4
缺省值由 Data Mover 动态计算。
db_client_encryption
[可选] 数据传输期间需要加密作业时设置为 true
dm.rest.endpoint
[可选] 输入 Data Mover REST 服务器 URL 以覆盖 commandline.properties 文件中指定的缺省值,以便在运行时连接到不同的 REST 服务器(进而连接到不同的守护程序)。
https://dm-server1:1443/datamover
force_utility
[可选] 强制 Data Mover 守护程序使用特定实用程序执行所有复制操作。

有效值

  • dsa
  • jdbc
  • tptapi
  • tptapi_load
  • tptapi_stream
  • tptapi_update
  • T2T
如果未指定此值,则 Data Mover 守护程序将确定最适合该作业的 Teradata 实用程序。
使用 Teradata DSA 将数据复制到旧版 Teradata Database 是无效的。如果源 TDPID 和目标 TDPID 相同,则不能使用 Teradata DSA。
示例: dsa
job_name
要启动的作业的名称。
示例: 12315DFHJKS
job_priority
[可选] 指定作业的执行优先级。支持的值包括:“HIGH”、“MEDIUM”、“LOW”和“UNSPECIFIED”。如果未指定值,则运行时使用缺省值“MEDIUM”。
示例: MEDIUM
log_level
[可选] 日志文件输出的日志级别。

有效值

  • 0
  • 1
  • 2
  • 99
示例: 2
缺省值为 0。
max_agents_per_task
[可选] 移动表或数据库时,可并行使用的 Data Mover 代理的最大数量。
示例: 4
缺省值由 Data Mover 动态计算。
netrace
[可选] CLI netrace 参数。该值大于或等于 0 时会生成 CLI 跟踪日志。必须提供有效的 CLI 值。
netrace_buf_len
[可选] CLI netrace_buf_len 参数。该值大于或等于 0 时会生成 CLI 跟踪日志。必须提供有效的 CLI 值。
online_archive
[可选] 使用 Teradata DSA 复制源表时,允许读写访问源表。复制过程中源表会发生更新,但更新不会传输至目标表。复制成功后,目标表中包含的数据与复制开始时源表中的数据匹配。
有效值
说明
True 启用在线存档
False 禁用在线存档
Unspecified 缺省值- 此值将设置为 Data Mover 守护程序配置文件中的值
示例: true
overwrite_existing_objects
[可选] 作业覆盖目标上已存在的对象。
有效值
说明
True 启用覆盖
False 禁用覆盖
Unspecified 缺省值- 此值将设置为 Data Mover 守护程序配置文件中的值
如果未指定此参数,该值将设置为 Data Mover 守护程序配置文件中的 overwrite_existing_objects 参数值。如果此参数指定为 true 或 false,则该值优先于 Data Mover 守护程序配置文件中的参数值。
示例: true
query_band
[可选] 唯一标识 Teradata 会话或源及目标事务的分号分隔名称-值对集。要使用查询带标识作业 payroll、用户 ID aa100000 以及作业会话编号 1122,请按照如下方式定义查询带:
示例: Job=payroll;Userid=aa1000000;Jobsession=1122;
此参数必须添加为 XML 作业定义中的最后一个参数。有关定义查询带使用的详细语法规则,请参考关于查询带
response_timeout
[可选] 等待 Data Mover 守护程序响应的时间(以秒为单位)。
示例: 60
save_changes
[可选] 保存已更改的作业变量值,并使用这些值替换作业创建时最初定义的值。
security_password
[可选] 超级用户或授权 Viewpoint 用户的密码。
示例: 53cUr17y
如果 Data Mover 守护程序上已启用安全管理功能,则必须提供此参数。如果同时指定了 -security_password_encrypted,则此参数无效。
security_password_encrypted
[可选] 超级用户的加密密码。
示例: 052c7aabd14c7770141ac3c0137ab98ae0d3f0f7cddf588981206b010c0c1b2f
如果 Data Mover 守护程序上已启用安全管理功能,则必须提供此参数。如果同时指定了 -security_password,则此参数无效。
security_username
[可选] 超级用户或授权 Viewpoint 用户的用户 ID。超级用户的用户 ID 为 dmcl_admin 且不能更改。
如果 Data Mover 守护程序上已启用安全管理功能,则必须提供此参数。
source_account_id
[可选] 源数据库的登录帐户 ID。
如果源或目标帐户 ID 的帐户名中存在空格,则会导致作业失败。
source_logon_mechanism
[可选] 源系统的登录机制。要登录源 Teradata Database 系统,用户必须至少提供以下其中之一:
  • source_user source_password
  • source_logon_mechanism

Teradata DSA 作业不支持登录机制。请仅对 Teradata PT API 和 Teradata JDBC 作业使用登录机制。如果指定了 -source_logon_mechanism,而未使用 -force_utility,则缺省情况下会使用 Teradata PT API。如果已为 -force_utility 指定 Teradata DSA,指定 -source_logon_mechanism 将导致出现错误。

示例: KRB5
source_logon_mechanism_data
[可选] 源系统的登录机制所需的其他参数。
示例: joe@domain1@@mypassword
source_password
[可选] 源 Teradata 登录密码。
示例: 123456789
如果同时指定了 -source_password_encrypted,则此参数无效。如果没有为此参数指定密码,此命令将提示您以交互方式输入密码。系统使用一系列星号屏蔽输入,而无论密码长度如何。
source_sessions
[可选] 源数据库上每数据流的会话数。
示例: 4
缺省值由 Data Mover 动态计算。
source_tdpid
[可选] 源 Teradata Database。
示例: Checks
source_user
[可选] 源 Teradata 登录 ID。
示例: TD_API_user
如果没有为此参数指定登录 ID,此命令将提示您以交互方式输入此 ID。
如果源或目标 ID 的用户名中存在空格,则会导致作业失败。
sync
[可选] 等待作业完成,然后返回表示作业成功完成与否的退出代码。退出代码 0 表示作业成功完成。0 之外的退出代码表示作业或命令出错。
target_account_id
[可选] 目标数据库的登录帐户 ID。
如果源或目标帐户 ID 的帐户名中存在空格,则会导致作业失败。
target_logon_mechanism
[可选] 目标系统的登录机制。要登录目标 Teradata Database 系统,用户必须至少提供以下其中之一:
  • target_user target_password
  • target_logon_mechanism

Teradata DSA 不支持登录机制。请仅对 Teradata PT API 和 Teradata JDBC 作业使用登录机制。如果指定了 -target_logon_mechanism,而未使用 -force_utility,则缺省情况下会使用 Teradata PT API。如果已为 -force_utility 指定 Teradata DSA,则指定 -target_logon_mechanism 将导致出现错误。

示例: KRB5
target_password
[可选] 目标 Teradata 登录密码。
示例: 212133344
如果同时指定了 -target_password_encrypted,则此参数无效。如果没有为此参数指定密码,此命令将提示您以交互方式输入密码。系统使用一系列星号屏蔽输入,而无论密码长度如何。
target_sessions
[可选] 目标数据库上每数据流的会话数。
示例: 4
缺省值由 Data Mover 动态计算。
target_tdpid
[可选] 目标 Teradata Database。
示例: Leo
target_user
[可选] 目标 Teradata 登录 ID。
示例: TD_tar_User
如果没有为此参数指定登录 ID,此命令将提示您以交互方式输入此 ID。
如果源或目标 ID 的用户名中存在空格,则会导致作业失败。
tpt_debug
[可选] TPT API 跟踪调试日志参数。该值大于或等于 0 时会生成 TPT API 跟踪日志。必须提供有效的 TPT API 值。
uowid
[可选] 与作业关联的批量工作的备用 ID 或名称。如果提供了此参数的值,将事件发送至 Teradata Ecosystem Manager 或其内部 TMSMEVENT 表时,Data Mover 将此值报告为工作单元 ID。如果未指定此参数,将事件发送至 Teradata Ecosystem Manager 或其内部 TMSMEVENT 表时,Data Mover 会使用缺省值作为工作单元 ID。工作单元 ID 的缺省值由作业执行名称和当前时间戳构成。例如,如果要定义查询源的来源,而作业执行名称为 sales_table,则工作单元 ID 的缺省值为 sales_table-20211110122330
示例: sales_tables_start

用法说明

每次启动作业时,系统都会创建一个名为 job name-date time year 的新作业实例。此名称将显示在 status 命令或日志中,用以标识此次执行的作业的信息。在作业启动后,使用 status 命令来监控作业状态。

如果某个作业实例未完成所有指定步骤,则无法启动新的作业实例。如果守护程序没有足够的资源来立即运行作业,则会将该作业放入队列中。不允许将相同的对象复制到另一个处于正在运行或排队状态的作业所在的目标。

可以通过以下两种方法之一在运行时为作业变量提供新值:
  • 直接在命令行上指定作业变量的值,就像您使用 create 命令一样。例如,要将 job1 的日志记录级别设置为值 99,请键入: datamove start -job_name job1 -log_level 99
  • 通过修改 XML 文件并将其提交到 start 命令来为作业变量指定新值,就像使用 create 命令一样:datamove start -job_name job1 -f job1.xml

如果需要修改要复制的对象列表,则必须修改并提交 XML 文件。请确保该 XML 文件包含所有要复制的对象,而不仅仅是更改了名称的对象。如果最初指定要复制的某个对象不再包含在该列表中,则在作业执行中也不会包含该对象。

缺省情况下,在运行时提供的任何作业变量不会保存到作业定义中。因此,如果再次运行该作业,则该作业将恢复为原始设置。可以通过在命令行或文件中使用保存更改参数来保存新作业变量值,以供将来使用。例如:
  • 在命令行提示符处,键入:datamove start -job_name job1 -log_level 99 -save_changes
  • 在 XML 文件中,指定: <saveChanges>true</saveChanges>
    保存更改参数语法在命令行和 XML 文件中使用时有所不同,如示例中所示。
如果启用保存更改,则修改的作业定义将另存为新的基本作业定义。修改作业变量值将重新构建作业计划,从而覆盖冻结作业步骤选项(如果启用了该选项)。然后,在当前运行中将使用新的作业计划。如果启用保存更改,则不会更改基本作业定义。作业计划将重新构建,并在当前运行中使用修改后的变量,但基本作业定义仍保持不变,所有后续执行仍会使用基本作业定义。
安全设置会以多种方式影响某些 start 命令选项:
  • 如果启用了安全设置,则用户必须具有写入权限,才能将保存更改参数设置为 true。
  • 如果用户不是作业所有者,则在 XML 中指定对象列表并使用 start 命令提交时必须提供源和目标 Teradata 系统用户名和密码。
  • 如果已启用安全设置,并且在修改后的 XML 中指定了job_security 以更改作业权限,则用户必须为 dcml_admin 或作业所有者,并且该用户必须提供所有权限,而不仅仅是修改后的权限。如果在 job_security 中指定了 job_owner,并且用户希望更改作业所有者,则用户必须为 dcml_admin

XML 文件示例

对于 start 命令,请键入 datamove start -f parameters.xml

在以下示例中,所示的 XML 文件用于定义作业 testStart,该作业使用 DSA 将表 fmt_inftest 1 复制到目标。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<dmCreate xmlns="http://schemas.teradata.com/dataMover/v2009" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://schemas.teradata.com/unity/datamover.xsd"> 
    <job_name>testStart</job_name> 
    <source_tdpid>dmdev</source_tdpid> 
    <source_user>dmuser</source_user> 
    <source_password>dbc</source_password> 
    <target_tdpid>dm-daemon2</target_tdpid> 
    <target_user>dmuser</target_user> 
    <target_password>dbc</target_password> 
    <data_streams>1</data_streams> 
    <source_sessions>1</source_sessions> 
    <target_sessions>1</target_sessions> 
    <overwrite_existing_objects>TRUE</overwrite_existing_objects> 
    <freeze_job_steps>true</freeze_job_steps> 
    <force_utility>DSA</force_utility> 
    <log_level>1</log_level> 
    <online_archive>false</online_archive> 
    <database selection="unselected"> 
        <name>testdb</name> 
        <table selection="included"> 
            <name>fmt_inf</name> 
            <validate_row_count>ALL</validate_row_count> 
        </table> 
            <table selection="included"> 
                <name>test1</name> 
                <compare_ddl>true</compare_ddl> 
            </table> 
    </database> 
</dmCreate> 
在下一个示例中,XML 文件经过修改并命名为 changedParameters.xml。您可以运行 start -job_name testStart -f changedParameters.xml - force_utility tptapi -sync 以运行一个作业,该作业会使用 TPTAPI 仅将表 test3 以及表 fmt_infi = 2 的记录复制到目标。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<dmEdit xmlns="http://schemas.teradata.com/dataMover/v2009" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://schemas.teradata.com/unity/DataMover.xsd">     
    <job_name>testStart</job_name> 
    <source_user>dmuser</source_user> 
    <source_password>dbc</source_password> 
    <target_user>dmuser</target_user> 
    <target_password>dbc</target_password> 
    <database selection="unselected"> 
        <name>testdb</name> 
        <table selection="included"> 
            <name>fmt_inf</name> 
            <validate_row_count>ALL</validate_row_count> 
            <compare_ddl>true</compare_ddl> 
            <sql_where_clause>
                <![CDATA[ where i = 2]]>
            </sql_where_clause> 
            <key_columns> 
                <key_column>i</key_column> 
            </key_columns> 
        </table> 
        <table selection="included"> 
            <name>test3</name> 
            <validate_row_count>ALL</validate_row_count> 
            <compare_ddl>true</compare_ddl> 
        </table> 
    </database> 
</dmEdit>