ITPub博客

首页 > 数据库 > 国内数据库 > KunlunBase 快速入门 3.0(数据导入&同步)

KunlunBase 快速入门 3.0(数据导入&同步)

原创 国内数据库 作者:KunlunDB 时间:2022-04-07 11:18:35 0 删除 编辑
一、环境


从原生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 导出表结构
    pg_dump -h 192.168.0.142 -p 5432 -tcustomer1_3 -t customer1_4  postgres-s>customer1_34str.sql  (-s 参数是只倒表结构)

    2.1.2 导出表数据
      pg_dump -h 192.168.0.142 -p 5432 -tcustomer1_3 -t customer1_4  postgres  -a >customer1_34_data.sq

      2.1.3 恢复表结构
        psql --dbname=bktest3  --host=192.168.0.142  --port=5401 -U abc -f  customer1_34str.sql
         
        2.1.4 恢复表数据
          psql --dbname=bktest3  --host=192.168.0.142  --port=5401 -U abc -f  customer1_34_data.sql

          2.2 以数据库为单位
           
          2.2.1 导出全库的表结构
            pg_dump -d postgres -U postgres  -s>postgres_str.sql

            2.2.2 导出全库的表数据
              pg_dump -d postgres -U postgres  -a>postgres_data.sql

              也可以dump及tar格式导出,减少空间及提高性能:  
                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 恢复全库表结构
                  psql --dbname=bktest2  --host=192.168.0.142  --port=5401 -U abc -f  postgres_str.sql

                  2.2.4 恢复全库表数据
                    psql --dbname=bktest2  --host=192.168.0.142  --port=5401 -U abc -f  postgres_data.sql

                    如果是dump格式导出的数据,需要使用pg_restore:
                      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版本。根据官方安装手册安装即可。
                       
                      安装部署架构如下图:

                       
                      2.3.2 配置PostgreSQL数据源及 KunlunBase目标
                       
                      源数据库信息:ip地址 192.168.0.10,复制用户:postgres数据库名称:PGSOUR
                       
                      目标数据库信息:ip地址 192.168.0.12,复制用户:postgres数据库名称:Kunlundb

                      设置数据库参数:

                        alter system set wal_level='logical';alter system set max_replication_slots = 20;

                        编写OGG  odbc.ini文件:
                          
                          [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 配置复制环境
                           
                          创建身份证明及检查点表:

                          登录:




                          2.3.4 配置&启动抽取进程


                          抽取进程配置文件:  
                            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 配置&启动复制进程



                            复制进程配置文件:
                              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 执行同步及检查同步

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




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


                              2.3.7 压力测试

                               

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


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

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

                               

                              源端执行数据加载:  

                                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

                                 

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

                                  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


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

                                    select count(*) from sbtest10; count-------  100000(1 row)

                                     

                                    测试结论:通过

                                    点击阅读原文



                                    END


                                    来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70011764/viewspace-2885950/ ,如需转载,请注明出处,否则将追究法律责任。

                                    请登录后发表评论 登录
                                    全部评论

                                    注册时间:2021-12-27

                                    • 博文量
                                      103
                                    • 访问量
                                      31400