数据库PostgreSQL上云迁移步骤

PostgreSQL 支持用户使用离线的方式完成对自建数据库迁移的需求。为了保证数据的同步性,建议用户在使用离线迁移的时候执行停机操作。

概述

当用户需要迁移的数据源基于 PostgreSQL 数据库时,由于 RDS 提供的关系型数据库服务与 PostgreSQL 数据库完全兼容,用户将原有数据库迁移到RDS实例的过程,类似于将一个 PostgreSQL 数据库迁移到另一个 PostgreSQL 数据库的过程。这个过程可以使用 pg_dump 工具来实现。

迁移步骤

创建RDS实例

用户创建RDS实例后,系统会为用户提供RDS实例的域名和端口,如:postgresql94.example.rds.bj.baidubce.com:3306。具体内容请参考《RDS操作指南 创建RDS实例》。

创建数据库和帐号

用户在控制台创建RDS实例之后,继续在其中创建需要的数据库和帐号并分配对应的读写权限。具体内容请参考《RDS操作指南 创建数据库》和《RDS操作指南 创建帐号》

用户数据导出

  1. 利用pg_dump导出用户数据

使用pg_dump工具从用户的PostgreSQL数据源中导出需要导入RDS实例中的数据文件。命令格式如下:

${pgdir}/bin/pg_dump –h ${ip} -p ${port} –d ${db_name} –U${user} -f ${datadir}/${db_name}.sql

参数说明:

参数 说明
${pgdir} 用户本地安装PostgreSQL的路径
${ip} 用户本地PostgreSQL服务的IP地址
${port} 用户本地PostgreSQL服务的端口
${user} 用户本地PostgreSQL数据库用户名
${db_name} 用户本地需要迁移的自建数据库名
${datadir} 用户本地备份生成的文件路径
${db_name}.sql 用户本地备份生成的文件名

通过腾讯云服务器将数据迁移至RDS

  1. 将备份文件上传至腾讯云服务器
    使用云服务器的方法请参考《操作指南 管理云服务器》,以下用Linux服务器为例,假设已上传的文件在云服务器中的路径为:

    /tmp/${db_name}.sql

  2. 将数据迁移至RDS
    使用云服务器将上传的数据文件导入到已购买的RDS实例中,命令格式:

    ${pgdir}/bin/psql –U ${rds_user} –h ${rds_ip} –p
    ${port} -d ${rds_db_name} -f /tmp/${db_name}.sql

参数说明:

参数 说明
${rds_ip} RDS实例的域名
${rds_user} RDS数据库帐号
${rds_db_name} RDS中数据库名
${port} RDS中PostgreSQL服务的端口
${db_name}.sql 用户备份生成的文件名

注意:

由于帐号针对每个数据库都有访问权限,因此用户需要提前在RDS中创建需要导入数据的数据库并赋予对应使用帐号的读写权限才可以成功导入数据。

至此数据迁移完毕,用户可使用数据库客户端工具或程序的方式,通过RDS实例连接地址、端口号、数据库帐号和密码连接数据库。

标签