暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

使用华为云DRS完成本地PostgreSQL到华为云RDS的实时迁移

原创 章芋文 2020-12-16
2651

华为云数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库实时迁移和数据库实时同步的云服务。提供了实时迁移、备份迁移、实时同步、数据订阅和实时灾备等多种功能,支持常见的Oracle、MySQL、PostgreSQL、DDM、RDS、SQL Server等数据库。

本文介绍使用华为云DRS,如何将自建PostgreSQL数据库迁移到华为云上的RDS for PostgreSQL,大致步骤如下:
image.png

迁移信息汇总如下:

源库 目标库
版本 PostgreSQL 11.4 PostgreSQL 11.5
部署 鲲鹏ECS自建 华为云RDS
空间 700M
表数量 121
迁移方式 在线全量

迁移前配置

1、打开DRS控制台,选择本云ECS自建库到本云云数据库的在线实时迁移服务。
image.png

2、选择源数据库和目标数据库均为PostgreSQL。
image.png

3、配置源库信息和目标库信息
image.png
这里会首先创建迁移实例,大约需要2-5分钟。实例未创建成功时,测试连接和下一步按钮不可操作。创建完成后会提示:“迁移实例创建成功,其弹性公网IP为114.116.253.119。请在源数据库网络白名单中加入上述IP,确保源数据库与此IP可连通”。

4、为迁移实例开放端口和数据库白名单。
image.png

5、测试源库和目标库的连接状态,都通过后,下一步。
image.png

6、选择需要迁移的对象,这里我们全库迁移,选择整个数据库。
image.png

7、迁移前预检查
image.png

其中提示:源库用户权限是否足够
失败原因:连接源数据库的用户权限不足,全量迁移时至少需要具备如下权限。
失败详情:各个权限不足的对象有: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自动检查)

数据库权限设置

  • 全量迁移权限要求:
    • 源数据库帐户需要具备SELECT、REFERENCES、TRIGGER、EXECUTE和USAGE权限。

迁移对象约束

全量迁移对象约束:

支持表、索引、外键、存储过程、函数、视图、约束、触发器的迁移。

支持如下字段类型:数字类型、货币类型、字符类型、二进制数据类型、日期/时间类型、布尔类型、枚举类型、几何类型、网络地址类型、位串类型、文本搜索类型、UUID类型、XML类型、JSON类型、数组、复合类型、范围类型。

源数据库要求

  • 源数据库的库名和表名不支持如下字符:"<>。
  • 源数据库库名不支持如下字符:“.”、“<”、“>”和“'”。
  • 源数据库版本为9.5时,参数wal_level必须配置为hot_standby,源数据库版本为9.6时,参数wal_level必须配置为replica,否则会导致迁移失败。
  • 源数据库max_replication_slots参数值必须大于0,否则可能导致迁移失败。
  • 建议将源数据库参数wal_keep_segments 值至少配置为(源库大小×5%÷16),如果源库业务较繁忙则应相应的增加该值。

目标数据库要求

  • 不支持从高版本迁移到低版本。
  • 目标数据库实例的运行状态必须正常。
  • 目标数据库实例必须有足够的磁盘空间。
  • 不支持多对一的迁移。
  • 需要提供目标数据库根帐号的密码。
  • 除了系统数据库之外,目标数据库不能包含与源数据库同名的数据库。
  • 目标库插件版本不能低于源库插件版本,若目标库插件版本较低,会导致迁移失败。
  • 目标数据库和源数据库的lc_monetary参数值需保持一致,否则会导致迁移失败。
  • 目标数据库的max_connections、max_worker_processes、max_prepared_transactions、max_locks_per_transaction参数值不能小于源数据库的参数值,否则可能会导致迁移失败。
  • 源数据库与目标数据库的wal_block_size、block_size参数值需保持一致,否则会导致迁移失败。

8、检查无误之后,立即启动即可。
image.png

开始迁移

1、控制台等待迁移即可
image.png

2、查看进度和监控

image.png

image.png

完成迁移

1、查看迁移日志
image.png

2、对象级别对比
image.png

3、数据级别对比
image.png

4、使用DAS连接云上PG的RDS,检查对象及数据。
image.png

至此,云上自建PostgreSQL数据库已经完成了到华为云RDS PostgreSQL的在线迁移工作,700M数据、121张表,迁移耗时2分钟。整个过程比较顺滑,达到了操作便捷、简单,实现数据库的迁移和同步“人人都会”的效果。

最后修改时间:2020-12-16 14:14:02
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论