【项目实战】记录一次PG数据库迁移至GaussDB测试(下)

本文详细介绍了从PostgreSQL(PG)到GaussDB的数据库迁移过程,包括迁移前的准备工作(如创建复制用户和权限分配)、DRS迁移数据、迁移后一致性检查,以及遇到的各种问题如用户、序列、分区表、函数和外键迁移的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇分享了安装、迁移,本篇将继续分享迁移前操作、 DRS迁移数据、迁移后一致性检查、问题总结及解决方法。

目录

四、迁移前操作

4.1 源端(PG)

4.2 目标端(GaussDB库)

五、DRS迁移数据

5.1 创建复制用户

5.2创建迁移任务。

六、迁移后一致性检查

6.1使用DRS工具对比

6.2手动对比

七、问题总结及解决方法

7.1 用户迁移

7.2 序列迁移

7.3 分区表迁移

7.4 函数迁移

7.5 外键改造

7.6 索引改造


四、迁移前操作


4.1 源端(PG)

确定迁移的对象

统计源数据库对象

1、统计数据库个数

psql –d postgres -p 15432

\l+ --统计数据库名称以及大小

\du –统计数据库所有用户

\c 数据库名称 -- 

\dn 统计数据中schema的名称

3.1.1.2 创建迁移用户及赋权

创建只读用户用于读取数据库全部对象,该用户用于DRS工具迁移数据

Create user drs_read password ‘Drs_read#2023’;

grant usage on schema power_tf,power_reliability,power_work,power_ds,power_tech,power_quality,power_sch,power_common to drs_read;

grant usage on schema power_tf,power_reliability,power_work,power_ds,power_tech,power_quality,power_sch,power_common to drs_read;

grant select on all sequence in schema power_common,power_tf,power_reliability,power_work,power_ds,power_tech,power_quality,power_sch to drs_read;

grant select on all sequences in schema power_work,power_ds,power_tech,power_quality,power_sch to drs_read;

grant select on all tables in schema power_work,power_ds,power_tech,power_quality,power_sch to drs_read;

4.2 目标端(GaussDB库)

创建复制用户及赋权

gsql –d postgres –p 15432

gauss=#create user drs_rep password ‘Drs_rep#2023’;

gauss=#alter user drs_rep sysadmin;

UGO迁移表结构

使用UGO工具,可以迁移数据库结构、表结构、索引、函数等元数据。

1、创建项目,进行源端数据库评估。


迁移结构后会提示迁移成功和失败的对象百分比,如图所示:

五、DRS迁移数据


5.1 创建复制用户


通过管理员账号登录

创建资源组

5.2创建迁移任务。


使用复制账号drs登录,创建同步任务

点击测试连接,成功后执行下一步

选择要迁移的对象

从列表中可以看出,工具仅支持表和序列的迁移,同时只能迁移一个库。下方限速可针对迁移带宽速率进行调整。

下一步进入迁移前的检查,如果权限不足会提示需要哪

### 使用瀚高迁移工具进行PostgreSQL到瀚高数据库的数据迁移 对于从PostgreSQL数据库向瀚高数据库的数据迁移工作,推荐采用瀚高的专用迁移工具`hgdb-migration-v4.1.4`来完成这一过程[^2]。此款工具特别适用于不同类型的源端数据库至瀚高数据库的目标转换任务。 #### 准备阶段 确保已经下载并安装了最新版的瀚高迁移工具,并确认源端PostgreSQL以及目标端瀚高数据库的服务均处于正常运行状态。此外,在执行具体操作前,建议备份现有的PostgreSQL数据以防意外情况发生。 #### 迁移配置文件设置 创建一个新的迁移工程项目,并指定相应的参数选项: ```json { "source": { "type": "postgresql", "host": "localhost", "port": 5432, "database": "your_db_name", "username": "your_username", "password": "your_password" }, "target": { "type": "highgo", "host": "localhost", "port": 8097, // 默认端口可能是不同的,请根据实际情况调整 "database": "destination_db_name", "username": "admin_user", "password": "secure_password" } } ``` 上述JSON格式的配置示例展示了如何定义源和目的数据库连接信息。注意替换其中的具体值以匹配实际环境中的设定。 #### 执行迁移命令 通过命令行界面启动迁移进程: ```bash ./hgdb_migration_tool --config=/path/to/your/config.json ``` 这将会读取之前准备好的配置文件,并按照所给定的信息开始转移数据的过程。在整个过程中,可以通过查看日志输出了解当前进度及任何可能出现的问题。 #### 验证迁移结果 一旦迁移顺利完成之后,应当仔细核对新旧两套系统之间的数据一致性,包括但不限于表结构、索引定义、触发器逻辑等方面的内容。如果有必要的话,还可以编写一些简单的查询语句来进行抽样测试验证准确性。 #### 后续维护事项 考虑到可能存在某些特定功能或特性无法完全兼容的情况,因此在正式投入使用之前还需要进行全面的功能性和性能调优方面的评估与优化措施。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gauss松鼠会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值