本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用日志传送将适用于 LUW 的 Db2 迁移 EC2 到 Amazon 以减少中断时间
Feng Cai、Ambarish Satarkar 和 Saurabh Sharma,Amazon Web Services
摘要
当客户将其适用于 LUW 的 IBM Db2(Linux、UNIX 和 Windows)工作负载迁移到亚马逊网络服务 (AWS) 时,使用带有自带许可 (BYOL EC2) 模式的亚马逊弹性计算云 (Amazon) 是最快的方法。但是,将大量数据从本地 Db2 迁移到 AWS 可能是一项挑战,尤其是在停机时间较短的情况下。许多客户尝试将停机窗口设置为 30 分钟以下,这样留给数据库本身的时间就很少了。
此模式涵盖如何使用事务日志传送在较短的中断窗口内完成 Db2 迁移。此方法适用于小端 Linux 平台上的 Db2。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account
在与本地文件系统布局相匹配的 EC2 实例上运行的 Db2 实例
实例可以访问的亚马逊简单存储服务 (Amazon S3) Service 存储桶 EC2
AWS 身份和访问管理 (IAM) 策略和角色,用于对 Amazon S3 进行编程调用
Amazon EC2 和本地服务器上的时区和系统时钟同步
通过 AWS Site-to-SiteVPN
或 AWS Di rect Connect 连接到 AWS 的本地网络
限制
Db2 本地实例和 Amazon EC2 必须位于同一个平台系列
上。 必须记录 Db2 本地工作负载。若要阻止任何未记录的事务,请在数据库配置中设置
blocknonlogged=yes
。
产品版本
适用于 LUW 版本 11.5.9 及更高版本的 Db2
架构
源技术堆栈
Linux 上的 Db2 x86_64
目标技术堆栈
Amazon EBS
Amazon EC2
AWS Identity and Access Management (IAM)
Amazon S3
AWS Site-to-Site VPN 或直接连接
目标架构
下图显示了一个在本地运行的 Db2 实例,该实例通过虚拟专用网络 (VPN) 连接到 Amazon 上的 Db2。 EC2虚线代表您的数据中心和 Amazon Web Services Cloud 之间的 VPN 隧道。

工具
Amazon Web Services
AWS 命令行界面(AWS CLI)是一种开源工具,它可帮助您通过命令行 Shell 中的命令与 Amazon Web Services 交互。
AWS Direct Connect 通过标准的以太网光纤电缆将内部网络链接到 Direct Connect 位置。通过此连接,您可以直接创建连接到公有 Amazon Web Services 的虚拟接口,同时绕过网络路径中的互联网服务提供商。
亚马逊弹性区块存储 (Amazon EBS) Block Store 提供块级存储卷,用于亚马逊弹性计算云 (Amazon) 实例。 EC2
亚马逊弹性计算云 (Amazon EC2) 在 AWS 云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。
AWS Identity and Access Management (AWS IAM) 通过控制验证和授权使用您 AWS 资源的用户,帮助您安全地管理对您 AWS 资源的访问。
Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。
AWS Site-to-Site VPN 可帮助您在您在 AWS 上启动的实例和您自己的远程网络之间传递流量。
其他工具
db2cli
是 Db2 交互式 CLI 命令。
最佳实践
在目标数据库上,使用 Amazon S3 网关端点访问 Amazon S3 中的数据库备份映像和日志文件。
在源数据库上,使用 PrivateLink 适用于 Amazon S3 的 AWS 将数据库备份映像和日志文件发送到 Amazon S3。
操作说明
Task | 描述 | 所需技能 |
---|---|---|
设置环境变量。 | 此模式使用以下名称:
您可更改它们以适应您的环境。 | 数据库管理员 |
Task | 描述 | 所需技能 |
---|---|---|
设置 AWS CLI。 | 要下载并安装最新版本的 AWS CLI,请运行以下命令:
| Linx 管理员 |
设置 Db2 归档日志的本地目标。 | 要使 Amazon EC2 上的目标数据库与本地源数据库保持同步,需要从源数据库检索最新的事务日志。 在此设置中,
| 数据库管理员 |
运行在线数据库备份。 | 运行在线数据库备份,并将其保存到本地备份文件系统:
| 数据库管理员 |
Task | 描述 | 所需技能 |
---|---|---|
创建 S3 存储桶。 | 为本地服务器创建 S3 存储桶,以便将备份 Db2 映象和日志文件发送到 AWS 上。Amazon 也将访问该存储桶 EC2:
| AWS 系统管理员 |
创建一个 IAM 策略。 | 该
要创建策略,请使用以下 AWS CLI 命令:
JSON 输出显示了策略的亚马逊资源名称 (ARN),其中
| AWS 管理员、AWS 系统管理员 |
将 IAM 策略附加到 EC2 实例使用的 IAM 角色。 | 在大多数 AWS 环境中,正在运行的 EC2 实例都由您的系统管理员设置的 IAM 角色。如果未设置 IAM 角色,请创建该角色并在 EC2 控制台上选择 M odify IAM 角色以将该角色与托管 Db2 数据库的 EC2 实例相关联。将 IAM 策略附加到带有策略的 IAM 角色 ARN:
附加策略后,任何与 IAM 角色关联的 EC2 实例都可以访问 S3 存储桶。 | AWS 管理员、AWS 系统管理员 |
Task | 描述 | 所需技能 |
---|---|---|
在本地 Db2 服务器上配置 AWS CLI。 | 使用在前面的步骤中
| AWS 管理员、AWS 系统管理员 |
将备份映象发送到 Amazon S3。 | 早些时候,联机数据库备份已保存至
| AWS 管理员、迁移工程师 |
将 Db2 存档日志发送至 Amazon S3。 | 将本地 Db2 存档日志与 Amazon 上的目标 Db2 实例可以访问的 S3 存储桶同步: EC2
使用 cron 或其他计划工具定期以运行此命令。频率取决于源数据库归档事务日志文件的频率。 | AWS 管理员、迁移工程师 |
Task | 描述 | 所需技能 |
---|---|---|
创建 PKCS12 密钥库。 | Db2 使用公钥加密标准 (PKCS) 加密密钥库,保障 AWS 访问密钥的安全。创建密钥库并配置源 Db2 实例以使用它:
| 数据库管理员 |
创建 Db2 存储访问别名。 | 要创建存储访问别名
例如,您的脚本可能如下所示:
| 数据库管理员 |
设置暂存区域。 | 默认情况下,Db2 使用 我们还建议使用
| 数据库管理员 |
从备份映象恢复数据库。 | EC2 从 S3 存储桶中的备份映像还原 Amazon 上的目标数据库:
| 数据库管理员 |
前滚数据库。 | 恢复完成后,目标数据库进入向前滚挂起状态。配置
启动数据库向前滚动:
此命令处理已传输至 S3 存储桶的所有日志文件。根据本地 Db2 服务器上 | 数据库管理员 |
Task | 描述 | 所需技能 |
---|---|---|
将目标数据库联机。 | 在割接窗口中,执行下列操作之一:
将最后一个事务日志同步到 Amazon S3 后,最后一次运行该
将目标数据库联机,并将应用程序连接指向 Amazon EC2 上的 Db2。 | 数据库管理员 |
故障排除
事务 | 解决方案 |
---|---|
如果多个数据库在不同的主机 (DEV、QA、PROD) 上具有相同的实例名和数据库名称,则备份和日志可能会进入同一个子目录。 | 为 DEV、QA 和 PROD 使用不同的 S3 存储桶,并添加主机名作为子目录前缀以避免混淆。 |
如果在同一位置有多个备份映像,则恢复时会出现以下错误:
| 在
|