如何为 Azure Database for PostgreSQL 灵活服务器中的迁移服务设置 Azure CLI

Azure CLI 是一组用于在 Azure 服务中创建和管理资源的命令。 它提供与 Azure 门户相同的功能,但针对想要在命令行环境中工作的用户进行了优化。 若要开始使用 Azure CLI 进行迁移,需要在本地计算机上安装 Azure CLI。

先决条件

  • 安装 Azure CLI:根据操作系统,下载并安装 Azure CLI。 它适用于 Windows、macOS 和 Linux。

  • Azure CLI 安装指南:按照官方 Azure 文档中提供的说明安装 Azure CLI - 如何安装 Azure CLI

  • 检查 Azure CLI 版本:确保 Azure CLI 版本至少为 2.56.0 或更高版本,因为迁移服务需所必需的。 使用 az --version 命令检查当前版本。

  • 登录到 Azure:安装后,执行 az login 进行身份验证。 这会打开默认浏览器,以使用 Azure 凭据完成登录过程。

这些步骤为使用 Azure CLI 有效管理 Azure Database for PostgreSQL 中的迁移服务准备好环境。 请始终参阅最新的 Azure 文档,了解安装过程的任何更新或更改。

为迁移服务设置 CLI 命令

所有 CLI 命令都以 az postgres flexible-server migration 开头。 还提供了 help 语句,以帮助你理解各种选项,并为 CLI 命令定义正确的语法。

安装 CLI 后,打开命令提示符并使用以下命令登录到 Azure 帐户。

az login

Migrate 命令

迁移服务提供以下命令来帮助将 PostgreSQL 实例迁移到 Azure Database for PostgreSQL 灵活服务器。

Help 命令

Azure CLI 中的 --help 命令是一个有价值的选项,提供有关命令及其子命令的详细文档,包括操作所需的谓词。 --help 命令显示 Azure Database for PostgreSQL 中迁移服务所需的命令及其关联操作。

az postgres flexible-server migration --help

输出将指导你完成使用 Azure CLI 有效管理数据库迁移所需的必要步骤和参数。

创建命令

Azure CLI 中的 az postgres flexible-server migration create 命令用于启动新的迁移工作流。 它有助于将数据库从源 PostgreSQL 实例迁移到目标 Azure Database for PostgreSQL 灵活服务器实例。 此命令设置必要的参数和配置,以确保迁移过程顺利、高效。

有关详细信息,请参阅 az postgres flexible-server migration create

List 命令

az postgres flexible-server migration list 命令用于列出对 Azure Database for PostgreSQL 目标所做的所有迁移尝试。 此命令可概述已启动的迁移,使你能够跟踪每次迁移尝试的状态和详细信息。

有关详细信息,请参阅 az postgres flexible-server migration list

Show 命令

az postgres flexible-server migration show 命令可帮助监视正在进行的迁移,并提供迁移的当前状态和子状态。 这些详细信息包括有关迁移的当前状态和子状态的信息。

有关详细信息,请参阅 az postgres flexible-server migration show

部分可能的迁移状态:

迁移状态

状态 说明
InProgress 正在设置迁移基础结构,或者正在进行实际数据迁移。
已取消 迁移已被取消或删除。
已失败 迁移失败。
验证失败 验证失败。
成功 迁移成功并已完成。
WaitingForUserAction 仅适用于联机迁移。 等待用户操作以执行直接转换。

迁移子状态

子状态 说明
PerformingPreRequisiteSteps 正在设置基础结构以进行数据迁移。
验证正在进行 正在进行验证。
MigratingData 数据迁移正在进行中。
CompletingMigration 迁移处于完成的最后阶段。
已完成 迁移已完成。
已失败 迁移失败。

验证子状态

子状态 说明
已失败 验证失败。
成功 验证成功。
警告 验证处于警告状态。

更新命令

az postgres flexible-server migration update 命令用于管理迁移到 Azure Database for PostgreSQL 灵活服务器的迁移过程。 具体而言,它可用于:

  • 执行直接转换:这通过将数据库流量从源服务器切换到目标灵活服务器来完成迁移过程

    • 完成基础数据迁移后,迁移任务进入 WaitingForCutoverTrigger 子状态。 在此状态下,用户可以通过在迁移网格中选择迁移名称或通过 CLI 从门户触发直接转换。
    • 在启动直接转换之前,请务必确保:
      • 已停止写入源
      • latency 值减小为 0 或接近 0
      • latency 值表示目标上次与源同步的时间。 此时,可以停止写入源并启动直接转换。 如果源中存在大量流量,可以先停止写入,以便 Latency 可以接近 0,然后启动直接转换。
      • 直接转换操作会将源中所有挂起的更改应用到目标,并完成迁移。 如果触发“直接转换”,则即使 Latency 非零,复制也会在该时间点之前停止。 然后会在目标上应用直接转换点之前源中的所有数据。 假设直接转换点处的延迟为 15 分钟,则会向目标应用过去 15 分钟内的所有更改数据。
  • 取消迁移:如果需要,使用此选项可停止迁移过程

  • 在源处设置逻辑复制:当源服务器是 Azure Database for PostgreSQL 单一服务器时,这非常有用,因为它为将数据复制到灵​​活服务器做好了准备

有关详细信息,请参阅 az postgres flexible-server migration update

总结

下表汇总了迁移命令使用的参数:

参数 相关命令 说明
subscription create、list、show、update PostgreSQL 灵活服务器的订阅 ID
resource-group create、list、show、update PostgreSQL 灵活服务器的资源组
name create、list、show PostgreSQL 灵活服务器的名称
migration-name create、show、update 尝试到灵活服务器的迁移的唯一标识符。 此字段仅接受字母数字字符,不接受除连字符 (-) 之外的任何特殊字符。 该名称不能以 - 开头,并且到灵活服务器目标的任何两次迁移都不能具有相同名称。
filter 列表 若要筛选迁移,支持两个值 – Active 和 All
help create、list、show、update 提供有关每个命令的信息。
migration-mode create 这是一个可选参数。 允许的值为 offline、online。 默认值:脱机。
migration-option create 允许在触发迁移之前执行验证。 默认值为 ValidateAndMigrate。 允许的值为 - Migrate、Validate、ValidateAndMigrate。
properties create JSON 文件的绝对路径,其中包含有关源、目标服务器、要迁移的数据库、SSL 模式、定义源类型的信息

JSON 文件的详细信息

az postgres flexible-server migration create 命令需要 JSON 文件路径作为 --properties 参数的一部分,其中包含迁移的配置详细信息,例如源数据库服务器资源 ID、管理员凭据、要迁移的数据库和其他重要设置。 以下是不同的属性:

属性名称 说明
sourceDbServerResourceId 本地、虚拟机 (VM)、基于云的 PostgreSQL 服务格式的源服务器详细信息 - <<hostname or IP address>>:<<port>>@<<username>>。 如果源服务器是 Azure Database for PostgreSQL 单一服务器,则资源 ID 采用 /subscriptions/<<Subscription ID>>/resourceGroups/<<Resource Group Name>>/providers/Microsoft.DBforPostgreSQL/servers/<<PostgreSQL Single Server name>> 格式
adminCredentials 此参数列出了源服务器和目标 PostgreSQL 灵活服务器的管理员用户的密码。 这些密码有助于对源服务器和目标服务器进行身份验证。 它包括两个子属性,sourceServerPasswordtargetServerPassword
targetServerUserName 默认值是在创建 PostgreSQL 目标灵活服务器期间创建的管理员用户,所提供的密码用于对此用户进行身份验证。
dbsToMigrate 指定要迁移到灵活服务器的数据库的列表。 一次最多可以包含八个数据库名称。 以数组格式提供数据库列表。
overwriteDBsInTarget 当设置为 true(默认值)时,如果目标服务器碰巧具有与尝试迁移的数据库同名的现有数据库,则迁移服务会自动覆盖该数据库
migrationRuntimeResourceId 如果需要使用运行时服务器进行迁移,则为必需。 格式是:/subscriptions/<<Subscription ID>>/resourceGroups/<<Resource Group Name>>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<<PostgreSQL Flexible Server name>>
sourceDBServerFullyQualifiedDomainName 仅当源是单一服务器并且位于自定义 DNS 服务器、自定义 DNS 命名空间、自定义 FQDN 之后,或者需要通过 IP 访问时才是必需的。
targetDBServerFullyQualifiedDomainName 仅当目标位于自定义 DNS 服务器、自定义 DNS 命名空间、自定义 FQDN 之后或需要通过 IP 访问时才是必需的。
sourceType 必需参数。 值可以是 on-premises、AWS_RDS、AWS_AURORA、GCP_CloudSQL、AzureVM、PostgreSQLSingleServer
sslMode 用于迁移的 SSL 模式。 对于 PostgreSQLSingleServer,SSL 模式为 VerifyFull,对于其他源类型则为 Prefer/Require。