暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译]数据库迁移到 Azure for PostgreSQL

原创 懂那个董 2022-06-29
431

原文地址:Database Migration to Azure for PostgreSQL
原文作者:Vladimir Bilyak

许多组织选择 Azure 云是因为其丰富的基础架构。在这篇文章中,我们将探讨将数据库迁移到 Azure PostgreSQL 的不同方法。

PostgreSQL 长期以来一直是非常流行的开源关系数据库管理系统。随着迁移到 SAAS 平台的长期趋势,许多组织选择 Azure 云,因为它提供了丰富的基础架构,包括 200 多个应用程序。这就是为什么将数据库迁移到 Azure for PostgreSQL 是一个合理的选择。

本文探讨了三种迁移类型的基本方法:

  • Azure 数据库的不同引擎之间
  • 从本地 PostgreSQL 到 Azure for PostgreSQL
  • 从不同的本地数据库到 Azure for PostgreSQL

Azure 数据工厂

如果源数据库和目标数据库都托管在同一资源组和位置下的同一 Azure 帐户中,我们可以通过 Azure 数据工厂根据提取-传输-加载 (ETL) 方法运行迁移。必须在与数据库实例相同的资源组和区域中创建该工具的实例。在运行 ETL 数据库之前,专家必须完成准备任务,例如探索和评估源、设计迁移规则和其他步骤,以构建最佳迁移方法。

尽管使用 Azure 数据工厂进行数据库迁移是一个简单的过程,但它包含许多设置迁移过程的步骤:

  • Azure 数据工厂门户并选择“复制数据”选项
  • 输入任务名称和执行频率(一次性迁移为“Run once now”)
  • 选择源数据库,它是我们任务的 Azure SQL
  • 提供凭据以从 Azure 数据工厂连接到 Azure SQL 数据库。单击“测试连接”按钮以确保连接可用。
  • 选择要迁移的表或构建自定义查询以重新组织数据
  • 指定目标数据库,在我们的示例中,它是 Azure Database for PostgreSQL
  • 提供凭据以从 Azure 数据工厂连接到 Azure Database for PostgreSQL。单击“测试连接”按钮以确保连接可用。
  • 下一步是映射表,这是整个过程的真正瓶颈,因为系统无法自动化它。即使源和目标都有同名的表,您也必须手动指定等价。
  • 最后,我们可以设置数据一致性验证、日志记录和其他与迁移性能和数据完整性相关的参数

image.png

任务执行完成后,数据将从 Azure SQL 数据库迁移到 Azure Database for PostgreSQL。

Azure 数据库迁移服务

如果迁移源是本地 PostgreSQL 服务器,则可以使用 Azure 数据库迁移服务 (DMS) 将数据库迁移到 Azure for PostgreSQL。在开始数据库迁移之前,您需要检查以下先决条件:

  • Azure for PostgreSQL 的版本不低于本地 PostgreSQL 的版本
  • 通过 ExpressRoute 或 VPN 设置与本地 PostgreSQL 的连接
  • Windows 防火墙不会阻止 Azure DMS 访问源 PostgreSQL 服务器的 TCP 端口(默认为 5432)
  • 为 Azure Database for PostgreSQL 创建防火墙规则,以允许 Azure 数据库迁移服务访问目标数据库(请参阅下面的相关屏幕截图)
  • 从 Azure Cloud Shell 安装并运行 2.18 或更高版本的 CLI,可以通过单击 Azure 门户右上角的 Cloud Shell 按钮来启动。

现在一切都已设置并准备好进行数据库迁移。按照以下步骤将架构、索引和存储过程从本地 PostgreSQL 服务器迁移到 Azure for PostgreSQL:

  • 使用源数据库的模式创建转储文件:
pg_dump -o -h host_name -U user_name -d db_name -s > output_schema.sql
复制
  • 将转储文件中的模式导入目标数据库:
psql -h host_name -U user_name -d db_name < output_schema.sql
复制
  • 使用数据库迁移服务的同步扩展迁移数据

通过 Azure 数据库迁移服务进行的数据库迁移过程的详细信息在Microsoft Azure 官方文档中指定。

第三方工具

将 MySQL、Oracle 或 IBM DB2 等不同的本地数据库迁移到 Azure for PostgreSQL 时,使用为此目的设计的特殊自动化工具是合理的。例如, Intelligent Converters 开发的MySQL 到 PostgreSQL 转换器可以简化本地和云 MySQL 实例到 Azure for PostgreSQL 的迁移。

MySQL 到 PostgreSQL 转换器的主要特点:

  • 支持 PostgreSQL(从 v9.0 开始)和 MySQL 的所有版本、fork 和 SAAS 变体,包括 Heroku、Azure、MariaDB 和 Percona
  • 迁移表、数据、索引、约束和视图
  • 支持 PostgreSQL 的 SSL 连接
  • 通过 SELECT 查询过滤和预处理源数据
  • 将 MySQL 数据库迁移到包含 SQL 语句的 PostgreSQL 转储文件的选项,以创建数据库对象并加载数据
  • 将现有 PostgreSQL 数据库与源数据合并或同步的选项
  • 命令行支持

尽管该产品具有直观易用的界面,但在配置与 Azure for PostgreSQL 的远程连接时有两个重要的控制点。

首先,确保您的机器的 IP 地址在 Azure 上允许的 IP 列表中:

image.png

  • 打开 Microsoft Azure 仪表板并单击要访问的服务器名称
  • 单击窗口左侧菜单中的“连接安全”项
  • 确保“允许访问 Azure 服务”控件为“是”
  • 如果“添加当前客户端 IP 地址”链接处于活动状态,则意味着您的 IP 地址不在列表中。单击链接以添加它。

下一步是获取 Azure PostgreSQL 服务器的名称并检查 SSL 状态:

  • 返回 Microsoft Azure 仪表板并单击要使用的数据库服务器
  • 找到“服务器名称”项,在我们的示例中,它是“ictest3.postgres.database.azure.com”(请参见下面屏幕截图中标记为红色的项)

image.png

如果 Azure for PostgreSQL 配置为启用了“SSL 强制状态”,则需要指定 SSL 证书 BaltimoreCyber​​TrustRoot.crt,该证书可从 Microsoft Azure 官方站点下载。要将 MySQL 中的证书指向 PostgreSQL 转换器,请单击“连接到 PostgreSQL 服务器”向导页面上的“高级…”按钮,然后在对话框的“CA 证书”字段中输入文件的路径。

结论

本文探讨了将数据库迁移到 Azure for PostgreSQL 的三个选项,其中包括:

  • Azure 数据工厂可用于在两个 Azure 数据库实例之间迁移
  • Azure 数据库迁移服务 (DMS) 将数据库从本地 PostgreSQL 服务器迁移到 Azure for PostgreSQL
  • 只需单击几下鼠标按钮,MySQL 到 PostgreSQL 转换器等第三方数据库迁移工具即可将任何本地或云数据源迁移到 Azure for PostgreSQL
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论