使用 Arcion 将数据从 Oracle 迁移到 Azure Cosmos DB for Apache Cassandra 帐户
适用对象: Cassandra
Azure Cosmos DB 中的 API for Cassandra 已成为在 Oracle 上运行的企业工作负荷的极佳选择,原因如下:
更高的可伸缩性和可用性: 它可以消除单一故障点,并提高应用程序的可伸缩性和可用性。
显著节省成本: 使用 Azure Cosmos DB 可以节省成本,其中包括 VM、带宽以及任何适用 Oracle 许可证的成本。 另外,你无需管理数据中心、服务器、SSD 存储、网络以及电力成本。
无管理和监视开销: 作为一个完全托管式的云服务,Azure Cosmos DB 消除了管理和监视大量设置所带来的开销。
可以通过多种方式将数据库工作负荷从一个平台迁移到另一个平台。 Arcion 工具可以安全可靠地执行从其他数据库到 Azure Cosmos DB 的零停机迁移。 本文介绍如何执行所需步骤,使用 Arcion 将数据从 Oracle 数据库迁移到 Azure Cosmos DB for Apache Cassandra。
注意
Arcion 提供的此产品/服务目前为 beta 版本。 有关详细信息,请通过 Arcion 支持与他们联系
使用 Arcion 进行迁移的优势
Arcion 的迁移解决方案按照分步方法迁移复杂的运营工作负载。 下面是 Arcion 的零停机迁移计划的一些重要方面:
它可以自动将业务逻辑(表、索引、视图)从 Oracle 数据库迁移到 Azure Cosmos DB。 无需手动创建架构。
Arcion 提供大规模并行数据库复制。 它可以使用名为“变更数据捕获 (CDC)”的技术,让源平台和目标平台在迁移过程中保持同步状态。 Arcion 可以通过 CDC 从源数据库 (Oracle) 持续拉取更改流,并将其应用到目标数据库 (Azure Cosmos DB)。
它具有容错功能,即使在系统的硬件或软件故障期间,也能准确地保证一次数据交付。
它可以在传输过程中使用安全方法(例如 TLS/SSL、加密)对数据进行保护。
它提供的服务可将以 PL/SQL 编写的复杂业务逻辑转换为 Azure Cosmos DB 中的等效业务逻辑。
迁移数据的步骤
本节介绍如何执行所需步骤,设置 Arcion 并将数据从 Oracle 数据库迁移到 Azure Cosmos DB。
在打算安装 Arcion 复制器的计算机中,添加安全证书。 此证书是 Arcion 复制器与指定的 Azure Cosmos DB 帐户建立 TLS 连接所需要的。 可以使用以下步骤来添加证书:
wget https://cacert.omniroot.com/bc2025.crt mv bc2025.crt bc2025.cer keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
可以在 Arcion 网站上请求演示版,以获取 Arcion 安装和二进制文件。 也可以向相关团队发送电子邮件。
在 CLI 终端设置源数据库配置。 使用
vi conf/conn/oracle.yml
命令打开配置文件,添加一个包含 Oracle 节点 IP 地址的逗号分隔的列表,并添加端口号、用户名、密码以及任何其他必需的详细信息。 以下代码显示一个示例配置文件:type: ORACLE host: localhost port: 53546 service-name: IO username: '<Username of your Oracle database>' password: '<Password of your Oracle database>' conn-cnt: 30 use-ssl: false
填充配置详细信息以后,保存并关闭该文件。
(可选)设置源数据库筛选器文件。 筛选器文件指定要迁移的架构或表。 使用
vi filter/oracle_filter.yml
命令打开配置文件,输入以下配置详细信息:allow: - schema: "io_Arcion" Types: [TABLE]
填充数据库筛选器详细信息以后,保存并关闭该文件。
接下来,设置目标数据库的配置。 在定义配置之前,请创建一个 Azure Cosmos DB for Apache Cassandra 帐户。 从数据中选择适当的分区键,然后创建密钥空间,以及用于存储迁移的数据的表。
在迁移数据之前,请将容器吞吐量提高到快速迁移应用程序所需的量。 例如,可将吞吐量提高到 100000 RU。 在开始迁移之前提高吞吐量可以缩短数据迁移时间。
必须在迁移完成后降低吞吐量。 可以根据存储的数据量以及每次操作所需的 RU 数,估算数据迁移后所需的吞吐量。 若要详细了解如何估算所需的 RU,请参阅预配容器和数据库的吞吐量和使用 Azure Cosmos DB Capacity Planner 估算 RU/秒这两篇文章。
在“连接字符串”窗格中获取“联系点、端口、用户名”,以及 Azure Cosmos DB 帐户的“主密码”。 需要在配置文件中使用这些值。
在 CLI 终端设置目标数据库配置。 使用
vi conf/conn/cosmosdb.yml
命令打开配置文件,添加一个包含主机 URI 的逗号分隔的列表,并添加端口号、用户名、密码以及其他必需的参数。 下面是一个示例,介绍了配置文件中的内容:type: COSMOSDB host: `<Azure Cosmos DB account's Contact point>` port: 10350 username: 'arciondemo' password: `<Your Azure Cosmos DB account's primary password>' max-connections: 30 use-ssl: false
接下来,使用 Arcion 迁移数据。 可以按“完全”或“快照”模式运行 Arcion 复制器:
“完全”模式 - 在此模式下,复制器会在迁移后继续运行,并侦听在源 Oracle 系统上发生的任何更改。 如果它检测到任何更改,目标 Azure Cosmos DB 帐户上会实时复制这些更改。
“快照”模式 - 在此模式下,可以执行架构迁移和一次性数据复制。 此选项不支持实时复制。
可以通过上述两种模式进行迁移,不会造成停机。
若要迁移数据,请在 Arcion 复制器 CLI 终端运行以下命令:
./bin/replicant full conf/conn/oracle.yaml conf/conn/cosmosdb.yaml --filter filter/oracle_filter.yaml --replace-existing
复制器 UI 显示复制进度。 完成架构迁移和快照操作以后,进度会显示 100%。 完成迁移后,可在目标 Azure Cosmos DB 数据库上验证数据。
由于你已使用“完全”模式进行迁移,因此可以执行多项操作,例如在源 Oracle 数据库上插入、更新或删除数据。 稍后可以验证它们是否已在目标 Azure Cosmos DB 数据库上实时复制。 迁移后,请务必降低为 Azure Cosmos DB 容器配置的吞吐量。
可以随时停止复制器,并使用 --resume 开关重启它。 复制会从停止的点继续,不会损害数据一致性。 以下命令演示如何使用 resume 开关。
./bin/replicant full conf/conn/oracle.yaml conf/conn/cosmosdb.yaml --filter filter/oracle_filter.yaml --replace-existing --resume