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)
postgresql-slony-I同步复制配置步骤的更多相关文章
- MySQL数据库的主从同步复制配置
一.主从同步机制原理 MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态), ...
- 烂泥:mysql5.5主从同步复制配置
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mys ...
- PostgreSQL单机、同步复制、异步复制性能测试对比
测试环境: •测试机:PC •内存:8GB •CPU:Intel(R) Core(TM) i5-3450 3.10GHz •硬盘:HDD •数据量:20GB •测试工具:pgbench •Postgr ...
- MySQL半同步复制配置
ansible-playbook -f 3 endpoint/mysql.yml -e "exec=fileConfig" -e "db_action=setAll&qu ...
- mysql5.5主从同步复制配置
在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5 ...
- Mysql 半同步复制配置
以下是配置和监控半同步复制: 1. 半同步复制功能以plugin的方式接入MySQL,需要在主库与从库两端同时开启半同步的支持,具体配置如下: On the master mysql> INST ...
- mysql 主从master-slave同步复制 配置,为读写分离准备
1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...
- MySQL热机双备之双主同步复制配置
此配置方案来源于csdn前辈博客,奈何找不到出处了,抱拳!!! 1. MySQL同步机制概述 MySQL支持单向.异步复制,复制过程中一台服务器充当主服务器,一台或多台服务器充当从服务器,双主同步要 ...
- Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)
之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...
随机推荐
- [ZROI 9.16模拟赛] Tutorial
Link: 传送门 A: 套路题结果想了好久…… 排序二叉树的性质就是中序遍历单调递增 于是只考虑当前树的中序遍历的序列即可,与树的形态无关 将序列改成严格单调增想到最大化不变的数,但直接LIS求的是 ...
- 【容斥原理】【推导】【树状数组】Gym - 101485G - Guessing Camels
题意:给你三个1~n的排列a,b,c,问你在 (i,j)(1<=i<=n,1<=j<=n,i≠j),有多少个有序实数对(i,j)满足在三个排列中,i都在j的前面. 暴力求的话是 ...
- 【2-SAT】HDU3622-Bomb Game
[题目大意] 给n对炸弹可以放置的位置(每个位置为一个二维平面上的点),每次放置炸弹是时只能选择这一对中的其中一个点,每个炸弹爆炸的范围半径都一样,控制爆炸的半径使得所有的爆炸范围都不相交(可以相切) ...
- Language Modeling---NLP学习笔记(原创)
本栏目来源于对Coursera 在线课程 NLP(by Michael Collins)的理解.课程链接为:https://class.coursera.org/nlangp-001 1. 语言模型定 ...
- Apache -- 利用.htaccess防盗链
在Apache服务器的前提下利用.htaccess文件来防盗链的原理是通过检查图片或文件请求头信息中的Referer属性(也就是请求的来源),判断它是否属于你所规定的合法的请求来源,从而实现让合法来源 ...
- CSDN 四川大学线下编程比赛第一题:数字填充
题目意思: http://student.csdn.net/mcs/programming_challenges peter喜欢玩数字游戏,但数独这种游戏对他来说太简单了,于是他准备玩一个难的游戏. ...
- 支持Tasker控制的app合集
跟各种Tasker插件打交道,原因有两点: 1.站在开发者的角度:Tasker虽为神器,也不能面面俱到,一个原因就是Android自身过于分裂化造成的,不可能兼顾全平台和机型:个人开发者精力有限,也满 ...
- Dual-voltage regulator meets USB-power needs
This Design Idea stems from the limited availability of IC voltage regulators that can meet key USB- ...
- crtmpserver配置文件详解
Configuration file配置文件 The configuration file is actually a lua script which must contain an object ...
- HTML5画:线、圆、矩形、渐变
示例一:矩形 <!DOCTYPE html><head> <meta charset=utf-8> <title>HTML5画线.圆.矩形</ti ...