工具集使用前,如果没有UXDB数据库,需要初始化一个UXDB数据库,然后启动这个数据库,具体方法可以参见《优炫数据库安装手册 V2.1》。工具集使用需要一些参数,为了说明的方便,假设连接信息如下:
MySQL连接信息
主机IP:192.168.0.163
主机port:3306
用户名称:mysql_user1
用户密码:123456
数据库名称:mysqldb
UXDB连接信息
主机IP和port:192.168.0.3:5432
用户名称:uxdb
用户密码:123456
数据库名称:uxdb
这里只先介绍工具常用的参数和用法。更多使用方法可以参见帮助说明。例如:运行sync_def -?可以看见一些使用例子和参数说明。
首先在mysql_migration_inc目录下可以看见一个配置文件conn.config,它有7个配置项,修改这7个配置项如下:
mysql_host=192.168.0.163 mysql_port=3306 mysql_log_user=root uxdb_server_host=192.168.0.164 uxdb_server_port=5432 uxdb_server_dbname=uxdb uxdb_log_user=uxdb
运行init_foreign_server_inc:
./init_foreign_server_inc -f conn.config -p 123456 -r 123456
init_foreign_server_inc的参数包含UXDB连接信息和MySQL连接密码,此时并没有连接MySQL,只是将MySQL连接信息写人UXDB的foreign server。
./sync_def_inc -f conn.config -p 123456 -r 123456 -l mysqldb
在UXDB中生成schema: mysqldb_ux_migration_sync。
在UXDB中建立MySQL相同名和表结构的表,比如MySQL中有表test_table(id int,name mediumtext,primary key(id)),那么在UXDB中生成相应的本地表test_table(id int,name text,primary key(id))。
同时生成一个外部表test_table_uxmigrationftbl(id int,name text)。
./sync_table_inc -f conn.config -p ux123456 -r mysql123456 -l mysqldb > not_sync.txt
把MySQL数据库mysqldb中的表数据同步到UXDB中已经建立好的本地表,not_sync.txt记录下了没有成功的表名称。
./sync_table_inc -f conn.config -p ux123456 -r mysql123456 -t mysqldb.test_table
同步单表数据。
./add_table_inc -f conn.config -p ux123456 -r mysql123456 -l table_owner1
检查schema为table_owner1的所有新增表,如果有新增那么就同步过来。
./add_table_inc -f conn.config -p ux123456 -r ora123456 -t table_owner1.test_table
检查是否有新增表table_owner1.test_table,如果有就同步过来。
./analyse_result_inc -f conn.config -p ux123456 -r mysql123456 -l mysqldb > not_correpond.txt
对比两边数据库对应表记录数目,把不一致的记录到文件not_correspond.txt。
./analyse_result_inc -f conn.config -p ux123456 -r mysql123456 -t mysqldb.test_table
也可以对比单表记录数目。