原文--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. 遍历nsarray

    // //  main.m //  04-遍历数组 // //  Created by apple on 14-3-21. //  Copyright (c) 2014年 apple. All rig ...

  2. MQ集群测试环境搭建(多节点负载均衡,共享一个kahaDB文件(nas方式))

    1. os ubuntu12.04 基础环境准备 干掉不好用的vim重新装 sudo apt-get remove vim-common sudo apt-get install vim 如果需要使用 ...

  3. 音乐播放器 AVAudioPlayer、定时器、UISlider

    #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController ...

  4. Emmet 的使用

    Emmet 的介绍 Emmet 的前身叫做:Zen Coding,也许熟知旧名的人不在少数.Emmet 一般前端工程师用得比较多,具体它是做什么的,我们通过下面两张 Gif 演示图来说明: Intel ...

  5. mysql查找字符串出现位置

    MySQL中的LOCATE和POSITION函数使用方法 FIND_IN_SET(str,strlist) 假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 ...

  6. Swift动画编程指南-02 Swift动画是怎么炼成的

    上一节我们看了几个很棒的例子,我们不禁会想.他们是怎么设计的,怎么从一个空白的画布变成一个完整的,美丽的动画.这些动画是如何产生的,是哪些属性被改变了.我们还要认真思考的是,每一个步骤到底发生了什么. ...

  7. Java: xml转换

    java对于xml的转换有很多种,比较有名的有:DOM, DOM4J, JDOM, SAX.这里要介绍的是javax.xml包的对xml文件的转换.相比于前面几种是最简单的. 直接上代码: Stude ...

  8. UML:组件图

    要搞清楚组件图,必须先搞清楚什么是组件? 组件有以下特点:1.能实现一定功能,或者提供一些服务.2.不能单独运行,要作为系统的一部分来发挥作用.3.在物理上独立的,不是逻辑上的概念.4.可单独维护.可 ...

  9. webDriver中的alert

    driver.switchTo().alert();这句可以得到alert\confirm\prompt对话框的对象,然后运用其方法对它进行操作.对话框操作的主要方法有:   getText()    ...

  10. tostring() 作用

    tostring() 作用 -->显示类中属性的值 -->不想显示该类的内存地址