在缺省情况下,已部署的“捕获”和“应用”组件实例使用启动它们的用户的凭证。尽管这对于某些拓扑来说可能已经足够了,但在两种情况下必须使用备用凭证。
- 第一方案 - 备用用户凭证:数据库管理员(DBA)想要以用户 user1 身份登录,但希望实用程序使用用户 user2 来将数据从源数据库移至目标数据库。
- 第二方案 - 分布式环境:DBA 准备在 machine1 上运行实用程序。在另一台机器 machine2 上维护源或目标数据库。
要支持这些方案,您必须创建包含替代用户凭证(而不是当前用户凭证)的密码文件。由于不会在部署期间自动创建密码文件,所以您需要对这两个方案执行以下步骤:
- 准备一个文件,用来存储连接到源数据库时使用的用户标识和密码信息。在 DB2® 命令行窗口中输入以下命令,并将任何由 <place_holder_name> 标记的占位符替换成合适的值。
asnpwd INIT encrypt all using <password_file>. asnpwd 工具创建了一个空文件:<password_file>。
示例调用:asnpwd INIT encrypt all using password.aut
- 保存复制实用程序必须连接的各数据库的数据库访问信息 (用户标识、密码和数据库名称)。在 DB2 命令行窗口中输入以下命令,并将任何由 <place_holder_name> 标记的占位符替换成合适的值。
asnpwd ADD alias <DB_name> ID <user_ID> PASSWORD <Password> using <password_file>。
如果需要,对每个数据库重复该步骤。程序对您输入的信息进行加密,并将其保存在 <password_file> 中。
调用示例:
- asnpwd ADD alias STMD7 id MYUSRID password MYPASSWRD using password.aut
- asnpwd ADD alias RTMD7 id MYUSRID2 password MYPASSWRD2 using password.aut
- 通过修改生成的可执行文件启动脚本(StartCapture 和 StartApply)来更新实用程序配置文件。您将密码文件参数参数添加到复制实用程序的命令行调用。该实用程序使用存储在指定文件中的加密用户凭证,而非缺省凭证。密码文件必须位于 CAPTURE_PATH(或 APPLY_PATH)参数定义的工作目录中。
更改示例:
- “捕获”启动脚本的原文件内容:db2cmd asncap CAPTURE_SERVER=stmd7
CAPTURE_SCHEMA=CAPTURE_1 CAPTURE_PATH="c:\tmp\state_capture_log"
- “捕获”启动脚本的已修改文件内容:db2cmd asncap CAPTURE_SERVER=stmd7 CAPTURE_SCHEMA=CAPTURE_1 CAPTURE_PATH="c:\tmp\state_capture_log" pwdfile="password.aut"
- “应用”启动脚本的原文件内容:db2cmd asnapply APPLY_QUAL=Apply_1
CONTROL_SERVER=RTMD7 APPLY_PATH="C:\tmp\apply"
- “应用”启动脚本的已修改文件内容:db2cmd asnapply APPLY_QUAL=Apply_1
CONTROL_SERVER=RTMD7 APPLY_PATH="C:\tmp\apply" pwdfile="password.aut"
- 将在步骤 1 和步骤 2 中创建的 <password_file> 复制到适当的目录中。复制实用程序试图在启动时打开密码文件。如果由 CAPTURE_PATH(或 APPLY_PATH)参数标识的工作目录中不存在文件 <password_file>,则会出错。如果未指定任何工作目录参数,则实用程序会尝试在当前工作目录中找出该文件。
要了解有关 DB2 实用程序的信息,请参阅 DB2 SQL 复制指南和参考。