原文--http://www.tuicool.com/articles/mMvARf

先谈谈slony的局限性:

1. DDL动作是不会被复制到;

2. 如果想使用slony来同步数据,表必须是带有主键的

内容大家看原文;个人感觉总结的很好!

下面是为slony维护;定制的脚本

包括了服务启动/关闭;以及slony set删除/安装。

#!/bin/sh

SLONIK=/opt/pgsql/bin/slonik
SLON=/opt/pgsql/bin/slon
CLUSTER_NAME=lottu_cluster
MASTERDBNAME=masterdb
SLAVEDBNAME=slavedb
MASTERHOST=192.168.8.121
SLAVEHOST=192.168.8.120
REPLICATIONUSER=postgres
PASSWORD=li0924

uninstall()
{
    $SLONIK << _EOF_
        cluster name = $CLUSTER_NAME;

        node  admin conninfo = 'dbname=$MASTERDBNAME  host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD';
        node  admin conninfo = 'dbname=$SLAVEDBNAME  host=$SLAVEHOST user=$REPLICATIONUSER password=$PASSWORD';

        uninstall node (id = );
        uninstall node (id = );
_EOF_
}

install()
{
    $SLONIK << _EOF_
    #--
    # define the namespace the replication system
    # uses in our example it is slony_example
    #--
    cluster name = $CLUSTERNAME;

    #--
    # admin conninfo's are used by slonik to connect to
    # the nodes one for eachnode on each side of the cluster,
    # the syntax is that of PQconnectdb in
    # the C-API
    # --

    node  admin conninfo = 'dbname=$MASTERDBNAME  host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD';
    node  admin conninfo = 'dbname=$SLAVEDBNAME  host=$SLAVEHOST user=$REPLICATIONUSER password=$PASSWORD';

    #--
    # init the first node.  Its id MUST be 1.  This creates
    # the schema _$CLUSTERNAME containing all replication
    # system specific database objects.
    #--

    init cluster ( id=, comment = 'Master Node');

    #--
    # Slony-I organizes tables into sets.  The smallest unit
    # a node can subscribe is a set. The master or origin of
    # the set is node 1.
    #--
    create set (id=, origin=, comment='All lottu tables');
    set add table (set id=, origin=, id=,
                   fully qualified name = 'public.lottu',
                   comment='lottu table');

    # set add sequence (set id=1, origin = 1, id = 1,
    #               fully qualified name = 'public.t1_id_seq',
    #               comment = 't1 id sequence');

    #--
    # Create the second node (the slave) tell the 2 nodes how
    # to connect to each other and how they should listen for events.
    #--

    store node (id=, comment = );
    store path (server = , client = , conninfo='dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD');
    store path (server = , client = , conninfo='dbname=$SLAVEDBNAME  host=$SLAVEHOST user=$REPLICATIONUSER password=$PASSWORD');
_EOF_
}

start()
{
    $SLON $CLUSTER_NAME "dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD" >> /home/postgresql/master.log &
  #  $SLON $CLUSTER_NAME "$SLAVE" >> /home/postgresql/slave.log &
}

stop()
{
    # killall slon
      `ps axu|grep 'dbname=masterdb' |grep -v grep|awk '{print $2}'`
}

case $ in
    'install')
        install
        ;;
    'uninstall')
        uninstall
        ;;
    'start')
        start
        ;;
    'stop')
        stop
        ;;
    *)
        echo "usage: $0 {install|uninstall|start|stop} "
        ;;
esac

PostgreSQL的 Slony-I 数据同步的更多相关文章

  1. 数据同步DataX

    数据同步那些事儿(优化过程分享)   简介 很久之前就想写这篇文章了,主要是介绍一下我做数据同步的过程中遇到的一些有意思的内容,和提升效率的过程. 当前在数据处理的过程中,数据同步如同血液一般充满全过 ...

  2. 转载:MySQL和Redis 数据同步解决方案整理

    from: http://blog.csdn.net/langzi7758521/article/details/52611910 最近在做一个Redis箱格信息数据同步到数据库Mysql的功能. 自 ...

  3. oracle数据同步

    随着各行业信息化水平的不断提升,各种各样的信息管理系统都被广泛使用,各系统间数据完全独立,形成了大量的信息孤岛.出于管理及决策方面的需求,实现各平台的数据同步是一个很迫切的需求,TreeSoft数据库 ...

  4. mysql数据同步

    随着各行业信息化水平的不断提升,各种各样的信息管理系统都被广泛使用,各系统间数据完全独立,形成了大量的信息孤岛.出于管理及决策方面的需求,实现各平台的数据同步是一个很迫切的需求,TreeSoft数据库 ...

  5. 基于TreeSoft实现异构数据同步

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护等需求,TreeSoft将复杂的网状的同步链路变成了星型数据链路.     TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之 ...

  6. 基于TreeSoft实现mysql、oracle、sql server的数据同步

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护需求,TreeSoft推出了数据同步,数据处理等丰富功能 . TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之间架起沟通的桥 ...

  7. Oracle数据同步交换

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护等需求,TreeSoft将复杂的网状的同步链路变成了星型数据链路.     TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之 ...

  8. SQL Server数据同步交换

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护等需求,TreeSoft将复杂的网状的同步链路变成了星型数据链路.     TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之 ...

  9. MySQL数据同步交换

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护等需求,TreeSoft将复杂的网状的同步链路变成了星型数据链路.     TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之 ...

  10. 环境篇:数据同步工具DataX

    环境篇:数据同步工具DataX 1 概述 https://github.com/alibaba/DataX DataX是什么? DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 ...

随机推荐

  1. T4自动生成数据库C#实体类学习(1)

    第一个测试的Demo <#@ template language="C#" debug="True" hostspecific="True&qu ...

  2. Java File类基本操作

    我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...

  3. iOS 修改UITextField的placeholder属性的字体颜色(修改UITextField占位符字体的颜色)

    只要把原来的placeholder属性改为attributedPlaceholder属性即可 具体代码如下图:

  4. 关于django post表单

    CSRF verification failed. Request aborted. 默认会出现该状况,解决办法: 1. 使用requestcontext from django.template i ...

  5. wpf 面试题目

    初级工程师 解释什么是依赖属性,它和以前的属性有什么不同?为什么在WPF会使用它?什么是样式什么是模板绑定(Binding )的基础用法解释这几个类的作用及关系: Visual, UIElement, ...

  6. !!20160829——多次错误的T+0操作

  7. dij最短路优先队列堆的时候,加边

    不能用全局数组d[u]>d[rhs.u]. 这样后面会修改d[u]值然而本来里面的点顺序不该修改,却被修改了. 应该用栈还存进去的临时变量,比如d>rhs.d. 优先队列重载小于号'< ...

  8. [原创]java WEB学习笔记87:Hibernate学习之路-- -映射 继承关系(subclass , joined-subclass,union-subclass )

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. 数据库SQL 多态

    Sealed关键字:密封类 该类无法被继承 部分类: Namespace 命名空间 虚拟文件夹 Partial关键字 可以将一个类拆分成多个部分,分别放在多个文件里 多态: 1.编译多态 函数重载 2 ...

  10. linux第12天 线程

    今天主要学习了共享内存,信号量的封装,还有线程. POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的 要使用这些函数库,要通过引入头文<p ...