暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kingbase KFS学习实战(3)之目标端安装同步程序

山佳数峰寻道 2025-06-05
162
金仓学习路之学习笔记实验分享:

目标端环境准备

1、OS配置增加flysync用户、设置密码
    sudo adduser flysync
    echo flysync | passwd --stdin flysync


    id flysync
    sudo usermod -G kingbase flysync
    id flysync
    2、调整系统配置
      调整flysync的最大文件句柄数(open files)、允许创建的最大进程数量(max user processes)
      --在文件末尾添加以下内容:
      vi /etc/security/limits.conf
      grep flysync /etc/security/limits.conf
      -------增加内容 ---------------
      flysync   -  nofile  65535
      flysync   -  nproc     8096
      3hosts 文件配置
        vi /etc/hosts
        cat etc/hosts
        -------增加内容 ---------------
        192.168.40.40 oracle40
        192.168.40.111 node1
        192.168.40.112 node2
        4、配置network
          此外,需要在network中设置本机的 hostname 属性值。示例配置文件如下:
          vi etc/sysconfig/network 
          cat /etc/sysconfig/network
          -------写入内容 ---------------
          NETWORKING = yes
          HOSTNAME = node1

          5、上传rbenv包,并且安装ruby

            cp /install/rbenv_2.2.2_linux_x64.zip home/flysync/
            chown flysync:flysync home/flysync/rbenv_2.2.2_linux_x64.zip


            ls /home/flysync/rbenv_2.2.2_linux_x64.zip
            /home/flysync/rbenv_2.2.2_linux_x64.zip
            unzip -q home/flysync/rbenv_2.2.2_linux_x64.zip
            vi .bash_profile
            source .bash_profile
            ruby -v

            数据库层配置

            1、创建flysync 用户
              su - kingbase
              ksql -system -d test 
              CREATE USER flysync PASSWORD 'flysync'
              ALTER USER flysync REPLICATION;
              GRANT ALL ON DATABASE TEST TO flysync ;
              ALTER USER flysync SUPERUSER;
              2、配置数据库参数及认证配置文件并重启数据库
                #修改数据库参数
                ALTER SYSTEM SET wal_level ='logical';
                ALTER SYSTEM SET wal_keep_segments = 4;
                ALTER SYSTEM SET max_wal_senders =10;
                ALTER SYSTEM SET max_replication_slots =10;


                #配置认证文件
                cat >> /data/sys_hba.conf << EOF
                host    replication     all             0.0.0.0/0              scram-sha-256
                EOF


                #重启数据库生效
                sys_ctl restart -/data/
                3、创建用户、模式
                  ksql -system -d test
                  #创建用户
                  CREATE USER space01 PASSWORD 'space01';
                  #创建模式
                  create schema space01 authorization space01;
                  #设置参数search_path 为space01
                  ALTER USER space01 IN DATABASE test SET search_path to 'space01';
                  #查看
                  \du space01 
                  \dn space01 
                  \c test space01 
                  SHOW search_path ;

                  部署同步程序

                  1、上传解压并配置JDBC
                    tar -zxf KingbaseFlySync-V002R002C004B20240919-replicator.tar.gz
                    [flysync@node1 install]$ cd /install/KingbaseFlySync-V002R002C004B20240919-replicator/flysync-replicator/lib
                    [flysync@node1 lib]$ cp ../../extensions/jdbc/kingbase8-8.6.0.jar .
                    2、配置静默安装文件
                      #1、创建Kingbase FlySync配置文件
                      #2、配置Kingbase FlySync配置文件
                      cd install/KingbaseFlySync-*-replicator/flysync-replicator/samples/ini
                      cp flysync_kingbase8_source.ini ~/flysync.ini


                      vi  ~/flysync.ini
                      ------------写入内容----------
                      [defaults]
                      # 安装目录
                      install-directory=~/replicator
                      # 环境变量脚本位置
                      profile-script=~/.bash_profile
                      # rmi端口,默认11000
                      rmi-port=11000
                      repl_java_mem_size=2048


                      # 服务名
                      [kingbase]
                      # 监听kufl获取的端口
                      kufl-port=3112
                      # master主机名
                      master=node1
                      # 当前主机名
                      members=node1


                      # 数据源类型
                      datasource-type=kingbase
                      # 同步数据库信息
                      replication-host=node1
                      replication-user=flysync
                      replication-password=flysync
                      replication-port=54321


                      # 同步服务角色
                      role=master


                      ## 指定连接的数据库名称; 源端时,需指定解析方式
                      kingbase-dbname=test
                      kingbase-extractor-method=xlogical


                      ## kingbase 版本号
                      datasource-version=8


                      ## 过滤器开关配置
                      # svc_extractor_filters=replicate,casetransform,dropcolumn,rename
                      svc_extractor_filters=replicate,dropstatementdata
                      svc-remote-filters=rename,casetransform


                      ## 集群参数
                      # property=replicator.datasource.global.connectionSpec.use_cluster=true
                      # property=replicator.datasource.global.connectionSpec.slave_add=192.168.28.176,192.168.28.176
                      # property=replicator.datasource.global.connectionSpec.slave_port=1521,1521


                      ### 过滤器详细配置
                      ## replicate 表过滤
                      property=replicator.filter.replicate.do=space01.*
                      # property=replicator.filter.replicate.ignore=PUBLIC.T1
                      ## casetransform 大小写转换
                      property=replicator.filter.casetransform.to_upper_case=false


                      ## 优化参数
                      # 达到多少条记录后,分事务,默认 500
                      property=replicator.extractor.dbms.maxRowsByBlock=500
                      # 若多少秒没有新的事务产生,那么就直接返回该事务,不再等待合并
                      property=replicator.extractor.dbms.maxWaitingTime=2
                      # 大事务优化参数
                      property=replicator.extractor.dbms.minRowsPerBlock=4000


                      # 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数
                      repl_auto_recovery_max_attempts=0
                      # 系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,s(秒)、m(分钟)、h(小时)
                      repl_auto_recovery_delay_interval=30s
                      # 系统自动恢复次数重置时间,s(秒)、m(分钟)、h(小时)
                      repl_auto_recovery_reset_interval=300s


                      ##-----------------------分割线------------------
                      ###查看配置文件内容#
                      cat ~/flysync.ini |grep -v ^# |grep -v ^$
                      3、执行安装
                      4、配置license 文件
                        cd /install
                        unzip 2025kfslicense.zip 
                        cp /install/license_47307/license_47307_0.dat ~/replicator/license.dat
                        ls -l ~/replicator/ | grep license
                        5、生效环境变量
                          [flysync@node1 ~]source .bash_profile
                          [flysync@node1 ~]env|grep flysync
                          6、配置DML过滤策略_1
                            #配置DML过滤策略(作为源端时)
                            --1、只抽取space01模式下的增量数据,静默安装时已配置,确认配置。
                            cat ~/flysync.ini | grep -E "svc_extractor_filters|replicate.do"
                            6、配置DML过滤策略_2
                              #配置DML映射策略(作为目标端时)
                              --1、开启DML 映射功能,静默安装时已配置,确认配置。
                              cat ~/flysync.ini | grep -E "svc-remote-filters|to_upper_case"
                                --2、将SPACE01模式下的增量数据映射到space01下。
                                vi ~/replicator/filters-config/rename.csv
                                ------------清空原内容后写入以下内容-----------
                                # 业务表
                                SPACE01,*,*,space01,-,-


                                cat ~/replicator/filters-config/rename.csv
                                7、启动同步程序并置于offline状态并同步软件的运行状态

                                replicator start offline

                                查看同步软件的运行状态

                                fsrepctl -service kingbase services

                                好了 我们目标端的同步部署程序就已经部署好了。
                                • 总结:

                                • Kingbase KFS 提供了强大的数据抽取功能,能够满足不同场景下的数据同步需求。

                                • 通过合理的配置和优化,可以确保数据抽取的高效性和稳定性。

                                附录:

                                •      参考文档:金仓官方文档、KFS 用户手册。


                                文章转载自山佳数峰寻道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                评论