原文地址:Zero Downtime Migration – The Pro Tips
原文作者:Daniel Over
本篇文章是关于Oracle零停机迁移的专业提示,共8个。
专业提示 1:日志文件
如果有什么事情发生了,你在哪里可以找到日志文件?在 ZDM 服务主机上:
- $ZDM_BASE/chkbase/scheduled
- $ZDM_BASE/crsdata/<hostname>/rhp
在源主机和目标主机上,您还可以找到包含 ZDM 执行的所有命令的附加日志文件:
$ORACLE_BASE/zdm/zdm_<db_unique_name>_<zdm_job_id>/zdm/log
其他来源:
- 警报日志
- 数据泵进程跟踪文件 DM00
- 数据泵日志文件
目录对象引用的目录
$ORACLE_HOME/rdbms/log/<PDB GUID>
专业提示 2:故障排除
当您进行故障排除时,有时删除所有日志文件并让 ZDM 重新开始很有用。一些日志文件变得非常大并且难以阅读,所以我通常停止 ZDM 服务,删除所有日志文件,然后重新启动 ZDM 和我的故障排除。但只有在没有其他作业运行时才执行此操作:
[zdmuser@zdmhost]$ $ZDM_HOME/bin/zdmservice stop
[zdmuser@zdmhost]$ rm $ZDM_BASE/crsdata/*/rhp/rhpserver.log*
[zdmuser@zdmhost]$ rm $ZDM_BASE/chkbase/scheduled/*
[zdmuser@zdmhost]$ $ZDM_HOME/bin/zdmservice start
还有几个章节是关于故障排除的:
- Oracle 零停机迁移 21 .1 发行说明 – 故障排除
- Oracle 零停机迁移 21 .1 发行说明 – 已知问题
- 使用零停机迁移迁移到 Oracle 云 - 故障排除
专业提示 3:中止工作
有时完全重新启动迁移很有用。如果数据库迁移已在 ZDM 中注册,则不允许您指定另一个迁移作业。首先,您必须中止现有作业,然后才能输入新的迁移作业。
[zdmuser@zdmhost]$ $ZDM_HOME/bin/zdmcli abort job -jobid n
现在,您可以zdmcli migrate database再次使用命令。
专业提示 4:显示所有阶段
ZDM 迁移分为多个阶段,您可以在每个阶段之后暂停 ZDM。该文档包含所有阶段的列表,但您也可以直接从 ZDM 工具本身获取它以用于特定的迁移作业:
[zdmuser@zdmhost]$ $ZDM_HOME/bin/zdmcli migrate database \
-rsp ~/migrate.rsp
... \
... \
... \
-listphases
专业提示 5:添加自定义脚本
您可以添加自己的自定义脚本以在迁移作业的某个阶段之前或之后运行。您可以使用-listphases命令(如上所述)来获取所有阶段的列表。然后决定你的脚本应该在那个阶段之前还是之后运行。这称为动作插件。您可以将它们捆绑在一个模板中,以使其更易于重复使用。如果这是您需要的东西,您应该深入研究文档。
如果以自治数据库为目标,则不允许在目标数据库主机上执行脚本。相反,您可以使用 .sql 脚本。
脚本启动的环境有一些您可以使用的环境变量,例如:
- 数据库 (ZDM_SRCDB)
- Oracle 主页 (ZDM_SRCDBHOME)
- ZDM 阶段 (RHP_PHASE)
专业提示 6:GoldenGate 健康检查
您可以在运行提取和复制过程的源数据库和目标数据库上使用运行状况检查脚本。它将为您的故障排除经验提供宝贵的信息,如果您需要联系 My Oracle Support,最好运行并附加运行状况检查。它类似于 AWR 报告,但包含特定于 Oracle GoldenGate 复制的信息。
通过以下方式生成报告:
- 在数据库中安装对象:ogghc_install.sql
- 执行健康检查:ogghc_run.sql
- (可选)清理对象:ogghc_uninstall.sql
对于 GoldenGate 微服务架构,请在 GoldenGate 集线器上找到脚本:
/u01/app/ogg/oraclenn/lib/sql/healthcheck
并在源数据库和目标数据库中运行脚本。
专业提示 7:从单实例转换为 RAC
ZDM 的一个有用特性是它可以将单实例数据库转换为 OCI 中的 RAC 数据库。这样做非常简单。您唯一需要做的就是将目标占位符数据库创建为 RAC 数据库。ZDM 将检测到这一点并处理其余部分。
最后提一下,如果源数据库是 RAC One Node 或 RAC,那么目标数据库必须是 RAC 数据库。请务必将目标占位符数据库创建为 RAC。
专业提示 8:在自治数据库中获取数据泵日志文件
当您导入自治数据库时,数据泵日志文件存储在目录DATA_PUMP_DIR 中。但是在自治数据库中,您无法访问底层文件系统,那么如何获取日志文件呢?一种方法是将日志文件上传到对象存储中。
ZDM 将创建一组凭据作为迁移工作流程的一部分。查找凭据的名称(或使用 创建新凭据DBMS_CLOUD):
select owner, credential_name, username, enabled from dba_credentials;
查找数据泵日志文件的名称:
select * from dbms_cloud.list_files(‘DATA_PUMP_DIR’);
上传它。如果您在生成 URI 时需要帮助,请查看文档:
begin
DBMS_CLOUD.PUT_OBJECT (
credential_name => '<your credential>',
object_uri => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/',
directory_name => 'DATA_PUMP_DIR',
file_name => '<file name>');
end;
/
用于下载数据泵日志文件的 OCI 控制台。




