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

SUNDB工具tablediff说明

原创 科蓝SUNDB编辑部 2023-09-22
103
  1. 定义
    tablediff是以row为单位对比通过CDC等工具同步的SUNDB的两张表的工具。与其他工具不同,它以java为基础而不是二进制,执行时也需要java。
    用于两个服务器通过cyclone执行一主一备时查看table间的同步是否正常,对没有进行同步的row进行同步操作。
    不使用选项进行启动,需要另外创建配置文件。通过读取配置文件可获取source, target间的关系或位置等,并输出报告未同步row的log文件和报告执行同步结果的log。

配置文件: 配置文件的路径为$SUNDB_DATA/conf/tablediff.conf,可设置source和target的连接信息,同步策略等。
此工具有2个执行命令语,各为TableDiff与TableSync。

  1. 用法
    SOURCE, TARGET表设置选项
    以下为定义源表(source)与目标表(target)的选项,因此必须设置。源表与目标表分别指要对比的对象表。
    ● SOURCE_URL:源表所在的SUNDB的JDBC connection URL。
    ● SOURCE_USER:源表所在的SUNDB的账号。
    ● SOURCE_PASSWORD:源表所在的SUNDB账号的密码。
    ● SOURCE_SCHEMA:源表的schema。
    ● SOURCE_TABLE:源表名。
    ● TARGET_URL:目标表所在的SUNDB的JDBC connection URL。
    ● TARGET_USER:目标表所在的SUNDB的账号。
    ● TARGET_PASSWORD:目标表所在的SUNDB账号的密码。
    ● TARGET_SCHEMA:目标表的schema。
    ● TARGET_TABLE:目标表名。

  2. 同步策略设置
    同步策略有如下4个属性。都可以为ON或OFF。
    ● TARGET_INSERT:源表中的key不存在于目标表时,将其key插入到目标表。
    ● TARGET_UPDATE:非key的column内容不同时,更新目标表的row。
    ● TARGET_DELETE:源表中没有的key在目标表时,删除目标表的row。
    ● SOURCE_INSERT:源表中没有的key在目标表时,在源表插入其row。
    6.4例子
    注册jar文件到CLASSPATH

export CLASSPATH=$CLASSPATH:$SUNDB_HOME/bin/tablediff.jar:$SUNDB_HOME/lib/Sundb6.jar

设置tablediff.conf
SOURCE_URL = jdbc:Sundb://127.0.0.1:22581/test
SOURCE_USER = TEST
SOURCE_PASSWORD = test
SOURCE_SCHEMA = PUBLIC
SOURCE_TABLE = TAB1
TARGET_URL = jdbc:Sundb://127.0.0.1:22581/test
TARGET_USER = TEST
TARGET_PASSWORD = test
TARGET_SCHEMA = PUBLIC
TARGET_TABLE = TAB2
OPERATION = SYNC
TARGET_INSERT = ON
TARGET_UPDATE = ON
TARGET_DELETE = ON
SOURCE_INSERT = OFF

创建实习表后tablediff的执行结果
gSQL> create table tab1 ( c1 integer primary key, c2 char(10) );
gSQL> create table tab2 ( c1 integer primary key, c2 char(10) );
gSQL> insert into tab1 values ( 1, ‘HELLO’);
gSQL> insert into tab2 values ( 1, ‘HELLO’);
gSQL> insert into tab1 values ( 2, ‘WORLD’);
gSQL> insert into tab2 values ( 2, ‘world’);
gSQL> insert into tab1 values ( 3, ‘good’);
gSQL> insert into tab2 values ( 4, ‘good’);
gSQL> commit;

shell> java sunje.Sundb.tool.diff.TableDiff tablediff.conf
Total 4 rows processed

row diff : 1, update target(success/failure): 1/0
key diff source only: 1, insert into target(success/failure): 1/0
key diff target only: 1, delete from target(success/failure): 1/0
TableDiff completed
elapsed time = 0.229 sec

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论