postgresql-slony-I同步复制配置步骤

主数据库: 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)

时间: 2024-10-24 16:59:34

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

ssdb 主从同步复制配置详细步骤

SSDB 的配置文件是一种层级 key-value 的静态配置文件, 通过一个 TAB 缩进来表示层级关系. 以 '#' 号开始的行是注释.  ssdb的使用遵循redis协议,读写性能都特别快. 有时我们在使用数据库时,像mongodb,redis和一些关系行数据,为了使数据更加安全,作为备份使用我们经常习惯使用主从复制架构,当主机上的数据出现问题时,我们就可以连接到slave机器 也就是另外一台机器会从主机上进行同步数据,如果我们使用linux命令 netstat -apn,会发现slave

mysql5.5主从同步复制配置

在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5.1.7以前版本与其以后的版本在主从同步部分参数不同.mysql5.1.7以后的版本中不支持master-connect-retry之类的参数.如果在my.cnf文件中加入该类似的参数,mysql会在下次重启时报错. 说明:主库master与从库slave都是centos6.5 64bit,如下: cat /

MySQL半同步复制配置

ansible-playbook -f 3 endpoint/mysql.yml -e "exec=fileConfig" -e "db_action=setAll" -e "paras={'plugin-load':'semisync_master.so;semisync_slave.so',rpl_semi_sync_master_enabled:'1',rpl_semi_sync_master_timeout:'1000',rpl_semi_sync

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

本文首发于烂泥行天下. 在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5.1.7以前版本与其以后的版本在主从同步部分参数不同.mysql5.1.7以后的版本中不支持master-connect-retry之类的参数.如果在my.cnf文件中加入该类似的参数,mysql会在下次重启时报错. 说明:主库master与从库slave都是centos6.5 64b

mysql5.6 semi replication 半同步复制配置

--###半同步配置--1.插件位置mysql> show variables like 'plugin_dir' -> ;+---------------+------------------------------+| Variable_name | Value |+---------------+------------------------------+| plugin_dir | /usr/local/mysql/lib/plugin/ |+---------------+----

mysql-5.6.x半同步复制配置

本文环境   主库:CentOS6.5 x64 192.168.0.65 mysql-5.6.29    备库:CentOS6.5 x64 192.168.0.66 mysql-5.6.29 接上文: mysql-5.6主从同步配置示例http://koumm.blog.51cto.com/703525/1764093 半同步复制的概念:    mysql5.5.x以上版本支持半同步复制,当Slave主机连接到Master时,能够查看其是否处于半同步复制的机制.当Master上开启半同步复制的功

Mysql 半同步复制配置

以下是配置和监控半同步复制: 1. 半同步复制功能以plugin的方式接入MySQL,需要在主库与从库两端同时开启半同步的支持,具体配置如下: On the master mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’; mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1; mysql> SET GLOBAL rpl_semi_sync_mast

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

1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ,默认3306.配置如下 主节点 [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 basedir = D:\developer\mysql-5.6.24-win32 datadir = D:\developer\mysql-5.6.24-win32\data #

金庸武功之“”左右互搏术“”postgresql 主从异步流复制配置

一.环境准备 a.关闭selinxu b.关闭iptables c.centos6.5 d.postgresql9.4.4 master:192.168.1.211 slave:  192.168.1.212 时间同步: #同步系统时间 [[email protected] ~]#  rm  -rf  /etc/localtime [[email protected] ~]#  ln  -s   /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime