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

摘要:
主数据库:172.16.254.21端口:5432从数据库:172.16.354.22端口:543步骤1:主数据库和从数据库都安装slonapt getinstallslon bin步骤2:主数据库与从数据库都配置权限并创建语言。

主数据库: 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同步复制配置步骤》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle分组并在组内排序JAVA随机数生成Int、Long、Float、Double下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于nvm node版本管理工具

nvm是node版本管理工具 为了解决node各种版本存在不兼容现象 nvm是让你在同一台机器上安装和切换不同版本的node的工具 安装前windows系统最好先卸载node以免发生不必要的问题 可在点此在github上下载最新版本,本次下载安装的是windows版本。 nvm-noinstall.zip:绿色免安装版,但使用时需进行配置。 nvm-se...

Windows 安装配置 JIRA

MySQL-5.5.28 JDK1.6.0_21  JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。  一、MySQL建库和建账号 1、 mysql中创建数据库jiradb create database jiradb character set 'UTF8'; 2、创建数据库用户并赋于权限 create user ji...

软件开发阶段数据库升级维护策略

    软件开发阶段数据库升级维护策略 一 为什么要维护升级   1.1 现状和出现的问题 如果你开发一个的项目,没有用到数据库,那么你不用维护数据库。 如果你开发一个项目,用到数据库了,但是从不用修改,那么数据库的维护也相对的简单。 当你开发一个大的项目,数据库有很多表,视图,存储过程,数据库分成了几个,开发的团队很大,开发的周期很长,由于业务的需求数据...

用navicate 连接本地数据库提示用户名/口令无效

1、在用navicate连接本地的oracle数据库时,试了oracle几个默认的用户名和密码,但是当我输入时,却提示用户名/口令无效。所以按照网上的办法,cmd,输入了以下命令,修改了几个用户的用户密码。 再次用admin连接即可 2、文件--新建--用户,建立admin用户 3、在新建的表里插入数据时,提示:对表空间‘USERS’无权限。 解决办法...

使用mysqldump导入不成功解决方法

今天遇到个奇葩的问题,使用mysqldump导出数据库,命令如下:mysqldump -u root -p密码 数据库名 >/tmp/mysql_data.sql,在使用导入时,执行成功,显示 -- MySQL dump 10.13  Distrib 5.7.11, for Linux (x86_64)---- Host: localhost   ...

前端框架Vue自学之Vue CLI(五)

终极目标:掌握和使用Vue(全家桶:Core+Vue-router+Vuex) 本博客目的:记录Vue学习的进度和心得(Vue CLI) 内容:学习和使用Vue CLI2 和 Vue CLI3。如果了解webpack如何一步步配置的,建议可以先看我的前一个博客:前端框架Vue自学之webpack(四)。 正文: Vue CLI 一、Vue CLI 1、前言...