主数据库: 172.16.254.21 端口:5432
从数据库: 172.16.254.22 端口:5432

步骤1:主从均安装slon
apt-get install slon-bin
步骤2:主从数据库配置权限,创建语言。
在主数据库中   vi /etc/postgresql/8.3/node/pg_hba.conf
添加一条记录    host    all         repl         172.16.254.22/32  md5

在主从数据库均执行以下操作:
shell>psql
node=#create role repl password ‘123456’ login superuser
#创建用户repl,赋予超级用户权限
node=# use node;
node=# create language plpgsql;
#创建语言plpgsql
步骤3:备份主数据库至从数据库并恢复
#在主数据库备份要复制的数据库
pg_dump node > node_20100220.dmp
#在从库恢复数据库node
postgres=#create database node;
postgres=#\q
shell>psql node < node_20100220.dmp ;
步骤4:在从数据库/export/script目录下创建一个脚本replication,内容如下:
#!/bin/sh

SLONIK=/usr/bin/slonik
SLON=/usr/bin/slon

CLUSTER_NAME=mynode

MASTER=”host=172.16.254.21 dbname=node user=repl password=123456″
SLAVE=”host=172.16.254.22 dbname=node  user=repl password=123456″
LOG=/root

uninstall()
{
$SLONIK << _EOF_
cluster name = $CLUSTER_NAME;

node 1 admin conninfo = ‘$MASTER';
node 2 admin conninfo = ‘$SLAVE';

#       drop node (id = 2);
#       drop node (id = 1);

uninstall node (id = 2);
uninstall node (id = 1);
_EOF_
}

install()
{
$SLONIK << _EOF_
# 定义集群名字
cluster name = $CLUSTER_NAME;

# 定义两个节点
node 1 admin conninfo = ‘$MASTER';
node 2 admin conninfo = ‘$SLAVE';

try
{
# 初始化主节点
init cluster (id=1, comment = ‘Master Node’);

# 创建一个复制集合
create set (id=1, origin=1, comment = ‘All tables’);
# 在复制集合中添加一个需要复制的表
set add table ( set id=1, origin=1,id=1, fully qualified name=’public.hxf’,comment=’Table hxf’ );
#set add sequence (set id = 1, origin = 1, id = 3, fully qualified name = ‘public.hxf_seq’);
# 创建从节点
store node (id = 2, comment = ‘Slave node’);

# 定义节点之间的访问路径
store path (server = 1, client = 2, conninfo = ‘$MASTER’);
store path (server = 2, client = 1, conninfo = ‘$SLAVE’);

# 定义事件监听
store listen (origin = 1, provider = 1, receiver = 2);
store listen (origin = 2, provider = 2, receiver = 1);

# 订阅复制集合
subscribe set (id = 1, provider = 1, receiver = 2, forward = no);
}
on success
{
echo ‘Install OK!';
}
on error
{
echo ‘Install FAIL!';
}
_EOF_
}

start()
{
# 启动复制守护进程
$SLON $CLUSTER_NAME “$MASTER” >> /export/scripts/master.log &
$SLON $CLUSTER_NAME “$SLAVE” >> /export/scripts/slave.log &
}

stop()
{
#  killall slon
kill -9 `ps axu|grep ‘dbname=node’ |grep -v grep|awk ‘{print $2}’`
}

case $1 in
‘install’)
install
;;
‘uninstall’)
uninstall
;;
‘start’)
start
;;
‘stop’)
stop
;;
*)
echo “usage: $0 {install|uninstall|start|stop} ”
;;
esac
步骤5:启动
./replication start
步骤6:测试
1.在主数据库的空表public.hxf中添加一条记录
insert into hxf(uid,uname) select 1,’huangxifeng';
2.在主数据库中看到有一条记录
node=# select * from hxf;
uid |    uname
—–+————-
1 | huangxifeng
(1 row)
3.在从数据库中看到有一条记录
node=# select * from hxf;
uid |    uname
—–+————-
1 | huangxifeng
(1 row)

postgresql-slony-I同步复制配置步骤的更多相关文章

  1. MySQL数据库的主从同步复制配置

    一.主从同步机制原理 MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态), ...

  2. 烂泥:mysql5.5主从同步复制配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mys ...

  3. PostgreSQL单机、同步复制、异步复制性能测试对比

    测试环境: •测试机:PC •内存:8GB •CPU:Intel(R) Core(TM) i5-3450 3.10GHz •硬盘:HDD •数据量:20GB •测试工具:pgbench •Postgr ...

  4. MySQL半同步复制配置

    ansible-playbook -f 3 endpoint/mysql.yml -e "exec=fileConfig" -e "db_action=setAll&qu ...

  5. mysql5.5主从同步复制配置

    在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5 ...

  6. Mysql 半同步复制配置

    以下是配置和监控半同步复制: 1. 半同步复制功能以plugin的方式接入MySQL,需要在主库与从库两端同时开启半同步的支持,具体配置如下: On the master mysql> INST ...

  7. mysql 主从master-slave同步复制 配置,为读写分离准备

    1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...

  8. MySQL热机双备之双主同步复制配置

    此配置方案来源于csdn前辈博客,奈何找不到出处了,抱拳!!! 1.  MySQL同步机制概述 MySQL支持单向.异步复制,复制过程中一台服务器充当主服务器,一台或多台服务器充当从服务器,双主同步要 ...

  9. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)

    之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...

随机推荐

  1. 【带修改的主席树】BZOJ1901-Dynamic Rankings

    稍后整理笔记.这题数据范围好像有点问题? #include<iostream> #include<cstdio> #include<cstring> #includ ...

  2. 2017-2018-1 JAVA实验站 第四、五周作业

    2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...

  3. 精通android体系架构、mvc、常见的设计模式、控制反转(ioc)

    1.请看某个著名的it公司一则招聘信息的其中一条要求:“熟悉android系统架构及相关技术,1年以上实际android平台开发经验:”,里面非常明确的说道要求熟练android系统架构,这从某种程度 ...

  4. hdu 1011 树形dp+背包

    题意:有n个房间结构可看成一棵树,有m个士兵,从1号房间开始让士兵向相邻的房间出发,每个房间有一定的敌人,每个士兵可以对抗20个敌人,士兵在某个房间对抗敌人使无法走开,同时有一个价值,问你花费这m个士 ...

  5. Codeforces VK Cup 2015 - Qualification Round 1 D. Closest Equals 离线线段树 求区间相同数的最小距离

    D. Closest Equals Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/prob ...

  6. 再见了,DM

        在DM奋斗了20个月之后,我终于有机会DM说再见.这我不是我第一次和DM说再见,因此我也不确定这次的再见是再也不见,还是再次见面.但有一点可以确定的是,在接下来相当长的一段时间内,我是没有机会 ...

  7. SQLiteOpenHelper 操作不成功

    SDK和ADT为22.6.2版本号 project为4.4.2 今天在练习SQLiteOpenHelper里,使用的是三个JAVA文件操作.DatabaseHelper.java,Const.java ...

  8. uva 784 Maze Exploration(简单dfs)

    这道题看上去非常麻烦,什么迷宫啊.门之类的,事实上挺简单的,就是让把与 * 连通的都置为 # 包含 * , 直接dfs就能够了,只是我wa了好多次...最后居然是多读了一个换行.忘了加getchar( ...

  9. Informatica 常用组件Source Qualifier之五 User Defined Join

    User defined join :      输入用户定义的联接与输入自定义 SQL 查询类似.但是,只需输入 WHERE 子句的内容,而不是整个查询. 添加用户定义的联接时,源限定符转换包括默认 ...

  10. 高性能CSS

    避免使用@import 有两种方式加载样式文件,一种是link元素,另一种是CSS 2.1加入@import.而在外部的CSS文件中使用@import会使得页面在加载时增加额外的延迟.虽然规则允许在样 ...