Slony-i Data Synchronization for PostgreSQL

Source: Internet
Author: User
Tags postgresql



Original--http://www.tuicool.com/articles/mmvarf



Let's talk about the limitations of Slony:



1. DDL actions are not copied to;



2. If you want to use Slony to synchronize data, the table must be a primary key



The content of everyone to see the original , personal feeling summed up very well!



Here are the maintenance for slony; custom scripts



Includes service startup/shutdown, and Slony set delete/install.


#!/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 1 admin conninfo = ‘dbname=$MASTERDBNAME  host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD‘;

       node 2 admin conninfo = ‘dbname=$SLAVEDBNAME  host=$SLAVEHOST user=$REPLICATIONUSER password=$PASSWORD‘;

 

       uninstall node (id = 2);

       uninstall node (id = 1);

_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 1 admin conninfo = ‘dbname=$MASTERDBNAME  host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD‘;

   node 2 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=1, 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=1, origin=1, comment=‘All lottu tables‘);

   set add table (set id=1, origin=1, id=1,

                  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=2, comment = ‘Slave Node‘, event node=1);

   store path (server = 1, client = 2, conninfo=‘dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER password=$PASSWORD‘);

   store path (server = 2, client = 1, 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

    kill -9 `ps axu|grep ‘dbname=masterdb‘ |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






Slony-i Data Synchronization for PostgreSQL


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.