操作场景
本文介绍使用 DTS 逻辑迁移功能从 PostgreSQL 迁移数据至腾讯云数据库 PostgreSQL 的操作指导。
准备工作
1. 请仔细阅读 逻辑迁移使用说明,了解功能约束和注意事项。
2. 请根据您需要使用的接入类型,提前打通 DTS 与数据库之间的访问通道,具体请参考 网络准备工作。
IDC 自建数据库/其他云厂商数据库:接入方式可选择“公网/专线接入/VPN 接入/云联网”。
外网实例迁移时,请确保源实例服务在外网环境下可访问,并且要保持外网连接的稳定性,当网络出现波动或者故障时会导致迁移失败,迁移一旦失败,就需要重新发起迁移任务。
CVM 上的自建数据库:接入方式选择“云主机自建”。
腾讯云数据库实例:接入方式选择“云数据库”。
3. 源数据库的权限要求如下:
源库为腾讯云数据库 PostgreSQL 之外的其他 PostgreSQL 时,要求源库账号必须具有 replication 权限,否则前置校验不通过。
源库为腾讯云数据库 PostgreSQL,要求源数据库的账号必须为创建云数据库实例时的初始化用户。
如果部分表或者对象无权限,可使用高权限用户执行如下示例语句,对无权限的对象分别授予权限:
grant select on table 表名 to 用户名;grant select on SEQUENCE 序列名 to 用户名;grant connect on database 库名 to 用户名;grant select on large object 大对象oid to 用户名;GRANT USAGE ON SCHEMA 模式名 to 用户名;
4. 目标数据库权限要求如下。
目标数据库的账号必须为创建云数据库实例时的初始化用户。
如果目标数据库实例中包含待迁移的 database,但 database 的 owner 非当前迁移用户所属,可执行以下语句将 database 授予迁移用户:
alter database 库名 owner to 迁移用户;
如果迁移用户(执行迁移任务的账号)为非
pg_tencentdb_superuser
角色用户,在校验时,会提示“目标实例权限检查失败,无法获取 Schema 列表”,请使用如下语句为迁移用户赋予初始化用户权限。grant pg_tencentdb_superuser to 迁移用户;
操作步骤
1. (可选)PostgreSQL 9.4、9.5、9.6 版本作为源数据库进行“全量 + 增量迁移”时,需要参考如下指导安装 tencent_decoding 插件,其他场景请跳过该步骤。
1.1 根据源数据库所在服务器的系统架构,下载对应的插件。
只支持系统架构为 x86_64 和 aarch64。
插件版本需要和 PostgreSQL 版本保持一致。
Glibc 版本需要满足要求:x86_64 系统不低于 2.17 - 323 版本,aarch64 系统不低于 2.17 - 260 版本。
在 Linux 系统上查看 Glibc 版本:
RHEL/CentOS: rpm -q glibc
在其他操作系统(Debian/Ubuntu/SUSE 等)上查看 Glibc 版本:
ldd --version | grep -i libc
1.2 将下载得到的 tencent_decoding.so 文件放置于 Postgres 进程目录的 lib 文件夹下,无需重启实例。
2. 登录 DTS 控制台,在左侧导航选择数据迁移页,单击新建迁移任务,进入新建迁移任务页面。
3. 在新建迁移任务页面,选择迁移的源实例类型和所属地域,目标实例类型和所属地域,规格等,然后单击立即购买。
配置项 | 说明 |
源实例类型 | 请根据您的源数据库类型选择,购买后不可修改。本场景选择“PostgreSQL”。 |
源实例地域 | 选择源数据库所属地域。如果源库为自建数据库,选择离自建数据库最近的一个地域即可。 |
目标实例类型 | 请根据您的目标数据库类型选择,购买后不可修改。本场景选择“PostgreSQL”。 |
目标实例地域 | 选择目标数据库所属地域。 |
规格 |
4. 在设置源和目标数据库页面,完成任务设置、源库设置和目标库设置,测试源库和目标库连通性通过后,单击新建。
说明:
设置类型 | 配置项 | 说明 |
任务设置 | 任务名称 | 设置一个具有业务意义的名称,便于任务识别。 |
| 运行模式 | 立即执行:完成任务校验通过后立即启动任务。 定时执行:需要配置一个任务执行时间,到时间后启动任务。 |
| 标签 | 标签用于从不同维度对资源分类管理。如现有标签不符合您的要求,请前往控制台管理标签。 |
源库设置 | 源库类型 | 购买时选择的源库类型,不可修改。 |
| 所属地域 | 购买时选择的源库地域,不可修改。 |
| 接入类型 | 为保障迁移效率,CVM 自建实例迁移不支持跨地域迁移。如需要跨地域迁移,请选择公网接入方式。 公网:源数据库可以通过公网 IP 访问。公网迁移时,请确保源实例服务在外网环境下可访问,并且要保持外网连接的稳定性,当网络出现波动或者故障时会导致迁移失败,迁移一旦失败,就需要重新发起迁移任务。 云主机自建:源数据库部署在 腾讯云服务器 CVM 上。为保障迁移效率,CVM 自建实例迁移不支持跨地域迁移。如需要跨地域迁移,请选择公网接入方式。 专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。 VPN接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。 云数据库:源数据库属于腾讯云数据库实例。 云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。 |
| 是否跨账号 | 本账号:源数据库实例和目标数据库实例所属的主账号为同一个腾讯云主账号。 跨账号:源数据库实例和目标数据库实例所属的主账号为不同的腾讯云主账号。如下以同账号之间的迁移为例,跨账号操作指导请参见 云数据库跨账号实例间迁移。 |
| 数据库实例 | 选择源库 PostgreSQL 的实例 ID。 |
| 账号 | 源库 PostgreSQL 的数据库账号,账号权限需要满足要求。 |
| 密码 | 源库 PostgreSQL 的数据库账号的密码。 |
目标库设置 | 目标库类型 | 购买时选择的目标库类型,不可修改。 |
| 所属地域 | 购买时选择的目标库地域,不可修改。 |
| 接入类型 | 根据您的场景选择,本场景默认选择“云数据库”。 |
| 数据库实例 | 选择目标库的实例 ID。 |
| 账号 | 目标库的数据库账号,账号权限需要满足要求。 |
| 密码 | 目标库的数据库账号的密码。 |
5. 在设置迁移选项及选择迁移对象页面,设置迁移类型、对象,单击保存。
配置项 | 说明 |
迁移类型 | 请根据您的场景选择。 结构迁移:迁移数据库中的库、表等结构化的数据。 全量迁移:迁移整个数据库,迁移数据仅针对任务发起时,源数据库已有的内容,不包括任务发起后源库实时新增的数据写入。 全量 + 增量迁移:迁移数据包括任务发起时源库的已有内容,也包括任务发起后源库实时新增的数据写入。如果迁移过程中源库有数据写入,需要不停机平滑迁移,请选择此场景。 |
迁移对象 | 整个实例:迁移整个实例,但不包括系统库,如 postgres 中的系统对象,但是会迁移 role 与用户元数据定义。 指定对象:迁移指定对象。 |
指定对象 | 在源库对象中选择待迁移的对象,然后将其移到已选对象框中。 |
6. 在校验任务页面,进行校验,校验任务通过后,单击启动任务。
如果校验任务不通过,可以参考 校验不通过处理方法 修复问题后重新发起校验任务。
失败:表示校验项检查未通过,任务阻断,需要修复问题后重新执行校验任务。
警告:表示检验项检查不完全符合要求,可以继续任务,但对业务有一定的影响,用户需要根据提示自行评估是忽略警告项还是修复问题再继续。
7. 返回数据迁移任务列表,任务进入准备运行状态,运行1分钟 - 2分钟后,数据迁移任务开始正式启动。
选择结构迁移或者全量迁移:任务完成后会自动结束,不需要手动结束。
选择全量 + 增量迁移:全量迁移完成后会自动进入增量数据同步阶段,增量数据同步不会自动结束,需要您手动单击完成结束增量数据同步。单击完成后任务进入完成中的状态。请不要对源端和目标端进行任何修改,此时后端将自动的将部分对象与源端进行对齐。
请选择合适时间手动完成增量数据同步,并完成业务切换。
观察迁移阶段为增量同步,并显示无延迟状态,将源库停写几分钟。
目标与源库数据差距为0MB及目标与源库时间延迟为0秒时,手动完成增量同步。
8. (可选)如果您需要进行查看任务、删除任务等操作,请单击对应的任务,在操作列进行操作,详情可参考 任务管理。
9. 当迁移任务状态变为任务成功时,即可对业务进行正式割接,更多详情可参考 割接说明。