slon man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

SLON(1)			  Slony-I 2.2.4 Documentation		       SLON(1)

NAME
       slon - Slony-I daemon

SYNOPSIS
       slon [ option ... ] [ clustername ] [ conninfo ]

DESCRIPTION
       slon  is	 the  daemon application that ``runs'' Slony-I replication.  A
       slon instance must be run for each node in a Slony-I cluster.

OPTIONS
       -d log_level
	      The log_level specifies which levels of debugging messages  slon
	      should display when logging its activity.

	      The nine levels of logging are:

	      · Fatal

	      · Error

	      · Warn

	      · Config

	      · Info

	      · Debug1

	      · Debug2

	      · Debug3

	      · Debug4

       The first five non-debugging log levels (from Fatal to Info) are always
       displayed in the logs.  In early versions of Slony-I, the ``suggested''
       log_level  value	 was  2, which would list output at all levels down to
       debugging level 2.  In Slony-I version 2,  it  is  recommended  to  set
       log_level to 0; most of the consistently interesting log information is
       generated at levels higher than that.

       -s SYNC check interval
	      The sync_interval, measured in milliseconds, indicates how often
	      slon  should  check  to  see  if	a  SYNC	 should be introduced.
	      Default is 2000 ms.  The main loop in sync_Thread_main()	sleeps
	      for intervals of sync_interval milliseconds between iterations.

	      Short sync check intervals keep the origin on a ``short leash'',
	      updating its subscribers more frequently.	 If  you  have	repli‐
	      cated  sequences that are frequently updated without there being
	      tables that are affected, this keeps there from being times when
	      only sequences are updated, and therefore no syncs take place

	      If  the  node  is	 not  an origin for any replication set, so no
	      updates are coming in, it is somewhat wasteful for this value to
	      be much less the sync_interval_timeout value.

       -t SYNC interval timeout
	      At  the end of each sync_interval_timeout timeout period, a SYNC
	      will be generated on the ``local'' node even if there  has  been
	      no  replicable  data updated that would have caused a SYNC to be
	      generated.

	      If application activity ceases, whether because the  application
	      is  shut down, or because human users have gone home and stopped
	      introducing updates, the slon(1) will iterate  away,  waking  up
	      every  sync_interval  milliseconds, and, as no updates are being
	      made, no SYNC events would be generated.	Without	 this  timeout
	      parameter,  no  SYNC  events  would  be  generated, and it would
	      appear that replication was falling behind.

	      The sync_interval_timeout value will lead to eventually generat‐
	      ing a SYNC, even though there was no real replication work to be
	      done.  The lower that this parameter is set, the more frequently
	      slon(1)  will  generate  SYNC events when the application is not
	      generating replicable activity; this will have two effects:

	      · The system will do more replication work.

		(Of course, since there is no application load	on  the	 data‐
		base, and no data to replicate, this load will be very easy to
		handle.

	      · Replication will appear to be kept more ``up to date.''

		(Of course, since there is no replicable  activity  going  on,
		being ``more up to date'' is something of a mirage.)

       Default	is  10000  ms  and  maximum  is 120000 ms. By default, you can
       expect each node to ``report in'' with a SYNC every 10 seconds.

       Note that SYNC events are also generated on  subscriber	nodes.	 Since
       they  are not actually generating any data to replicate to other nodes,
       these SYNC events are of not terribly much value.

       -g group size
	      This controls the maximum SYNC group  size,  sync_group_maxsize;
	      defaults	to  6.	 Thus,	if  a particular node is behind by 200
	      SYNCs, it will try to group them together into groups of a maxi‐
	      mum  size of sync_group_maxsize.	This can be expected to reduce
	      transaction overhead due to having fewer transactions to COMMIT.

	      The default of 6 is probably suitable for small systems that can
	      devote  only  very  limited bits of memory to slon.  If you have
	      plenty of memory, it would be reasonable to increase this, as it
	      will  increase  the amount of work done in each transaction, and
	      will allow a subscriber that is behind by a lot to catch up more
	      quickly.

	      Slon  processes usually stay pretty small; even with large value
	      for this option, slon would be expected to only grow to a few MB
	      in size.

	      The  big	advantage in increasing this parameter comes from cut‐
	      ting down on the number of transaction COMMITs; moving from 1 to
	      2	 will provide considerable benefit, but the benefits will pro‐
	      gressively fall off once the transactions being processed get to
	      be  reasonably  large.  There isn't likely to be a material dif‐
	      ference in performance between 80 and 90; at that point, whether
	      ``bigger	is  better''  will depend on whether the bigger set of
	      SYNCs makes the LOG cursor behave badly due  to  consuming  more
	      memory and requiring more time to sortt.

	      In  Slony-I version 1.0, slon will always attempt to group SYNCs
	      together to this maximum, which won't be	ideal  if  replication
	      has been somewhat destabilized by there being very large updates
	      (e.g. - a single transaction that updates hundreds of  thousands
	      of  rows) or by SYNCs being disrupted on an origin node with the
	      result that there are a few SYNCs	 that  are  very  large.   You
	      might  run  into	the  problem  that grouping together some very
	      large SYNCs knocks over a slon process.  When it picks up again,
	      it  will try to process the same large grouped set of SYNCs, and
	      run into the same problem over and over until  an	 administrator
	      interrupts  this	and changes the -g value to break this ``dead‐
	      lock.''

	      In Slony-I version 1.1 and  later	 versions,  the	 slon  instead
	      adaptively  ``ramps up'' from doing 1 SYNC at a time towards the
	      maximum group size.  As a result, if there are a couple of SYNCs
	      that  cause  problems, the slon will (with any relevant watchdog
	      assistance) always be able to get to the	point  where  it  pro‐
	      cesses the troublesome SYNCs one by one, hopefully making opera‐
	      tor assistance unnecessary.

       -o desired sync time
	      A ``maximum'' time planned for grouped SYNCs.

	      If replication is running behind, slon will  gradually  increase
	      the  numbers of SYNCs grouped together, targeting that (based on
	      the time taken for the last group of SYNCs) they shouldn't  take
	      more than the specified desired_sync_time value.

	      The default value for desired_sync_time is 60000ms, equal to one
	      minute.

	      That way, you can expect (or at least hope!) that you'll	get  a
	      COMMIT roughly once per minute.

	      It  isn't	 totally  predictable,	as it is entirely possible for
	      someone to request a very large update, all as one  transaction,
	      that  can	 ``blow	 up''  the  length of the resulting SYNC to be
	      nearly arbitrarily long.	In such a  case,  the  heuristic  will
	      back off for the next group.

	      The  overall effect is to improve Slony-I's ability to cope with
	      variations in traffic.  By starting with 1 SYNC,	and  gradually
	      moving  to  more,	 even if there turn out to be variations large
	      enough to cause PostgreSQL backends to crash, Slony-I will  back
	      off  down	 to start with one sync at a time, if need be, so that
	      if it is at all possible for replication to progress, it will.

       -c cleanup cycles
	      The value vac_frequency indicates how often to VACUUM in cleanup
	      cycles.

	      Set this to zero to disable slon-initiated vacuuming. If you are
	      using something like pg_autovacuum to initiate vacuums, you  may
	      not  need	 for slon to initiate vacuums itself.  If you are not,
	      there are some tables Slony-I uses that collect a	 lot  of  dead
	      tuples that should be vacuumed frequently, notably pg_listener.

	      In  Slony-I  version  1.1,  this	changes	 a little; the cleanup
	      thread tracks, from iteration to iteration, the earliest	trans‐
	      action  ID  still active in the system.  If this doesn't change,
	      from one iteration to the next, then an old transaction is still
	      active,  and  therefore  a  VACUUM will do no good.  The cleanup
	      thread instead merely does an ANALYZE on these tables to	update
	      the statistics in pg_statistics.

       -p PID filename
	      pid_file	contains the filename in which the PID (process ID) of
	      the slon is stored.

	      This may make it easier to construct scripts to monitor multiple
	      slon processes running on a single host.

       -f config file
	      File from which to read slon configuration.

	      This  configuration  is	discussed   further  in Slon  Run-time
	      Configuration. If there are to be a complex set of configuration
	      parameters,  or  if  there  are parameters you do not wish to be
	      visible in the process  environment  variables  (such  as	 pass‐
	      words), it may be convenient to draw many or all parameters from
	      a configuration file.  You might either  put  common  parameters
	      for  all	slon  processes in a commonly-used configuration file,
	      allowing the command line to specify little other than the  con‐
	      nection  info.   Alternatively, you might create a configuration
	      file for each node.

       -a archive directory
	      archive_dir indicates a directory in which to place  a  sequence
	      of SYNC archive files for use in log shipping mode.

       -x command to run on log archive
	      command_on_logarchive  indicates a command to be run each time a
	      SYNC file is successfully generated.

	      See more details on [XRef to SLON-CONFIG-COMMAND-ON-LOGARCHIVE].

       -q quit based on SYNC provider
	      quit_sync_provider  indicates  which  provider's	worker	thread
	      should  be  watched in order to terminate after a certain event.
	      This must be used in conjunction with the -r option below...

	      This allows you to have a slon stop replicating after a  certain
	      point.

       -r quit at event number
	      quit_sync_finalsync  indicates  the event number after which the
	      remote worker thread for the provider  above  should  terminate.
	      This must be used in conjunction with the -q option above...

       -l lag interval
	      lag_interval indicates an interval value such as
	       3  minutes   or	 4  hours or  2 days  that indicates that this
	      node is to lag its providers by the specified interval of	 time.
	      This causes events to be ignored until they reach the age corre‐
	      sponding to the interval.

	      Warning:

	      There is a concommittant	downside  to  this  lag;  events  that
	      require  all  nodes  to  synchronize,  as typically happens with
	      SLONIK FAILOVER(7) and SLONIK MOVE SET(7), will have to wait for
	      this lagging node.

	      That  might  not	be ideal behaviour at failover time, or at the
	      time when you want to run SLONIK EXECUTE SCRIPT(7).

EXIT STATUS
       slon returns 0 to the shell if it finished normally.   It  returns  via
       exit(-1)	 (which	 will  likely  provide a return value of either 127 or
       255, depending on your system) if it encounters any fatal error.

Application			18 January 2015			       SLON(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net