大型 PostgreSQL 数据库迁移
大型 PostgreSQL 数据库迁移,可以不间断源数据库的业务,平滑的迁移到 PolonDB 集群中。
注意 |
---|
数据迁移期间,需暂停源数据库与 PolonDB 数据库,请在业务低峰期进行数据迁移,避免数据丢失。 |
约束限制
-
仅针对 PostgreSQL 10 及以上版本,或 PostgreSQL 9.4 以上版本,并安装 logical_decode 插件的数据库。
-
在迁移过程中源数据库不支持 DDL 操作,仅支持 DML 和 TRUNCATE 操作。
-
建议需要迁移的表拥有主键。
-
无主键的表在源数据中执行
alter table xx replica identity full
语句。
前提条件
操作步骤
-
在 PostgreSQL 源数据库,保存数据库结构。
$ pg_dump \ --format = plain \ --schema-only \ --file = schema.sql \ --schema = target_schema \ (可选) postgres:// user:password @ host_ip :5432 / db_name
-
在 PolonDB 集群,使用
psql
连接集群,并创建数据库结构。\ i schema.sql
-
在 PolonDB 集群,运行
create_distributed_table
和create_reference_table
语句,创建数据库对象。说明 若收到有关外键的错误,通常是由于操作顺序有误。可以先删除外键,再重新添加数据库对象。
-
在 PolonDB 集群获取
qingcloud_decoding.so
的动态库。注意 请提工单或联系技术支持获取动态库,技术支持将根据当前数据库环境,配备唯一标识的动态库供您使用。
-
在 PostgreSQL 源数据库,将动态库存储到 PostgreSQL 的 lib 目录中。
-
在 PostgreSQL 源数据库,设置源数据库参数,并重启数据库。
-- postgresql.conf wal_level=logical -- pg_hba.conf host all all 0.0.0.0/0 md5 host replication all 0.0.0.0/0 md5
-
在 AppPCenter 集群管理,启动 PostgreSQL 迁移。
-
登录管理控制台。
-
选择产品与服务 > 数据库与缓存 > 分布式数据库 PolonDB,进入集群管理页面。
-
点击目标集群 ID,进入集群详情页面。
-
在基本属性模块,点击集群操作下拉菜单。
-
展开下拉菜单,点击启动 PG 迁移。
-
配置迁移信息,详细参数请参见PG 迁移参数说明。
-
确认配置信息无误后,点击提交,返回节点列表页面。
-
-
检验数据正确和完整性。
-
根据应用特征手动设置序列值。
-
测试应用,迁移完成,迁移应用,启动应用。
-
在 AppPCenter 集群管理,停止 PostgreSQL 迁移。
-
登录管理控制台。
-
选择产品与服务 > 数据库与缓存 > 分布式数据库 PolonDB,进入集群管理页面。
-
点击目标集群 ID,进入集群详情页面。
-
在基本属性模块,点击集群操作下拉菜单。
-
展开下拉菜单,点击停止 PG 迁移。
-
确认配置信息无误后,点击提交,返回节点列表页面。
-
PG 迁移参数说明
参数 | 说明 |
---|---|
角色 |
选择协调器。 |
需要同步的表 |
|
源端数据库名 |
输入源端数据库名。 |
不需要同步的表 |
|
源端数据库用户 |
用户需是超级用户或是拥有 |
源端数据库用户密码 |
输入源端数据库用户密码。 |
源端数据库地址 |
输入源端数据库地址。 |
源端数据库端口 |
输入源端数据库端口。 |
此集群数据库名 |
迁移到 PolonDB 的数据库名。 |