数据迁移丨如何从 PostgreSQL 到 GreatSQL

数据迁移丨借助 AI 从 PostgreSQL 到 GreatSQL

在这里插入图片描述

本文将介绍如何从 PostgreSQL 到 GreatSQL 的数据迁移,并运用 AI 协助迁移更加方便。迁移的方式有很多,例如:

  • pg_dump:导出SQL文件,修改后导入 GreatSQL 数据库。
  • COPY:导出txt文本文件,导入 GreatSQL 数据库。
  • pg2mysql:从 PostgreSQL 迁移到 MySQL/GreatSQL 工具。
  • GreatDTS:商业的异构数据库迁移工具。

本文将介绍 pg_dumpCOPY 两种方法迁移。

PostgreSQL 和 GreatSQL 区别

PostgreSQL

PostgreSQL是一个开源的对象关系型数据库管理系统(ORDBMS)。它的特色是强调扩展性、数据完整性和高级特性。PostgreSQL由社区维护和开发,具有出色的可定制性,可以适应各种不同的应用场景。它支持复杂的数据类型、JSON 数据存储、空间数据处理和全文搜索等特性。

GreatSQL

GreatSQL 数据库是一款 开源免费 数据库,可在普通硬件上满足金融级应用场景,具有 高可用、高性能、高兼容、高安全 等特性,可作为 MySQL 或 Percona Server for MySQL 的理想可选替换。

详细区别

对比项目 GreatSQL PostgreSQL
许可证 采用 GPLv2 协议 基于 PostgreSQL 许可下,是一种类似于 BSD 或 MIT 的自由开源许可
对象层次结构 4级(实例、数据库、表、列) 5级(实例、数据库、模式、表、列)
ACID事物 支持 支持
安全性 支持 RBAC、逻辑备份加密、CLONE 备份加密、审计、表空间国密加密、敏感数据脱敏 支持 RBAC、行级安全 (RLS)
JSON 支持(但和PG语法不同) 支持(但和GreatSQL语法不同)
复制 Binlog 进行逻辑复制 WAL 进行物理复制
大小写敏感 默认不敏感(默认不区分大小写) 默认大小写敏感(默认区分大小写)
参数值引号 使用双引号”“ 使用单引号‘’
数据类型 支持(但和PG语法不同) 支持(但和GreatSQL语法不同)
SQL语法 支持(但和PG语法不同) 支持(但和GreatSQL语法不同)
函数 支持(但和PG语法不同) 支持(但和GreatSQL语法不同)
表和索引 支持(但和PG语法不同) 支持(但和GreatSQL语法不同)
自增 AUTO_INCREMENT SMALLSERIAL、SERIAL、SERIAL
注释 #

在迁移过程中,要注意两款数据库产品的差异。

迁移优势

迁移到 GreatSQL 有以下优势:

  • 高可用

针对 MGR 进行了大量改进和提升工作,支持 地理标签、仲裁节点、读写动态 VIP、快速单主模式、智能选主 等特性,并针对 流控算法、事务认证队列清理算法、节点加入&退出机制、recovery机制 等多个 MGR 底层工作机制算法进行深度优化,进一步提升优化了 MGR 的高可用保障及性能稳定性。

  • 高性能

相对 MySQL 及 Percona Server For MySQL 的性能表现更稳定优异,支持 Rapid 引擎、事务无锁化、并行LOAD DATA、异步删除大表、线程池、非阻塞式DDL、NUMA 亲和调度优化 等特性,在 TPC-C 测试中相对 MySQL 性能提升超过 30%,在 TPC-H 测试中的性能表现是 MySQL 的十几倍甚至上百倍。

  • 高兼容

GreatSQL 实现 100% 完全兼容 MySQL 及 Percona Server For MySQL 用法,支持大多数常见 Oracle 用法,包括 数据类型兼容、函数兼容、SQL 语法兼容、存储程序兼容 等众多兼容扩展用法。

  • 高安全

GreatSQL 支持逻辑备份加密、CLONE 备份加密、审计、表空间国密加密、敏感数据脱敏等多个安全提升特性,进一步保障业务数据安全,更适用于金融级应用场景。

迁移准备

业务需求分析

评估哪些业务需要迁移,以及迁移的影响。先明确迁移的范围,需要知道哪些业务系统和服务会受到影响,可以根据优先级进行迁移。了解数据库直接交互的应用程序、服务、脚本等,分析这些依赖关系,有助于制定迁移计划,和减少对业务的影响。同时也要评估迁移带来的风险,比如数据丢失、数据同步延迟、业务中断等。

兼容评估

评估 PostgreSQL 和 GreatSQL 之间的兼容性,包括语法、功能、数据类型、索引等。PostgreSQL 和 GreatSQL 在 SQL 语法和功能上存在一些差异,应特别注意。

在迁移之前,一定要先了解 PostgreSQL 和 GreatSQL 之间的区别:

  • PostgreSQL:https://postgresql.p2hp.com/index.html
  • GreatSQL:https://greatsql.cn/

备份和恢复

在迁移前确保 PostgreSQL 数据库的备份和恢复机制完善。例如做一次全量备份,在迁移之前,首先进行完整的数据库备份(例如使用 pg_dump),以确保在迁移过程中遇到问题时可以快速恢复。可以选择基于文件系统的快照备份或基于逻辑备份的 pg_dump,并将备份数据存储在安全位置。

测试环境搭建

安装 PostgreSQL 并生成测试数据

PostgreSQL 版本为 15.8

$ psql --version
psql (PostgreSQL) 15.8 (Debian 15.8-0+deb12u1)

迁移库 pg_to_greatsql 库下的 users 表

pg_to_greatsql-# \d Users
                                          数据表 "public.users"
      栏位       |            类型             | 校对规则 |  可空的  |               预设                
-----------------+-----------------------------+----------+----------+-----------------------------------
 id              | integer                     |          | not null | nextval('users_id_seq'::regclass)
 username        | character varying(255)      |          | not null | 
 password      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值