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

Kingbase KFS学习实战(2)之源端安装抽取程序

山佳数峰寻道 2025-03-24
204
金仓学习路之学习笔记实验分享:

源端环境按照

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


    id flysync
    sudo usermod -G oinstall,dba flysync
    id flysync


    su - flysync
    vi home/flysync/.bash_profile
    #添加oracle11g数据库环境变量
    export PATH=$PATH:/u01/app/oracle/product/11.2.0/dbhome_1/bin
    export ORACLE_SID=orcl
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1


    tail -3 home/flysync/.bash_profile
    source /home/flysync/.bash_profile
    2、调整系统配置

    调整flysync的最大文件句柄数(open files)、允许创建的最大进程数量(max user processes)

    --在文件末尾添加以下内容:

      vi etc/security/limits.conf
      grep flysync etc/security/limits.conf
      -------增加内容 ---------------
      flysync   - nofile  65535
      flysync   - nproc     8096
      3、hosts文件配置
        vi /etc/hosts
        cat etc/hosts
        -------增加内容 ---------------
        192.168.40.40 oracle40
        192.168.40.111 node1
        192.168.40.112 node2
        4、配置network
          vi etc/sysconfig/network 
          cat /etc/sysconfig/network
          -------写入内容 ---------------
          NETWORKING = yes
          HOSTNAME = oracle40
          5、上传rbenv压缩包,并且安装ruby
            [root@oracle40 ~]# cp install/rbenv_2.2.2_linux_x64.zip home/flysync/
            [root@oracle40 ~]# chown flysync:flysync home/flysync/rbenv_2.2.2_linux_x64.zip
            ##配置环境变量
            vi ~/.bash_profile
            ##写入以下内容----
            export RUBY_HOME=/home/flysync/rbenv/ruby
            export PATH=$RUBY_HOME/bin:$PATH
            ##加载环境变量
            source ~/.bash_profile
            ruby -v
            6、授权flysync 访问redo
              [flysync@oracle40 ~]ls -ld u01
              drwxr-xr-x 3 root root 16 1月   7 11:55 /u01
              [flysync@oracle40 ~]exit
              登出
              [root@oracle40 ~]# chmod g+r,g+x u01
              [root@oracle40 ~]# ls -ld u01
              drwxr-xr-x 3 root root 16 1月   7 11:55 /u01
              [root@oracle40 ~]#

              暑不尽的盛夏

              1、查看oracle监听状态
              2、查看oracle服务状态并将服务注册到监听程序
                [oracle@oracle40 ~]$ env|grep -i sid
                ORACLE_SID=orcl
                [oracle@oracle40 ~]$ sqlplus / as sysdba
                SQL> select name,open_mode from v$database;
                NAME                 OPEN_MODE
                -------------------- ------------------------------------------------------------
                ORCL                 READ WRITE
                SQL> alter system register;
                系统已更改。
                SQL> !lsnrctl status
                3、创建flysync用户
                  cp /install/privs.sql home/oracle/
                  chown oracle:oinstall home/oracle/privs.sql
                  ls -l home/oracle/privs.sql
                    CREATE USER FLYSYNC IDENTIFIED BY flysync;
                    GRANT CONNECT,DBA TO flysync;
                    GRANT CREATE SESSION TO flysync; 
                    GRANT UNLIMITED TABLESPACE TO flysync;
                    GRANT CREATE TABLE TO flysync;
                    GRANT EXECUTE_CATALOG_ROLE TO flysync; 
                    GRANT SELECT ANY DICTIONARY TO flysync; 
                    GRANT SELECT ON V_$PARAMETER TO flysync; 
                    GRANT SELECT ANY TABLE TO flysync; 
                    GRANT SELECT ANY TRANSACTION TO flysync;
                    4、验证flysync用户权限
                    5、用户的密码过期处理

                    6、开启归档、开启补全日志

                      SHUTDOWN immediate;
                      STARTUP MOUNT;
                      ALTER DATABASE archivelog;
                      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
                      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
                      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
                      ALTER DATABASE OPEN;
                      7、再次查看数据库归档情况、检查补全日志的状态

                      源环境环境检查

                      1、查看相关配置是否正常

                      确认其他的机器IP地址 是否正确

                      确认时区:

                      部署同步程序

                      1、上传软件包并解压
                        su - flysync
                        mkdir /home/flysync/install
                        cd /home/flysync/install
                        cp /install/KingbaseFlySync-V002R002C004B20240919-replicator.tar.gz ./
                        ls -l KingbaseFlySync-V002R002C004B20240919-replicator.tar.gz
                        tar -zxf KingbaseFlySync-*-replicator.tar.gz
                        2、配置JDBC驱动包
                          [flysync@oracle40 install]$ cd KingbaseFlySync-V002R002C004B20240919-replicator/flysync-replicator/lib
                          [flysync@oracle40 lib]$ cp ../../extensions/jdbc/kingbase8-8.6.0.jar .
                          3、静默安装文件
                            1、创建kingbase FlySync配置文件
                            cd ~/install/KingbaseFlySync-*-replicator/flysync-replicator/samples/ini/
                            cp flysync_oracle-logminer_source.ini ~/flysync.ini


                            2、配置Kingbase FlySync 配置文件
                            [defaults]
                            # 安装目录
                            install-directory=~/replicator
                            # 环境变量脚本位置
                            profile-script=~/.bash_profile
                            # rmi端口,默认11000
                            rmi-port=11000
                            repl_java_mem_size=2048


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


                            # 数据源类型
                            datasource-type=oracle
                            # 同步数据库信息
                            replication-host=oracle40
                            replication-user=FLYSYNC
                            replication-password=flysync
                            replication-port=1521


                            # 同步服务角色
                            role=master


                            ## oracle 指定连接的数据库名称
                            datasource-oracle-service=orcl
                            # oracle数据库需指定此项,解析增量方式logminer
                            oracle-extractor-method=redo


                            ## oracle-LOGMINER 同步表信息、scn号差值的阈值
                            property=replicator.extractor.dbms.tablePatterns=FLYSYNC.*,SPACE01.*
                            property=replicator.extractor.dbms.scnSegmentationThreshold=5000


                            ## 过滤器开关配置
                            ## dropstatementdata 不开启DDL同步
                            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=FLYSYNC.*,SPACE01.*
                            # property=replicator.filter.replicate.ignore=PUBLIC.T1
                            ## casetransform 大小写转换
                            property=replicator.filter.casetransform.to_upper_case=true


                            ## 优化参数
                            # 达到多少条记录后,分事务,默认 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


                            4、执行安装
                              [flysync@oracle40 ~]$ cd install/KingbaseFlySync-V002R002C004B20240919-replicator/
                              [flysync@oracle40 KingbaseFlySync-V002R002C004B20240919-replicator]$ ls
                              cluster-home  extensions  flysync-replicator  tools
                              [flysync@oracle40 KingbaseFlySync-V002R002C004B20240919-replicator]$ ./tools/fspm install
                              5、配置license文件
                              6、生效环境变量

                              7、配置DML过滤策略(作为源端时)

                              #只抽取SPACE01 模式下的增量数据,静默安装时已配置,确认配置

                              8、配置DM映射策略(作为目标端时)
                                --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
                                9、启动同步程序并置于offline状态
                                10、查看同步软件的运行状态
                                11、创建双轨切换配置文件
                                • 总结:

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

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

                                附录:

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

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

                                评论