前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KunlunBase指导手册(三)之数据导入&同步

KunlunBase指导手册(三)之数据导入&同步

作者头像
用户6256742
发布2024-06-26 09:46:37
1180
发布2024-06-26 09:46:37
举报
文章被收录于专栏:网络日志网络日志

一、环境

从原生PostgreSQL数据库迁移业务数据到KunlunBase集群。由于KunlunBase兼容postgreSQL协议,因此可以直接支持Pg数据导入导出工具:pg_dump和pg_restore。

但由于KunlunBase目前兼容的PostgreSQL版本是11.5,所以对于不一致的版本:较新版本工具可以兼容较旧版本,较旧版本工具不支持较新版本。

对于在线实时数据同步,KunlunBase支持Oracle GoldenGate,可以使用Oracle GoldenGate将数据从PostgreSQL或其他数据库(Oracle/SQL Server/MySQL等)同步到KunlunBase。

二、数据导出导入步骤

由于KunlunBase在插入数据时要求表存在主键,为确保数据迁移的成功,要求在原生PostgrSQL数据库导出数据的过程中分两步执行(第一步,导出数据结构, 第二步,导出实际数据)。

在恢复过程:先恢复数据结构,在导入数据,下面将分两个场景演示具体操作指令。

2.1 以表为单位

2.1.1 导出表结构
代码语言:javascript
复制
pg_dump -h 192.168.0.142 -p 5432 -tcustomer1_3 -t customer1_4  postgres-s>customer1_34str.sql  (-s 参数是只倒表结构)
2.1.2 导出表数据
代码语言:javascript
复制
pg_dump -h 192.168.0.142 -p 5432 -tcustomer1_3 -t customer1_4  postgres  -a >customer1_34_data.sq
2.1.3 恢复表结构
代码语言:javascript
复制
psql --dbname=bktest3  --host=192.168.0.142  --port=5401 -U abc -f  customer1_34str.sql
2.1.4 恢复表数据
代码语言:javascript
复制
psql --dbname=bktest3  --host=192.168.0.142  --port=5401 -U abc -f  customer1_34_data.sql

2.2 以数据库为单位

2.2.1 导出全库的表结构
代码语言:javascript
复制
pg_dump -d postgres -U postgres  -s>postgres_str.sql
2.2.2 导出全库的表数据
代码语言:javascript
复制
pg_dump -d postgres -U postgres  -a>postgres_data.sql

也可以dump及tar格式导出,减少空间及提高性能:

代码语言:javascript
复制
pg_dump -d postgres -U postgres  -a  -Fc >postgres_data.dump (尺寸最小)
pg_dump -d postgres -U postgres  -a  -Ft >postgres_data.tar
2.2.3 恢复全库表结构
代码语言:javascript
复制
psql --dbname=bktest2  --host=192.168.0.142  --port=5401 -U abc -f  postgres_str.sql
2.2.4 恢复全库表数据
代码语言:javascript
复制
psql --dbname=bktest2  --host=192.168.0.142  --port=5401 -U abc -f  postgres_data.sql

如果是dump格式导出的数据,需要使用pg_restore:

代码语言:javascript
复制
pg_restore -h 192.168.0.142 -p 5401 -U abc-d bktest2 postgres_data.dump

(pg_restore只能向下兼容,高版本的pg_dump导出的文件不能用低版本pg_restore恢复)

2.3 Oracle GoldenGate实时同步PostgreSQL到KunlunBase

2.3.1 安装部署Oracle GoldenGate

需要下载安装OGG for PostgreSql微服务版本,oggs_Linux_x64_PostgreSQL_services_shiphome版本。根据官方安装手册安装即可。

安装部署架构如下图:

KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
2.3.2 配置PostgreSQL数据源及KunlunBase目标

源数据库信息:ip地址 192.168.0.10,复制用户:postgres数据库名称:PGSOUR

目标数据库信息:ip地址 192.168.0.12,复制用户:postgres数据库名称:Kunlundb

设置数据库参数:

代码语言:javascript
复制
alter system set wal_level='logical';
alter system set max_replication_slots = 20;

编写OGG odbc.ini文件:

代码语言:javascript
复制
[ODBC Data Sources] 
PGDSN1=DataDirect 14 PostgreSQL Wire Protocol 
PGDSN2=DataDirect 11 PostgreSQL Wire Protocol   

[ODBC] 
IANAAppCodePage=106 
InstallDir=/ogg21/ogg_ma 

[PGDSN1] 
Driver=/ogg21/ogg_ma/lib/GGpsql25.so 
Description=DataDirect 14 PostgreSQL Wire Protocol 
Database=PGSOUR
HostName=192.168.0.10
PortNumber=5432 
LogonID=postgres 
Password=Kunluntest

[PGDSN2] 
Driver=/ogg21/ogg_ma/lib/GGpsql25.so 
Description=DataDirect 11 PostgreSQL Wire Protocol 
Database=KunlunDB 
HostName=192.168.0.12 
PortNumber=5401 
LogonID=postgres 
Password=Kunluntest
2.3.3 配置复制环境

创建身份证明及检查点表:

登录:

KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
2.3.4 配置&启动抽取进程
KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步

抽取进程配置文件:

代码语言:javascript
复制
extract ext1 
SETENV(PGCLIENTENCODING = "UTF8" ) 
SETENV(ODBCINI="/ogg21/ogg_ma/odbc.ini" ) 
SOURCEDB PGDSN1 USERIDALIAS PG1, DOMAIN OGGMA 
exttrail ./dirdat/e1 
IGNOREREPLICATES 
TRANLOGOPTIONS FILTERTABLE ogg.ckpt 
table public.*;
2.3.5 配置&启动复制进程
KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步

复制进程配置文件:

代码语言:javascript
复制
replicat rep1 
SETENV(PGCLIENTENCODING = "UTF8" ) 
SETENV(ODBCINI="/ogg21/ogg_ma/odbc.ini" ) 
SETENV(NLS_LANG="AMERICAN_AMERICA.AL32UTF8") 
TARGETDB PGDSN2 USERIDALIAS PG2, DOMAIN OGGMA 
map public.*, target public.*;
2.3.6 执行同步及检查同步

可以在源数据库插入数据,在目标数据库检查结果:

KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步

也可以通过管理界面查看复制进度 :

KunlunBase指导手册(三)之数据导入&同步
KunlunBase指导手册(三)之数据导入&同步
2.3.7 压力测试

压力测试包含两部分内容(由于测试的虚拟机环境机器配置低,压测的数据量比较小)

源端通过sysbench对postgresql实时数据插入, 检查目标端kunlundb数据的更新。

目标数据库在一定的负载下运行。

源端执行数据加载:

代码语言:javascript
复制
sysbench oltp_read_write --table-size=100000 --tables=10  --pgsql-host=192.168.0.10   --pgsql-port=5432  --pgsql-user=postgres  --pgsql-password=Kunluntest --pgsql-db=PGSOURE  --db-ps-mode=disable  --threads=1 --db-driver=pgsql   prepare

目标数据库执行压测脚本:

代码语言:javascript
复制
sysbench oltp_read_write --table-size=100 --tables=10  --pgsql-host=192.168.0.12   --pgsql-port=5401  --pgsql-user=abc  --pgsql-password=abc --pgsql-db=postgres  --db-ps-mode=disable  --threads=10 --db-driver=pgsql  --time=600 run

目标端检查数据同步情况:

代码语言:javascript
复制
select count(*) from sbtest10;
 count
-------
  100000
(1 row)

测试结论:通过

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、环境
  • 二、数据导出导入步骤
    • 2.1 以表为单位
      • 2.1.1 导出表结构
      • 2.1.2 导出表数据
      • 2.1.3 恢复表结构
      • 2.1.4 恢复表数据
    • 2.2 以数据库为单位
      • 2.2.1 导出全库的表结构
      • 2.2.2 导出全库的表数据
      • 2.2.3 恢复全库表结构
      • 2.2.4 恢复全库表数据
    • 2.3 Oracle GoldenGate实时同步PostgreSQL到KunlunBase
      • 2.3.1 安装部署Oracle GoldenGate
      • 2.3.2 配置PostgreSQL数据源及KunlunBase目标
      • 2.3.3 配置复制环境
      • 2.3.4 配置&启动抽取进程
      • 2.3.5 配置&启动复制进程
      • 2.3.6 执行同步及检查同步
      • 2.3.7 压力测试
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档