ITPub博客

首页 > 数据库 > 国内数据库 > kdb的prosync配置

kdb的prosync配置

原创 国内数据库 作者:bogengwang 时间:2015-12-13 22:31:31 0 删除 编辑

prosync是kdb的数据同步工具,类似ogg而已。


我的操作系统:

点击(此处)折叠或打开

  1. [tb@wbg config]$ lsb_release -a
  2. 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
  3. Distributor ID: RedHatEnterpriseServer
  4. Description: Red Hat Enterprise Linux Server release 6.6 (Santiago)
  5. Release: 6.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

点击(此处)折叠或打开

  1. #-------------------------------------------------
  2. # /u01/tibero6/client/config/tbdsn.tbr
  3. # Network Configuration File.
  4. # Generated by gen_tip.sh at Wed Dec 9 23:06:19 CST 2015
  5. wbg=(
  6. (INSTANCE=(HOST=localhost)
  7. (PORT=8629)
  8. (DB_NAME=wbg)
  9. )
  10. )
  11. tgt=(
  12. (INSTANCE=(HOST=1.1.1.2)
  13. (PORT=8629)
  14. (DB_NAME=wbg)
  15. )
  16. )
4.对于要同步的对象,要追加补充日志,例如:
    alter table test.test_dml_l add supplemental log data (all) columns;
5.操作系统用户的profile,最后两个参数,是为了满足prosync,追加的

点击(此处)折叠或打开

  1. export TB_HOME=/u01/tibero6
  2. export TB_SID=wbg
  3. export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
  4. export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin
  5. export TBSYNC_HOME=$TB_HOME/client/tbsync
  6. export PATH=$TB_HOME/client/tbsync/bin:$PATH

prosync准备工作(文件目录,参照我的profile):

1.prosync的运行配置文件

点击(此处)折叠或打开

  1. cd /u01/tibero6/client/tbsync/config/
  2. cp tbsync_after.cfg.eg tbsync_after.cfg
参照模版,先拷贝一份,然后对 tbsync_after.cfg进行编辑。
如下配置项需要改,带有host的参数要参照自己的dsn配置
GLOBAL ID RELATED部分,是prosync自己的工作日志,自己随意找个位置就行
带有PWD的参数,是prosync工作用户的口令文件

点击(此处)折叠或打开

  1. SOURCE_HOST=wbg
  2. TARGET_HOST=tgt
  3. RULE_HOST=wbg
  4. DUMMY_HOST=wbg
  5. TX_HOST=wbg
  6. MON_HOST=wbg
  7. LOG_ARCHIVE_DEST=/u01/tibero6/database/wbg/archive/    //source的归档位置
  8. dummy_tx_upd_period=3                                    //同步日志的周期
  9. #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
  10. ## 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的工作端口
  11. SOURCE_PWD=t
    TARGET_PWD=t
    RULE_PWD=t
    DUMMY_PWD=t
    TX_PWD=t
    MON_PWD=t
2.prosync的安装配置文件
对于安装配置文件/u01/tibero6/client/tbsync/admin/tbsync_setup.cfg,要改的参数如下:
(其中带有_DB_NAME的,写上source和target的db name,带有_ALIAS的写上对应的dsn的名称
(这个文件中暗藏很多的空格,在vi中执行  %s/\s\+$// ,去掉这些空格

点击(此处)折叠或打开

  1. SRC_DB_NAME=wbg
  2. SRC_ALIAS0=wbg
  3. RULE_ALIAS=wbg
  4. TAR_DB_NAME0=wbg
  5. MON_ALIAS=wbg
3.prosync的进程文件
准备抽取进程文件和发送进程文件,这两个文件都是从一个文件中拷贝出来的

点击(此处)折叠或打开

  1. cd /u01/tibero6/client/bin/
  2. cp prosync_t2t /u01/tibero6/client/tbsync/bin/prosync_ext
  3. cp prosync_t2t /u01/tibero6/client/tbsync/bin/prosync_const
4.抽取对象的列表和发送对象的列表(这个不用自己准备),把自己要同步的都写进去就行了

点击(此处)折叠或打开

  1. /u01/tibero6/client/tbsync/admin/rule_db/src_db/src_tbl.list
  2. /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里面的配置去写


点击(此处)折叠或打开

  1. [tb@wbg admin]$ ./tbsync_install.sh
  2. *****************************************************
  3. CHECK ENV&INPUT PARAMETER
  4. *****************************************************
  5. -- OS_TYPE = [LINUX] : ok
  6. - loading tbsync_setup.cfg : ok
  7. - check TB_HOME & TBSYNC_HOME : ok
  8. -- TB_HOME = [/u01/tibero6] : ok
  9. -- TBSYNC_HOME = [/u01/tibero6/client/tbsync] : ok
  10. Enter SRC_SYS_ID[SYS] password:
  11. Enter SRC_TBYSNC_USER_ID[tbsync] password:
  12. Enter RULE_SYS_ID[SYS] password:
  13. Enter RULE_TBYSNC_USER_ID[tbsync] password:
  14. Enter TAR_SYS_ID0[SYS] password:
  15. Enter TAR_TBSYNC_USER_ID0[tbsync] password:
  16. Enter MON_SYS_ID[SYS] password:
  17. Enter MON_TBSYNC_USER_ID[tbsync_mon] password:
  18. - check password : ok
  19. -- source node count = [ 1 ] : ok
  20. -- source prosync user id =[ tbsync ] : ok
  21. -- target database type[0] = [ TIBERO ] : ok
  22. -- target prosync user id[0] = [ tbsync ] : ok
  23. -- monitoring prosync user id = [ tbsync_mon ] : ok
  24. - check connection : ok
  25. *****************************************************
  26. SOURCE RULE DB SETUP : START
  27. *****************************************************
  28. - delete trigger [ tbsync ] : ok
  29. - check tablespace name [ _TBSYNC_1_WAY ] : ok
  30. - user creation [ tbsync ] : ok
  31. - check tablespace name [ TBSYNC_TBLSPC ] : ok
  32. - user creation [ tbsync ] : ok
  33. - generate ./rule_db/src_db/sql/supp.sql : ok
  34. - execute ./rule_db/src_db/sql/supp.sql : ok
  35. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_tbl_drop.sql [ tbsync ] : ok
  36. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_tbl_create.sql [ tbsync ] : ok
  37. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/ui_tbl_drop.sql [ tbsync ] : ok
  38. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/ui_tbl_create.sql [ tbsync ] : ok
  39. - execute switch logfile ddl : ok
  40. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/ddl_trigger.sql : ok
  41. - generate /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/register_src_table.sql : ok
  42. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/register_src_table.sql : ok
  43. - generate /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_tac0.sql : ok
  44. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_tac0.sql : ok
  45. - generate /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_multi_tar0.sql TAR_ALIAS[0][tgt] : ok
  46. - execute /u01/tibero6/client/tbsync/admin/rule_db/src_db/sql/rule_init_after_multi_tar0.sql TAR_ALIAS[0][tgt] : ok
  47. *****************************************************
  48. SOURCE RULE DB SETUP : COMPLETED
  49. *****************************************************
  50. *****************************************************
  51. TARGET RULE DB[0] SETUP : START
  52. *****************************************************
  53. - check tablespace name[0] [ _TBSYNC_1_WAY ] : ok
  54. - user creation[0] [ tbsync ] : ok
  55. - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/rule_tbl_drop.sql[0] [ tbsync ] : ok
  56. - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/rule_tbl_create.sql[0] [ tbsync ] : ok
  57. - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/dbms_prosync.pks(b)[0] [ tbsync ] : ok
  58. - execute switch logfile ddl[0] : ok
  59. - generate /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/target_init_after_tac1.sql TAR_ALIAS[0][tgt] : ok
  60. - execute /u01/tibero6/client/tbsync/admin/rule_db/tar_db/sql/target_init_after_tac1.sql TAR_ALIAS[0][tgt] : ok
  61. - 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
  62. - 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
  63. *****************************************************
  64. TARGET RULE DB[0] SETUP : COMPLETED
  65. *****************************************************
  66. *****************************************************
  67. MONITORING RULE DB SETUP : START
  68. *****************************************************
  69. - check tablespace name [ _TBSYNC_1_WAY ] : ok
  70. - user creation [ tbsync_mon ] : ok
  71. - execute /u01/tibero6/client/tbsync/admin/rule_db/mon_db/sql/rule_tbl_drop.sql [ tbsync_mon ] : ok
  72. - execute /u01/tibero6/client/tbsync/admin/rule_db/mon_db/sql/rule_tbl_create.sql [ tbsync_mon ] : ok
  73. *****************************************************
  74. MONITORING RULE DB SETUP : COMPLETED
  75. *****************************************************
如果你也能这样输入日志,那么你就安装成功了。
在source数据库中,会增加TBSYNC、TBSYNC_MON这两个用户。
在target数据库中,会增加TBSYNC这一个用户。


启动prosync,进行验证

点击(此处)折叠或打开

  1. prosync_ext ext 1 &
  2. prosync_const const 1 &
顺便说一下对应的关闭进程的命令,其实kill掉也可以

点击(此处)折叠或打开

  1. prosync_ext ext_down 1
  2. prosync_const const_down 1

现在,如果一个表,在你的src_tbl.list和target_table_group1.list都有的话,是应该可以同步的。
在source端插入一条记录看看吧,再检验一下target端,祝你成功。
额。。。赓赓。。。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30202921/viewspace-1871583/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-04-11

  • 博文量
    21
  • 访问量
    58262