华为云数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库实时迁移和数据库实时同步的云服务。提供了实时迁移、备份迁移、实时同步、数据订阅和实时灾备等多种功能,支持常见的Oracle、MySQL、PostgreSQL、DDM、RDS、SQL Server等数据库。
本文介绍使用华为云DRS,如何将自建PostgreSQL数据库迁移到华为云上的RDS for PostgreSQL,大致步骤如下:
迁移信息汇总如下:
源库 | 目标库 | |
---|---|---|
版本 | PostgreSQL 11.4 | PostgreSQL 11.5 |
部署 | 鲲鹏ECS自建 | 华为云RDS |
空间 | 700M | |
表数量 | 121 | |
迁移方式 | 在线全量 |
迁移前配置
1、打开DRS控制台,选择本云ECS自建库到本云云数据库的在线实时迁移服务。
2、选择源数据库和目标数据库均为PostgreSQL。
3、配置源库信息和目标库信息
这里会首先创建迁移实例,大约需要2-5分钟。实例未创建成功时,测试连接和下一步按钮不可操作。创建完成后会提示:“迁移实例创建成功,其弹性公网IP为114.116.253.119。请在源数据库网络白名单中加入上述IP,确保源数据库与此IP可连通”。
4、为迁移实例开放端口和数据库白名单。
5、测试源库和目标库的连接状态,都通过后,下一步。
6、选择需要迁移的对象,这里我们全库迁移,选择整个数据库。
7、迁移前预检查
其中提示:源库用户权限是否足够
失败原因:连接源数据库的用户权限不足,全量迁移时至少需要具备如下权限。
失败详情:各个权限不足的对象有:EXECUTE:public.f;
处理建议:建议更换迁移账号或者对迁移账号进行授权。
参考命令:grant USAGE on schema public to user;
grant SELECT,REFERENCES,TRIGGER on all tables in schema public to user;
grant EXECUTE on ALL FUNCTIONS IN SCHEMA public to user;
按照上面的提示赋予权限,检查跳过,执行下一步。
**附:**主要检查以下要求是否满足:
类型名称 |
使用限制(DRS自动检查) |
---|---|
数据库权限设置 |
|
迁移对象约束 |
全量迁移对象约束: 支持表、索引、外键、存储过程、函数、视图、约束、触发器的迁移。 支持如下字段类型:数字类型、货币类型、字符类型、二进制数据类型、日期/时间类型、布尔类型、枚举类型、几何类型、网络地址类型、位串类型、文本搜索类型、UUID类型、XML类型、JSON类型、数组、复合类型、范围类型。 |
源数据库要求 |
|
目标数据库要求 |
|
8、检查无误之后,立即启动即可。
开始迁移
1、控制台等待迁移即可
2、查看进度和监控
完成迁移
1、查看迁移日志
2、对象级别对比
3、数据级别对比
4、使用DAS连接云上PG的RDS,检查对象及数据。
至此,云上自建PostgreSQL数据库已经完成了到华为云RDS PostgreSQL的在线迁移工作,700M数据、121张表,迁移耗时2分钟。整个过程比较顺滑,达到了操作便捷、简单,实现数据库的迁移和同步“人人都会”的效果。