Slony-I is a "master to multiple slaves" replication system for PostgreSQL supporting cascading (e.g. - a node can feed another node which feeds another node...) and failover.

The big picture for the development of Slony-I is that it is a master-slave replication system that includes all features and capabilities needed to replicate large databases to a reasonably limited number of slave systems.

Slony-I is a system designed for use at data centers and backup sites, where the normal mode of operation is that all nodes are available.

A fairly extensive "admin guide" comprising material in the Git tree may be found here. There is also a local copy.

The original design document is available here; see also initial description of implementation..

PostgreSQL 9.0 includes streaming replication, which, for a number of use cases, is likely to be simpler and more convenient than Slony-I.

There are, however, three characteristic kinds of cases where you'll need something like Slony-I, where the built-in WAL-based replication won't work:

  • You need to interact between PostgreSQL versions. Slony (and similar systems like Londiste and Bucardo) can cope with having nodes running different versions of PostgreSQL.

    WAL-based replication requires that all databases use identical versions of PostgreSQL, running on identical architectures.

  • You only want to replicate parts of the changes that are going on.

    WAL-based replication duplicates absolutely everything.

  • You need for there to be extra behaviours taking place on subscribers, for instance, populating cache management information.

    WAL-based replication duplicates absolutely everything, and nothing extra that changes data can run on a WAL-based replica.

Steve Singer also discusses the matter in 9.0 Streaming Replication vs Slony .

As observed up front, the streaming replication built into PostgreSQL, which has progressed since its beginnings in version 8.1, can satisfy some users' replication requirements. For those with requirements that are not compatible with its strictures, replication systems like Slony-I will continue to be useful.

2.0.5 fixes more than 24 issues found from 2.0.4 and earlier versions, remedying many issues found during an extensive testing period.

Slony-I source code has been migrated to use Git.

There are several addresses at which one may get at the repository via the various protocols that Git supports:

  • git://git.postgresql.org/git/slony1-engine.git
  • http://git.postgresql.org/git/slony1-engine.git
  • ssh://git@git.postgresql.org/slony1-engine.git

At present, we do not have a way to automatically send email out when changes are committed (as was the case with CVS). There is, however, an automatically generated RSS feed .

This release of the 2.0.x stream includes fixes to the issues introduced in 2.0.3. 2.0.3 installations are encourged to upgrade.

Slony-1 2.2.3 engine documentation
Slony-1 2.1.4 engine documentation
Slony-1 2.0.8 engine documentation
Slony-1 1.2.23 engine documentation
Chris Browne 2011-10-19
This release includes the following bug fixes
  • Bug 338 - Have ddlScript return a bigint instead of a integer
  • fixing Deadlock with application during minor version slony upgrade
  • Bug 342 FAILOVER fixes for some multi-node configurations
  • Remove HAVE_POSIX_SIGNALS from config.h
  • Bug 344 Do not abort reading slon config values when an unrecognized one is encountered
The next bug fix release in the 2.2.x series is now available. 2014-07-07
Slony 2.0.8 has been released. The final 2.0.x release is now available. This release includes some minor bug fixes
  • Bug 230 - log_timestamps was always treated as true on some platforms(AIX)
  • Bug 233 - Fix segfault when subscribing to a set that does not exist.
  • Bug 236 :: Fix default formatting of timestamp in logs
  • Fix issue with FAILOVER when failing over an origin with 382 multiple sets.
  • Bug 315 :: Fixes to the compile time include directories
2014-04-08
Slony 2.2.2 has been released. This bug fix release in the 2.2.x series includes
  • Bug 327 - Fix invalid free() in the logApply trigger
  • Include server include paths on --with-pgport builds for slonik
2014-02-11
This bug fix release in the 2.2.x series includes
  • Fixes to the UPDATE FUNCTIONS for upgrades from releases earlier than 2.2.0
  • Fixes to the FAILOVER logic(bug 318)
  • Fixes slon to avoid constant database connection & disconnection (bug 321)
  • Fixes to CLONE PREPARE processing (bug 322)
Among other issues a full list can be found in the release notes
Slony 2.2.1 has been released. 2013-11-04
Slony 2.2.0 has been released. This release of Slony includes the following major changes from the 2.1.x series
  • Shared Libraries are now named so as to allow having multiple versions of Slony installed simultaneously on a database cluster
  • Let DDL for EXECUTE SCRIPT to be specified inline
  • Added a RESUBSCRIBE NODE command to reshape clusters.
  • The FAILOVER process has been reworked to be more reliable.
  • Major "protocol" change; rather than constructing cursors to query logged updates, version 2.2 now uses the COPY protocol to stream data into log tables on subscribers.
A full list of changes can be found in the release notes
2013-09-09
The first release candidate for Slony 2.2.0 has been released. This release candidate addresses the following issues from beta 4
  • Set session_replication_role to local when applying EXECUTE SCRIPT commands on a replica(Bug 305)
  • Record the sequence values as part of EXECUTE SCRIPT (Bug 304)
  • Fixes to failover (Bug 310) and UPDATE FUNCTIONS (Bug 309)
2013-08-20
Slony 2.1.4 a bug fix release in the 2.1 branch has been released. This release addresses the following issues
  • Fixes a possible race condition during a MOVE SET where the wrong snapshot can be used to pull data (bug 299)
  • Adding support for PG 9.3
  • The truncate trigger is now a security definer
2013-08-16
The next beta for Slony 2.2.0 has been released. This beta includes the following fixes from beta 4.
  • Fixes for FAILOVER
  • Make test_slony_state-dbi.pl work with PG 9.2
  • log shipping apply trigger apply EXECUTE SCRIPT change
  • MOVE SET could previously pull data from the old origin with the wrong SYNC (Bug 299)
  • Eliminate memory leaks in slon
  • Fixes for the 2.1 -> 2.2 upgrade procedure
2013-07-26
The fourth beta for Slony 2.2.0 has been released. This beta includes the following changes from beta 3.
  • Support to compile against PG 9.3
  • UPDATE FUNCTIONS now works when the old shared library is gone (bug 287)
  • EXECUTE SCRIPT allows DDL to be specified inline (bug 251)
  • C functions now have the slony version embedded in their name (bug 290)
  • Fixes to cloneNodePrepare (Bug 252) and log_truncate(now security definer)
In addition to many features and fixes included in 2.2.0 beta 3 see the release notes for more details.
2013-06-07
The third beta for Slony 2.2.0 has ben released. Version 2.2.0 includes the following major changes
  • The storage and transport and application of the slony log (sl_log_1/sl_log_2) has changed providing performance improvements.
  • The FAILOVER command has been made more reliable
  • Improvements in how DDL (EXECUTE SCRIPT) is sequenced within the replication stream
  • In addition to many bug fixes and minor improvements. See the release notes for more details.
    2013-02-20 http://www.slony.info/downloads/2.2/source/slony1-2.2.0.b3.tar.bz2