You need to enable JavaScript to run this app.
文档中心
数据库传输服务

数据库传输服务

复制全文
下载 pdf
源为公有网络 PostgreSQL
迁移至专有网络 PostgreSQL
复制全文
下载 pdf
迁移至专有网络 PostgreSQL
本场景介绍如何在数据库传输服务 DTS 控制台创建公有网络 PostgreSQL 迁移至专有网络 PostgreSQL 任务。
前提条件
  • 已在公网环境中自行搭建 PostgreSQL 实例和数据库。
  • 按需设置目标端信息,具体如下所示:
  • 在需要使用专线实现数据迁移时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接
  • 若需要迁移 AI 原生数据库管理平台(AIDAP) 中托管的 PostgreSQL 引擎实例的数据时:
  • AIDAP 托管的 Supabase 引擎实例:
  • 创建数据库分支。详细步骤,请参见创建分支
  • 已获取 DTS 连接所需的主机地址、端口、账号、密码等连接信息。详细步骤,请参见获取算力的连接信息
  • AIDAP 托管的标准 PostgreSQL 引擎实例:
  • 创建数据库分支。详细步骤,请参见创建分支
  • 已获取 DTS 连接所需的主机地址、端口、账号、密码等连接信息。详细步骤,请参见获取算力的连接信息
  • 已确认源端和目标端的网络连通性与服务可用性。
  • (可选)根据预检查项中的说明,检查源端和目标端中各迁移对象。更多详情,请参见预检查项(PostgreSQL)
注意事项
  • 当源端为自建 PostgreSQL 时,您需要关注以下信息:
  • 迁移时,如果源端进行主备切换,会导致迁移任务失败。
  • 在迁移时如果源端执行了重启操作,迁移任务会暂时中断并自动尝试修复。如果任务长时间没恢复,请提交工单联系技术支持。
  • 为实时保障数据的一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
  • 目前仅支持迁移主库的数据,暂不支持从库数据的迁移。
  • 迁移对象选择的粒度为库或表。若迁移对象选择的是表,则其他对象例如视图、触发器、函数或存储过程等,不会被迁移至目标库。
  • 在进行 PostgreSQL 迁移任务时,PostgreSQL 的源端数据库账号需在源库创建触发器、函数等对象。因此,在迁移过程中,请勿修改该账号在源库所创建的触发器、函数、内部表等对象的访问权限。
  • 由于全量数据迁移会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量迁移完成后目标库的集合存储空间会比源库的集合存储空间大。
  • 当前通过专线实现数据迁移功能属于邀测阶段,您可以提交工单联系技术人员实现数据迁移。
  • 在迁移过程中,如果源端有 CREATE TABLERENAME TABLE 操作,请在配置阶段选择迁移对象时,勾选该表所在的整库或该表 RENAME 到的整库,否则新建的表或 RENAME 后的表不会迁移到目标端。
  • 为保证数据迁移的性能和迁移任务的稳定性,源库的普通触发器、事件触发器、RULE、互斥约束、外键约束、检查约束、Domain 的约束、设置 Sequence 值会在增量迁移结束后才进行迁移。
  • 在预检查时,如果选择忽略告警并启动迁移任务,可能会导致数据不一致,带来业务风险。
  • 在创建专有网络数据迁移任务的过程中,系统会默认在您选择的私有网络内创建数张网卡,网卡会默认挂载到您选择的子网上。网卡的名称格式为 dts_shuttle_********
  • 在数据迁移的过程中,若遇到目标库中已存在同主键值或唯一键的情况,DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。当数据进行冲突覆盖时,如果目标库中存在同名表,可能会导致数据不一致等问题,具体如下所示。建议您通过表名映射的方式、删除或重命名目标库中同名表的方式避免数据不一致等问题降低业务风险。
  • 表结构一致时:迁移的数据将覆盖目标表中与源库主键或唯一键的值相同的记录。
  • 表结构不一致时:可能会导致无法初始化数据,只能迁移部分列数据。
使用限制
应用限制
类型
说明
源端
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移的速率。
  • 待迁移的表需具备主键或唯一非空约束,且字段具有唯一性,否则可能会导致数据不一致。
  • 待迁移对象的数据库或表名不可包含问号(?),否则会导致迁移任务失败。
  • 单任务中表的数量建议不超过 2 万,Schema 的数量不超过 50 个。当有大量库表需要迁移时,建议拆分为多个任务。
  • 如需进行增量迁移,WAL 日志的参数要求:
  • 需开启 WAL 日志功能,并设置参数 wal_levellogical
  • WAL 日志至少要保留 24 小时,建议保留 7 天以上的日志,否则 DTS 可能因无法获取日志从而导致任务失败,某些情况下也可能导致数据丢失。
其他
  • 单个迁移任务只能迁移一个数据库,当有多个数据库需要迁移时,您可以为每个数据库配置都配置一个迁移任务。
  • 建议源库和目标库的 PostgreSQL 版本保持一致,或者从低版本迁移至高版本以保障兼容性。如果是高版本迁移至低版本,可能存在数据库兼容性或数据丢失问题。
  • 在增量数据迁移过程中,如果迁移对象的粒度是模式(schema),那么需要确保待迁移表的表级复制标识 REPLICA IDENTITY 设置为 FULL。如果在待迁移的模式中创建了新表或使用了 RENAME 命令重建了待迁移的表,那么您需要在向该表写入数据之前执行 ALTER TABLE schema.table REPLICA IDENTITY FULL; 命令。
说明
执行 ALTER TABLE schema.table REPLICA IDENTITY FULL; 命令时,需将命令中的 schematable 替换成真实的 schema 名和表名。
  • 增量数据迁移期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。
说明
  • 当释放迁移任务或迁移任务失败时,DTS 会主动清理 replication slot。
  • 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时数据库传输服务 DTS 会占用源库和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行 INSERT 操作,导致目标库的表产生碎片,因此全量迁移完成后目标库的表存储空间会比源库的表存储空间大。
  • 迁移前请确认源库和目标库字符串的一致性,否则可能会导致预检查失败。
操作限制
  • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的 DDL 操作,否则数据迁移任务会失败。
  • 当仅执行全量数据迁移时,请勿向源库中写入新的数据,否则将导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
数据库最小权限策略
用于数据迁移的账号需具备以下账号权限:
  • 源库账号需要具有 superuser 权限,以便于创建逻辑复制槽。
  • 目标库账号需要具有创建 schema 权限,如果目标库 schema 权限已存在,则迁移账号需要是目标 schema owner。
  1. 创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。
  • 类别
    参数
    说明
    基本信息
    任务名称
    (可选)自定义迁移任务名称。长度需在 256 个字符内。
    说明
    若未进行设置,系统将默认生成一个以 dts- 开头命名的任务。
    链路规格
    按需选择迁移任务的链路规格,当前支持 CompactMediumStandard
    说明
    成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格
    源库配置
    选择已有数据源
    您可以按需选择是否使用已录入的实例:
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
    实例类型
    选择 PostgreSQL
    接入方式
    选择公有网络 PostgreSQL
    说明
    在迁移公有网络 PostgreSQL 实例时,您需要提前在源端的白名单或安全组策略中,添加 DTS IP 段的访问权限。单击查看 DTS IP 段查看和复制 IP 段。
    地域
    选择目标实例所属地域。
    主机地址
    输入目标自建实例的主机地址。
    端口
    输入目标自建实例的端口号。
    数据库名称
    输入数据库名称。
    数据库账号
    输入目标实例的数据库账号。
    数据库密码
    输入目标实例数据库账号对应的密码。
    连接方式
    按需选择是否启用加密通信协议,以在客户端与数据库实例之间建立安全连接,防止数据在传输过程中被窃听、篡改或伪造。选项如下:
    • 非加密连接:适用于已部署在公网环境中的自建 PostgreSQL 实例。此方式存在安全风险,建议仅用于测试环境或受控网络。
    • SSL 安全连接:推荐用于生产环境,支持连接在 AI 原生数据库管理平台(AIDAP)托管的 PostgreSQL 实例,也可用于已配置 SSL 的自建实例。
    测试连接
    单击测试连接,验证是否成功连接实例。
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。
    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。
    目标库配置
    选择已有数据源
    您可以按需选择是否使用已录入的实例:
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
    实例类型
    选择 PostgreSQL
    接入方式
    选择专有网络 PostgreSQL
    地域
    选择私有网络所属地域。
    主机地址
    输入目标自建实例的主机地址。
    说明
    当前仅支持接入 IPV4 地址,暂不支持接入 IPv 6 地址。
    端口
    输入目标自建实例的端口号。
    数据库名称
    输入目标自建实例的数据库名称。
    私有网络
    从下拉列表中选择目标私有网络,具体如下所示:
    • 专线连接:通过专线 CEN 实现数据连通时,选择 CEN 下所属的任意私有网络。
    • VPN 连接:通过 VPN 实现数据连通时,选择 VPN 网关绑定的私有网络。
    子网
    从下拉列表中选择私有网络中的子网。
    说明
    在迁移专有网络 PostgreSQL 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。
    数据库账号
    输入目标实例的数据库账号。
    数据库密码
    输入目标实例数据库账号对应的密码。
    连接方式
    按需选择是否启用加密通信协议,以在客户端与数据库实例之间建立安全连接,防止数据在传输过程中被窃听、篡改或伪造。选项如下:
    • 非加密连接:适用于已部署在专有网络环境中的自建 PostgreSQL 实例。此方式存在安全风险,建议仅用于测试环境或受控网络。
    • SSL 安全连接:推荐用于生产环境,支持连接在 AI 原生数据库管理平台(AIDAP)托管的 PostgreSQL 实例,也可用于已配置 SSL 的自建实例。
    测试连接
    单击测试连接,验证是否成功连接实例。
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。
    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
    • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术人员。
    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。
    • 专有网络需要子网有 * 个可用 IP,当前私有网络内子网可用 IP 数不足,无法创建任务,请检查私有网络内子网资源:当出现该报错提示时,您需要调整私有网络子网内可用的 IP 数量,以保证目标私有网络内子网内有足够的 IP。
    项目
    (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目
    说明
    • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限
    • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。详细操作,请参见资源移入项目
    • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。
    标签
    (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:
    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。
    • 大小写敏感,且长度在 1~128 个字符内。
    • 使用 UTF-8 编码的 Unicode 格式。
    • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:VOLC: 等。
    • (可选)值
    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。
    • 大小写敏感,且长度在 0~256 个字符内。
    • 使用 UTF-8 编码的 Unicode 格式。
    说明
    • 支持模糊搜索选择已有标签键和标签值。
    • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。
    • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。
    计费方式
    当前仅支持按量计费,您无需选择。
    说明
    关于计费的详细信息,请参见计费说明
  1. 单击下一步:配置迁移对象
  1. 配置迁移对象配置向导页面,配置相关参数信息,如下表所示。
说明
  • 若暂时不需要启动迁移任务,您可以在完成迁移对象配置后,单击页面右下角的保存
  • 保存后会跳转回迁移任务列表页,此时任务状态为待启动,您可以在合适的时候再配置迁移任务。配置方法,请参见配置迁移任务
  • 参数
    说明
    迁移类型
    按需选择迁移类型,当前支持结构迁移全量迁移增量迁移。其中:
    • 若仅需要全量迁移,可同时勾选结构迁移全量迁移
    • 若需要进行不停机迁移,可以同时勾选结构迁移全量迁移增量迁移
    说明
    • 若未勾选增量迁移,数据迁移期间请勿在源库实例中写入新的数据,以确保数据的一致性。
    • 为实时保障数据的一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
    迁移对象
    迁移对象区域中勾选需要迁移的对象,您可以在已选择对象区域中确认需要迁移的对象。
    说明
    • 迁移对象选择的粒度为库或表。若迁移对象选择的是表,则其他对象例如视图、触发器、函数或存储过程等,不会被迁移至目标库。
    • 为保证数据迁移的性能和迁移任务的稳定性,云数据库 PostgreSQL 的 TRIGGER、RULE、FOREIGN KEY、SEQUENCE 等会在增量迁移结束后才进行迁移。
    • 已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的目标。
    高级配置
    开启毫秒级延迟监控
    迁移类型勾选了增量迁移时,默认开启毫秒级延迟监控功能。开启该功能可实现高精度、全链路、主动式的端到端延迟度量,有效提升监控的稳定性和对网络中断、空闲断流等异常场景的感知能力。
    开启该功能 DTS 会向源库写入心跳,需要源端账号具备 SELECT、INSERT 和 UPDATE 权限。关于心跳表的更多信息,请参见手动创建心跳表
    跳过后置结构迁移
    当迁移类型中选择结构迁移时,DTS 会自动在增量迁移结束后迁移后置结构,您也可以选择跳过后置结构迁移,即 DTS 不迁移后置结构。
    PostgreSQL 数据库后置结构迁移对象包括普通触发器、事件触发器、RULE、互斥约束、外键约束、检查约束、Domain 约束、设置 Sequence 值。
    • :表示跳过后置结构迁移,即 DTS 不迁移后置结构对象。
    • :表示不跳过后置结构迁移,即 DTS 迁移后置结构对象。
    说明
    仅当迁移类型中包含结构迁移时,才支持配置是否跳过后置结构迁移。
    错误重试时间
    在迁移任务中,当源库和目标库断连后导致迁移任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。
    全量迁移速率
    按需设置全量迁移速率。防止在迁移速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:
    • 每秒迁移的行数:按需开启并设置每秒迁移的行数。默认值 100000,取值范围 1~100000。
    • 每秒迁移的数据量:按需开启并设置每秒迁移的数据量。默认值 25000,取值范围 1~25000,单位 KB。
    • 迁移任务并发数:按需设置迁移任务的并发数。默认值 8,取值范围 1~64。
    说明
    • 迁移类型选择全量迁移时,支持配置该参数。
    • 当迁移速率过高时,可能会影响源库性能,请根据源和目标库的读写压力情况适当调整。
最近更新时间:2026.09.02 11:02:38
这个页面对您有帮助吗?
有用
有用
无用
无用