ITPub博客

首页 > 数据库 > 数据库开发技术 > 轻松迁移:从PostgreSQL到Klustron实践

轻松迁移:从PostgreSQL到Klustron实践

原创 数据库开发技术 作者:sjw1933 时间:2024-09-14 07:30:00 0 删除 编辑
「点击蓝字,关注我吧 」

作者:Digital Observer(施嘉伟)

Oracle ACE Pro: Database

PostgreSQL ACE Partner

11年数据库行业经验,现主要从事数据库服务工作

拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、PGCE、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证

ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师

公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;PGFans:施嘉伟。


背景


在数据库技术领域,随着业务的发展和技术的演进,选择适合的数据库平台变得尤为重要。对于已经使用 PostgreSQL 的用户来说,迁移到 Klustron 这样的分布式数据库可能是提升性能和扩展能力的一个不错选择。然而,数据库迁移并非简单的工作,如何保证数据的完整性和系统的稳定性,是每一个技术人员需要面对的挑战。

本文将为你提供从 PostgreSQL 数据库迁移到 Klustron 的一些基础思路和步骤,希望通过这些实践经验,能够为你的迁移过程提供一些参考和帮助。

PART

01
环境信息
pg版本 PostgreSQL 14.8
Klustron版本 1.3.1
PART

02
XPanel集群列表信息

PART

03
数据迁移
(一)原端数据导出

假设我们希望将postgres中的shijw这个数据库导入到Klustron数据库

 [postgres@localhost ~]$ psql
psql (14.8)
Type "help" for help.

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 appdb     | appuser  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 shijw     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(5 rows)

查看shijw数据库信息

postgres=# \c shijw
You are now connected to database "shijw" as user "postgres".

shijw=# \dt
           List of relations
 Schema |    Name    | Type  |  Owner   
--------+------------+-------+----------
 public | hard       | table | postgres
 public | test       | table | postgres
 public | test_table | table | postgres
 
 shijw=# select count(*) from hard;
  count   
----------
 12250000
(1 row)

shijw=# select count(*) from test;
  count  
---------
 1000000
(1 row)

shijw=# select count(*) from test_table;
  count  
---------
 1000000
(1 row)

远端导出shijw数据库

[kunlun@kunlun01 ~]$ PGPASSWORD=postgres pg_dump -h192.xxx.xxx.211 -p5666  -U postgres -d shijw --no-owner --no-privileges --quote-all-identifiers >  dbname.sql 
pg_dump: server version: 14.8; pg_dump version: 11.21


解释:由于 PostgreSQL 大版本不一致,pg_dump 无法直接导出数据。

确保 pg_dump 版本与 PostgreSQL 目标版本兼容。一般来说,pg_dump 可以向下兼容,但不一定能向上兼容。如果你需要从一个版本较新的 PostgreSQL 导出数据,并在较旧的版本中导入,可能会遇到问题。建议使用相同版本的 pg_dump 和 PostgreSQL 进行操作。

本地导出

[postgres@localhost ~]$ pg_dump -U postgres -d shijw --no-owner --no-privileges --quote-all-identifiers >  shijw.sql 

将备份介质拷贝到Klustron服务器

[postgres@localhost ~]$ scp shijw.sql root@192.xxx.xxx.47:/home/kunlun
root@192.xxx.xxx.47's password: 
shijw.sql                                                                                                                                                                            100% 3342MB  33.0MB/s   01:41   
(二)生产端数据导入
[kunlun@kunlun01 ~]$ PGPASSWORD=abc psql -h192.xxx.xxx.48 -p47001  -U abc -d postgres -f shijw.sql 
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
psql:shijw.sql:21: WARNING:  unrecognized mysql configuration parameter "default_table_access_method"
SET
CREATE TABLE
ALTER SEQUENCE
CREATE TABLE
CREATE SEQUENCE
ALTER SEQUENCE
CREATE TABLE
CREATE SEQUENCE
ALTER SEQUENCE
ALTER TABLE
ALTER TABLE
ALTER TABLE
COPY 12250000
COPY 1000000
COPY 1000000
  setval  
----------
 12250000
(1 row)

 setval  
---------
 1000000
(1 row)

 setval  
---------
 1000000
(1 row)
ALTER TABLE
ALTER TABLE
ALTER TABLE
(三)验证结果

总结
SUMMARY

通过本文的详细步骤介绍,相信你已经掌握了如何将 PostgreSQL 数据库成功迁移至 Klustron 数据库。从准备工作到数据导出、导入以及迁移后的验证,每一步都至关重要。迁移不仅仅是简单的数据传输,更是保障数据完整性和系统性能的关键环节。建议在实施过程中,定期备份,并通过小规模的数据迁移进行测试,以确保最终迁移的顺利进行。同时,务必要充分考虑数据库的兼容性,避免因功能差异或版本不一致引发的问题。

END


往期推荐:






RAC重生——彻底清除RAC节点信息


基于 Linux7 的 Kingbase 单机版数据库标准化安装指南


探索PolarDB开源版的性能测试之旅


师傅,为什么我找不到pg数据库日志?


探索Klustron数据库:高性能分布式新选择?







在看点这里

点击"阅读原文"


原文作者:Digital Observer;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
11年数据库行业经验,Oracle ACE、PG ACE、OCM、IBM Certified DBA、MySQL OCP、PolarDB技术专家、KCP、PCTP、PCSD、达梦师资认证、PolarDB开源社区技术顾问、ITPUB认证专家、某高校外聘教师

注册时间:2019-05-05

  • 博文量
    295
  • 访问量
    300749