社区
MySQL
帖子详情
有谁用slony做过postgresql的双机热备?
suitar
2005-06-17 12:34:18
如题。
能不能介绍一下具体的配置方法。或者有没有相关的中文资料。
...全文
425
3
打赏
收藏
有谁用slony做过postgresql的双机热备?
如题。 能不能介绍一下具体的配置方法。或者有没有相关的中文资料。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suitar
2005-06-22
打赏
举报
回复
需要有postgresql的源代码,并且编译过(不一定安装)。
步骤:
1,先下载这个:
http://laser.dyndns.zhengmai.net.cn/download/slony1-1.0.2.tar.gz
解压缩后,有slony1-1.0.2目录。
2,进入该目录,configure --with-pgsourcetree=<postgresql 源代码目录>
3,make & make install
4,以一个数据库用户的身份,我先说一个最简单的,所有表都有主键
的,点对点的主从复制方案,我们需要写下面这么一个脚本:
#!/bin/sh
CLUSTER=『你的集群的名称,随意』
DBNAME1=『需要复制的源数据库』
DBNAME2=『需要复制的目的数据库』
HOST1=『源库IP或主机名』
HOST2=『目的库IP或主机名』
SLONY_USER=『源库数据库超级用户名』
PGBENCH_USER=『源库用户名,没啥用』
slonik <<_EOF_
#这句是定义集群名
cluster name = $CLUSTER;
#这两句是定义复制节点
node 1 admin conninfo = 'dbname=$DBNAME1 host=$HOST1 user=$SLONY_USER';
node 2 admin conninfo = 'dbname=$DBNAME2 host=$HOST2 user=$PGBENCH_USER';
#初始化集群,id从1开始,如果只有一个集群,那么肯定是1
#comment里可以写一些自己的注释,随意
init cluster ( id = 1, comment = 'Node 1' );
#创建一个复制集,id也是从1开始
create set ( id = 1, origin = 1, comment = 'All pgbench tables' );
#向自己的复制集种添加表,每个需要复制的表一条set命令,
#id从1开始,逐次递加,步进为1;
#fully qualified name是表的全称:模式名.表名
#这里的复制集id需要和前面创建的复制集id一致,origin关键字
#这里暂时不解释
set add table ( set id = 1, origin = 1,
id = 1, fully qualified name = 'public.accounts',
comment = 'Table accounts' );
set add table ( set id = 1, origin = 1,
id = 2, fully qualified name = 'public.branches',
comment = 'Table branches' );
set add table ( set id = 1, origin = 1,
id = 3, fully qualified name = 'public.tellers',
comment = 'Table tellers' );
#
#假如某个表没有主键,但是有唯一键字,那么可以用key关键字
#指定其为复制键字,如下面的key参数,如果都没有,则需要添加
#主键,我们以后来讲
set add table ( set id = 1, origin = 1,
id = 4, fully qualified name = 'public.history',
key = "column",
comment = 'Table history' );
#存储主从两个节点的信息
#下面是从节点
store node ( id = 2, comment = 'Node 2' );
#下面是主节点的连接参数
store path ( server = 1, client = 2,
conninfo = 'dbname=$DBNAME1 host=$HOST1 user=$SLONY_USER');
#下面是从节点的连接参数
store path ( server = 2, client = 1,
conninfo = 'dbname=$DBNAME2 host=$HOST2 user=$PGBENCH_USER');
#设置复制中角色,主节点是原始提供者,从节点是接受者
store listen ( origin = 1, provider = 1, receiver = 2 );
store listen ( origin = 2, provider = 2, receiver = 1 );
_EOF_
5,然后执行这个脚本,在任何数据库用户下都可以,自己搞定认证问题吧。
6,在源库(主服务器)上运行命令:
slon 『你的集群的名称』 "dbname=『需要复制的源数据库』 user=『源库数据库超级用户名』"&
7,在目的库(从服务器)上运行命令:
slon 『你的集群的名称』 "dbname=『需要复制的目的数据库』 user=『源库数据库超级用户名』"&
8,提交复制集,可以用下面的脚本:
#!/bin/sh
CLUSTER=『你的集群的名称,随意』
DBNAME1=『需要复制的源数据库』
DBNAME2=『需要复制的目的数据库』
HOST1=『源库IP或主机名』
HOST2=『目的库IP或主机名』
SLONY_USER=『源库数据库超级用户名』
PGBENCH_USER=『源库用户名,没啥用』
slonik <<_EOF_
# ----
# This defines which namespace the replication system uses
# ----
cluster name = $CLUSTER;
#提供连接参数
node 1 admin conninfo = 'dbname=$DBNAME1 host=$HOST1 user=$SLONY_USER';
node 2 admin conninfo = 'dbname=$DBNAME2 host=$HOST2 user=$PGBENCH_USER';
#提交复制集
subscribe set ( id = 1, provider = 1, receiver = 2, forward = no);
_EOF_
slony1是基于postgresql的异步通知机制做的复制技术,
其同步速度非常快,我测试的结果是近乎实时。目前我这个bbs
采用这个复制技术来做备份,呵呵,除了配置稍微复杂点,非常好用!
因为时间关系,更复杂的层次复制我们以后再谈吧。slony自己的
文档也不老少。最近忙坏了。实在没时间细讲。有具体试验问题,
在这里讨论吧,我抽空回复大家。
suitar
2005-06-22
打赏
举报
回复
如何做postgresql数据库集群????
http://bbs.pgsqldb.com/index.php?t=msg&th=6621&start=0&rid=2148&S=7b5458402272ab74adb453c0285c277e
请教用dblink怎样实现分布式事务
http://bbs.pgsqldb.com/index.php?t=msg&th=4716&start=0&rid=501&S=01d2e758a908fe4b3cffdcf7155552ba
good_luck898
2005-06-18
打赏
举报
回复
UP
PostgreSQL
实战之
双机热备
(二)
上一篇文章主要讲了
双机热备
的主-备方式(Active-Standby),今天来说一下另外一种方式:双主方式(Active-Active)。
PostgreSQL
9.4之前的版本并不支持双主方式,只能采用第三方插件来实现,比如:Bucardo、Pgpool、
Slony
等,这些都是基于触发器的解决方案,虽然从理论上解决了问题但其实并不是一个好的解决方案。令人欣喜的是从
PostgreSQL
9...
Red Hat 5安装过程&
postgresql
安装&配置
双机热备
Red Hat Enterprise Linux 5操作系统的全过程 linux安装
postgresql
8.4步骤 1、...
PostgreSQL
集群/热备方案
集群解决的负载能力的问题,要求就是能增加服务器(群)的吞吐量和响应速度。 热备解决的是服务连续性(高可用性)的问题。 不是所有的模块都需要集群,也不是所有服务都需要热备。 下面是现有的基于
postgreSQL
的集群/热备方案列表。 1, pgpool 一个中间件,介于
PostgreSQL
Server和PostgresSQL database client
现有
PostgreSQL
集群/热备方案
本文地址: http://blog.csdn.net/tadican/article/details/7530616 集群解决的负载能力的问题,要求就是能增加服务器(群)的吞吐量和响应速度。 热备解决的是服务连续性(高可用性)的问题。 不是所有的模块都需要集群,也不是所有服务都需要热备。 下面是现有的基于
postgreSQL
的集群/热备方案列表。 1,
PostgreSQL
10.1 手册_部分 III. 服务器管理_第 26 章 高可用、负载均衡和复制_26.5. 热备...
26.5.热备 26.5.1. 用户概览 26.5.2. 处理查询冲突 26.5.3. 管理员概览 26.5.4. 热备参数参考 26.5.5. 警告 术语热备用来描述服务器处于归档恢复或后备模式时连接到服务器并运行只读查询的能力。 这有助于复制目的以及以高精度恢复一个备份到一个期望的状态。 术语热备也指服务器从恢复转移到正常操作而用户能继续...
MySQL
56,677
社区成员
56,708
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章