主数据库: 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. spring核心及常用技术

    一.核心内容 1.依赖注入(控制反转) 1)什么是依赖注入 spring将实例的创建交给spring容器(BeanFactory或ApplicationContext)管理,当实例创建后通过设值或构造 ...

  2. HDU 5642 King's Order 动态规划

    King's Order 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5642 Description After the king's speec ...

  3. 实战-130W表增加字段耗时

    工作需要对130W的表增加字段,因为是操作线上数据库,所以提前在本地调查下耗时. 首先建表: CREATE TABLE `alter_cloumn_test` ( `id` int(11) unsig ...

  4. linux基础命令学习(三)文件搜索 find

    1.使用name选项 查找自己的根目录$Home中的文件,可以用: find ~ -name "*.log" -print  查找当前目录下的文件,可以用: find . -nam ...

  5. 请不要乱用Kotlin ? 空检查

    直接上实例: fun main(args: Array<String>) { println("now, begin save data to database") v ...

  6. HDU 4585 Shaolin(水题,STL)

    Shaolin Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  7. Memcached源码分析——连接状态变化分析(drive_machine)

    这篇文章主要介绍Memcached中,基于libevent构造的主线程和worker线程所处理连接的状态互相转换的过程(不涉数据的存取等操作),也就是drive_machine的主要业务逻辑了.状态转 ...

  8. WebView 加载网页和java 与js交互

    [mw_shl_code=java,true]WebView是一个可以显示网页的控件.需求:通过WebView加载assets下的html文件.实现页面的缩放.向menu键添加:前进.后退和刷新,实现 ...

  9. mount umont

    如果想在运行的Linux下访问其它文件系统中的资源的话,就要用mount命令来实现. 2.      mount的基本用法是?格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: ...

  10. 3月题外:关于JS实现图片缩略图效果的一个小问题

    由于3月可能要结束实习,所以应该不会有特别固定的主题,另外我会在月初陆续补上上个月的番外篇Projection和TMS,作为介绍性的内容对矢量切片部分进行补充,剩下时间不定期写一些杂烩. 最近两天在做 ...