Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56844
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-01 13:27
个人简介

学习是一种信仰

文章分类

全部博文(18)

文章存档

2016年(8)

2015年(8)

2013年(2)

我的朋友

分类: Mysql/postgreSQL

2015-09-30 17:34:58

 

Skytools安装文档

1.安装软件

通过源码安装的方式安装londiste环境

本次安装需要提前在三台机器上安装好postgres,这里分别为root节点A,branch节点B,leaf节点C。

①在安装之前,需要确认几个依赖包是否已经安装好

[root@node1 postgresql-9.1.4]# python -V
Python 2.6.6                                                     --如果不存在,可以yum安装

②yum安装psycopg2
yum -y install python-psycopg2.x86_64

 

③源码安装skytools

[root@node1 src]# tar -xvf skytools-3.2.tar.gz

[root@node1 skytools-3.2]# ./configure --prefix=/usr/local/skytools-3.2  --with-pgconfig=/usr/local/pgsql/bin/pg_config

[root@node1 skytools-3.2]# make

[root@node1 skytools-3.2]# make install

 

***************************************************************************************

2.创建节点

创建主节点(A节点)

 

1 编辑环境.bash_profile

export PATH=$PATH:$HOME/bin:$PGHOME/bin:/usr/local/skytools-3.2/bin
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:/usr/local/skytools-3.2/lib:$LD_LIBRARY_PATH


2 创建PgQ ticker配置文件pgqd.ini

[postgres@node1 londiste]$ vi pgqd.ini

[pgqd]
# where to log
logfile = /home/postgres/londiste/pgqd.log
# pidfile
pidfile = /home/postgres/londiste/pgqd.pid
## optional parameters ##
# libpq connect string without dbname=
base_connstr = host=192.168.xxx.x user=pgq password=pgq port=5432
# startup db to query other databases
#initial_database = template1
# limit ticker to specific databases
database_list = pgq
# log into syslog
#syslog = 1
#syslog_ident = pgqd
## optional timeouts ##
# how often to check for new databases
#check_period = 60
# how often to flush retry queue
#retry_period = 30
# how often to do maintentance
#maint_period = 120
# how often to run ticker
ticker_period = 1


3 启动ticker daemon

[postgres@node1 londiste]$ pgqd -d pgqd.ini


 

4  配置p_skytf.init(源库)

[londiste3]
job_name = src_root
db = host=127.0.0.1 port=5432 dbname=pgq user=pgq password=pgq
pgq_queue_name = testing
logfile = /home/postgres/londiste/p_skytf.log
pidfile = /home/postgres/londiste/p_fskytf.pid

 

③初始化Londist源库:

[postgres@node1 londiste]$ londiste3 p_skytf.init create-root node_p 'host=192.168.xxx.x port=5432 user=pgq password=pgq dbname=pgq'
2014-11-10 19:56:05,125 13967 INFO plpgsql is installed
2014-11-10 19:56:05,126 13967 INFO pgq is installed
2014-11-10 19:56:05,129 13967 INFO pgq.get_batch_cursor is installed
2014-11-10 19:56:05,130 13967 INFO pgq_ext is installed
2014-11-10 19:56:05,131 13967 INFO pgq_node is installed
2014-11-10 19:56:05,132 13967 INFO londiste is installed
2014-11-10 19:56:05,134 13967 INFO londiste.global_add_table is installed
2014-11-10 19:56:05,158 13967 INFO Initializing node
2014-11-10 19:56:05,161 13967 INFO Location registered
2014-11-10 19:56:05,260 13967 INFO Node "node_p" initialized for queue "testing" with type "root"
2014-11-10 19:56:05,264 13967 INFO Done

 

④ 开启源库节点worker进程

[postgres@node1 londiste]$ londiste3 -d p_skytf.init worker

 

**********************************************************************

创建branch节点(B节点)

 
编辑环境.bash_profile

export PATH=$PATH:$HOME/bin:$PGHOME/bin:/usr/local/skytools-3.2/bin
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:/usr/local/skytools-3.2/lib:$LD_LIBRARY_PATH



4 配置branch_skytf.init(目标库)

[postgres@node2 londiste]$ vi branch_skytf.ini
[londiste3]
job_name = src_branch
db = dbname=pgq user=pgq port=5432 host=192.168.xxx.y password=pgq
pgq_queue_name = testing
logfile = /home/postgres/londiste/branch_skytf.log
pidfile = /home/postgres/londiste/branch_skytf.pid

 

③ 初始化Londist目标库

[postgres@node2 londiste]$ londiste3 branch_skytf.ini create-branch node_b 'host=192.168.xxx.y port=5432 user=pgq password=pgq dbname=pgq' --provide='host=192.168.xxx.x port=5432 user=pgq dbname=pgq password=pgq'
2014-11-10 20:20:19,355 28042 INFO plpgsql is installed
2014-11-10 20:20:19,357 28042 INFO Installing pgq
2014-11-10 20:20:19,357 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/pgq.sql
2014-11-10 20:20:19,746 28042 INFO pgq.get_batch_cursor is installed
2014-11-10 20:20:19,747 28042 INFO Installing pgq_ext
2014-11-10 20:20:19,747 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/pgq_ext.sql
2014-11-10 20:20:19,822 28042 INFO Installing pgq_node
2014-11-10 20:20:19,823 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/pgq_node.sql
2014-11-10 20:20:19,925 28042 INFO Installing londiste
2014-11-10 20:20:19,925 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/londiste.sql
2014-11-10 20:20:20,097 28042 INFO londiste.global_add_table is installed
2014-11-10 20:20:20,131 28042 INFO Initializing node
2014-11-10 20:20:20,211 28042 INFO Location registered
2014-11-10 20:20:20,220 28042 INFO Location registered
2014-11-10 20:20:20,231 28042 INFO Subscriber registered: node_b
2014-11-10 20:20:20,235 28042 INFO Location registered
2014-11-10 20:20:20,238 28042 INFO Location registered
2014-11-10 20:20:20,245 28042 INFO Node "node_s" initialized for queue "testing" with type "branch"
2014-11-10 20:20:20,252 28042 INFO Done

 

[postgres@node2 londiste]$ londiste3 -d branch_skytf.init worker

 

***************************************************

创建leaf节点(C节点)

 

① 编辑环境.bash_profile

export PATH=$PATH:$HOME/bin:$PGHOME/bin:/usr/local/skytools-3.2/bin
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:/usr/local/skytools-3.2/lib:$LD_LIBRARY_PATH

 

② 配置s62_skytf.init(目标库)

[postgres@node2 londiste]$ vi leaf_skytf.ini
[londiste3]
job_name = src_leaf
db = dbname=pgq user=pgq port=5432 host=192.168.xxx.z password=pgq
pgq_queue_name = testing
logfile = /home/postgres/londiste/leaf_skytf.log
pidfile = /home/postgres/londiste/leaf_skytf.pid

 

③ 初始化Londist目标库

[postgres@node2 londiste]$ londiste3 leaf_skytf.ini create-leaf node_s 'host=192.168.xxx.z port=5432 user=pgq password=pgq dbname=pgq' --provide='host=192.168.xxx.x port=5432 user=pgq dbname=pgq password=pgq'
2014-11-10 20:20:19,355 28042 INFO plpgsql is installed
2014-11-10 20:20:19,357 28042 INFO Installing pgq
2014-11-10 20:20:19,357 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/pgq.sql
2014-11-10 20:20:19,746 28042 INFO pgq.get_batch_cursor is installed
2014-11-10 20:20:19,747 28042 INFO Installing pgq_ext
2014-11-10 20:20:19,747 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/pgq_ext.sql
2014-11-10 20:20:19,822 28042 INFO Installing pgq_node
2014-11-10 20:20:19,823 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/pgq_node.sql
2014-11-10 20:20:19,925 28042 INFO Installing londiste
2014-11-10 20:20:19,925 28042 INFO   Reading from /opt/python2.7.8/share/skytools3/londiste.sql
2014-11-10 20:20:20,097 28042 INFO londiste.global_add_table is installed
2014-11-10 20:20:20,131 28042 INFO Initializing node
2014-11-10 20:20:20,211 28042 INFO Location registered
2014-11-10 20:20:20,220 28042 INFO Location registered
2014-11-10 20:20:20,231 28042 INFO Subscriber registered: node_s
2014-11-10 20:20:20,235 28042 INFO Location registered
2014-11-10 20:20:20,238 28042 INFO Location registered
2014-11-10 20:20:20,245 28042 INFO Node "node_s" initialized for queue "testing" with type "leaf"
2014-11-10 20:20:20,252 28042 INFO Done

 

[postgres@node2 londiste]$ londiste3 -d leaf_skytf.init worker

***************************************************

 

 

3 一些常用命令

查看主节点状态

[postgres@node1 londiste]$ londiste3 p_skytf.init status
Queue: testing   Local node: node_p

node_p (root)
  |                           Tables: 2/0/0
  |                           Lag: 2s, Tick: 14220
  +--: node_b (branch)
  |                           Tables: 2/0/0
  |                           Lag: 2s, Tick: 14220
  +--: node_s (leaf)
                              Tables: 1/1/0
                              Lag: 2s, Tick: 14220

 


阅读(611) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~