prosync是kdb的数据同步工具,类似ogg而已。
我的操作系统:
点击(此处)折叠或打开
- [tb@wbg config]$ lsb_release -a
- LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
- Distributor ID: RedHatEnterpriseServer
- Description: Red Hat Enterprise Linux Server release 6.6 (Santiago)
- Release: 6.6
- Codename: Santiago
我准备了2台虚拟机,一台的ip是1.1.1.1,另一台的ip是1.1.1.2
1.1.1.1作为source端,1.1.1.2作为target端
数据库准备工作:
1.数据库为归档模式
2.数据库的启动参数必须加入如下两项
_ENABLE_LOG_MINER=Y
_DDL_TRIGGER_ENABLE=Y
3.source和target这个两个数据库的网络信息,都要在source数据库的dsn中进行配置,让source数据库可以通过网络连接到自己和target
点击(此处)折叠或打开
- #-------------------------------------------------
- # /u01/tibero6/client/config/tbdsn.tbr
- # Network Configuration File.
- # Generated by gen_tip.sh at Wed Dec 9 23:06:19 CST 2015
- wbg=(
- (INSTANCE=(HOST=localhost)
- (PORT=8629)
- (DB_NAME=wbg)
- )
- )
- tgt=(
- (INSTANCE=(HOST=1.1.1.2)
- (PORT=8629)
- (DB_NAME=wbg)
- )
- )
alter table test.test_dml_l add supplemental log data (all) columns;
5.操作系统用户的profile,最后两个参数,是为了满足prosync,追加的
点击(此处)折叠或打开
- export TB_HOME=/u01/tibero6
- export TB_SID=wbg
- export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
- export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin
- export TBSYNC_HOME=$TB_HOME/client/tbsync
- export PATH=$TB_HOME/client/tbsync/bin:$PATH
prosync准备工作(文件目录,参照我的profile):
1.prosync的运行配置文件
点击(此处)折叠或打开
- cd /u01/tibero6/client/tbsync/config/
- cp tbsync_after.cfg.eg tbsync_after.cfg
如下配置项需要改,带有host的参数要参照自己的dsn配置
GLOBAL ID RELATED部分,是prosync自己的工作日志,自己随意找个位置就行
带有PWD的参数,是prosync工作用户的口令文件
点击(此处)折叠或打开
- SOURCE_HOST=wbg
- TARGET_HOST=tgt
- RULE_HOST=wbg
- DUMMY_HOST=wbg
- TX_HOST=wbg
- MON_HOST=wbg
- LOG_ARCHIVE_DEST=/u01/tibero6/database/wbg/archive/ //source的归档位置
- dummy_tx_upd_period=3 //同步日志的周期
- #GLOBAL ID RELATED
GID_DIR=/u01/tibero6/client/tbsync/log/gid
TLI_DIR=/u01/tibero6/client/tbsync/log/tli
PARSE_DIR=/u01/tibero6/client/tbsync/log/parse
LONG_TX_DIR=/u01/tibero6/client/tbsync/log/long_tx
LOG_BACKUP_DIR=/u01/tibero6/client/tbsync/log/backup
TLI_TRACE_FILE=/u01/tibero6/client/tbsync/log/tli_trace.log - ## EXT -> CONST MODE (NETWORK(v))##
EXT_TO_CONST_MODE=NETWORK
## 1) CONST PROCESS IP
NETWORK_IP=1.1.1.1 //source的ip
## 2) CONST PROCESS PORT
NETWORK_PORT=8501 //prosync的工作端口 - SOURCE_PWD=t
TARGET_PWD=t
RULE_PWD=t
DUMMY_PWD=t
TX_PWD=t
MON_PWD=t
对于安装配置文件 /u01/tibero6/client/tbsync/admin/ tbsync_setup.cfg,要改的参数如下:
(其中带有_DB_NAME的,写上source和target的db name,带有_ALIAS的写上对应的dsn的名称)
(这个文件中暗藏很多的空格,在vi中执行 %s/\s\+$// ,去掉这些空格)
点击(此处)折叠或打开
- SRC_DB_NAME=wbg
- SRC_ALIAS0=wbg
- RULE_ALIAS=wbg
- TAR_DB_NAME0=wbg
- MON_ALIAS=wbg
准备抽取进程文件和发送进程文件,这两个文件都是从一个文件中拷贝出来的
点击(此处)折叠或打开
- cd /u01/tibero6/client/bin/
- cp prosync_t2t /u01/tibero6/client/tbsync/bin/prosync_ext
- cp prosync_t2t /u01/tibero6/client/tbsync/bin/prosync_const
点击(此处)折叠或打开
- /u01/tibero6/client/tbsync/admin/rule_db/src_db/src_tbl.list
- /u01/tibero6/client/tbsync/config/target_table_group1.list
5.运行/u01/tibero6/client/tbsync/admin/tbsync_install.sh,安装prosync。
中间要输入source的sys密码,有一些prosync的工作用户的密码,要照着tbsync_after.cfg里面的配置去写
点击(此处)折叠或打开
- [tb@wbg admin]$ ./tbsync_install.sh
- *****************************************************
- CHECK ENV&INPUT PARAMETER
- *****************************************************
- -- OS_TYPE = [LINUX] : ok
- - loading tbsync_setup.cfg : ok
- - check TB_HOME & TBSYNC_HOME : ok
- -- TB_HOME = [/u01/tibero6] : ok
- -- TBSYNC_HOME = [/u01/tibero6/client/tbsync] : ok
- Enter SRC_SYS_ID[SYS] password:
- Enter SRC_TBYSNC_USER_ID[tbsync] password:
- Enter RULE_SYS_ID[SYS] password:
- Enter RULE_TBYSNC_USER_ID[tbsync] password:
- Enter TAR_SYS_ID0[SYS] password:
- Enter TAR_TBSYNC_USER_ID0[tbsync] password:
- Enter MON_SYS_ID[SYS] password:
- Enter MON_TBSYNC_USER_ID[tbsync_mon] password:
- - check password : ok
- -- source node count = [ 1 ] : ok
- -- source prosync user id =[ tbsync ] : ok
- -- target database type[0] = [ TIBERO ] : ok
- -- target prosync user id[0] = [ tbsync ] : ok
- -- monitoring prosync user id = [ tbsync_mon ] : ok
- - check connection : ok
- *****************************************************
- SOURCE RULE DB SETUP : START
- *****************************************************
- - delete trigger [ tbsync ] : ok
- - check tablespace name [ _TBSYNC_1_WAY ] : ok
- - user creation [ tbsync ] : ok
- - check tablespace name [ TBSYNC_TBLSPC ] : ok
- - user creation [ tbsync ] : ok
- - generate ./rule_db/src_db/sql/supp.sql : ok
- - execute ./rule_db/src_db/sql/supp.sql : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_tbl_drop.sql [ tbsync ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_tbl_create.sql [ tbsync ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/ui_tbl_drop.sql [ tbsync ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/ui_tbl_create.sql [ tbsync ] : ok
- - execute switch logfile ddl : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/ddl_trigger.sql : ok
- - generate /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/register_src_table.sql : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/register_src_table.sql : ok
- - generate /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_tac0.sql : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_tac0.sql : ok
- - generate /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_multi_tar0.sql TAR_ALIAS[0][tgt] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_multi_tar0.sql TAR_ALIAS[0][tgt] : ok
- *****************************************************
- SOURCE RULE DB SETUP : COMPLETED
- *****************************************************
- *****************************************************
- TARGET RULE DB[0] SETUP : START
- *****************************************************
- - check tablespace name[0] [ _TBSYNC_1_WAY ] : ok
- - user creation[0] [ tbsync ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/rule_tbl_drop.sql[0] [ tbsync ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/rule_tbl_create.sql[0] [ tbsync ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/dbms_prosync.pks(b)[0] [ tbsync ] : ok
- - execute switch logfile ddl[0] : ok
- - generate /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/target_init_after_tac1.sql TAR_ALIAS[0][tgt] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/target_init_after_tac1.sql TAR_ALIAS[0][tgt] : ok
- - generate /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/target_init_after_multi_tar0.sql SRC_ALIAS[0][wbg] TAR_ALIAS[0][tgt] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/target_init_after_multi_tar0.sql SRC_ALIAS[0][wbg] TAR_ALIAS[0][tgt] : ok
- *****************************************************
- TARGET RULE DB[0] SETUP : COMPLETED
- *****************************************************
- *****************************************************
- MONITORING RULE DB SETUP : START
- *****************************************************
- - check tablespace name [ _TBSYNC_1_WAY ] : ok
- - user creation [ tbsync_mon ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/mon_db/sql/rule_tbl_drop.sql [ tbsync_mon ] : ok
- - execute /u01/tibero6/client/tbsync/admin/rule_db/mon_db/sql/rule_tbl_create.sql [ tbsync_mon ] : ok
- *****************************************************
- MONITORING RULE DB SETUP : COMPLETED
- *****************************************************
在source数据库中,会增加TBSYNC、TBSYNC_MON这两个用户。
在target数据库中,会增加TBSYNC这一个用户。
启动prosync,进行验证
点击(此处)折叠或打开
- prosync_ext ext 1 &
- prosync_const const 1 &
点击(此处)折叠或打开
- prosync_ext ext_down 1
- prosync_const const_down 1
现在,如果一个表,在你的 src_tbl.list和target_table_group1.list都有的话,是应该可以同步的。
在source端插入一条记录看看吧,再检验一下target端,祝你成功。
额。。。赓赓。。。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30202921/viewspace-1871583/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30202921/viewspace-1871583/