Slony-I
2.1.0.b1 Documentation
The PostgreSQL Global Development Group
Christopher Browne
Copyright
© 2004-2010 The PostgreSQL Global Development Group
Table of Contents
1.
Preface
1.1.
Introduction to
Slony-I
1.2.
System Requirements
1.3.
Slony-I
Concepts
1.4.
Current Limitations
2.
Tutorial
2.1.
Replicating Your First Database
2.2.
Starting & Stopping Replication
3.
Administration Tasks
3.1.
Slony-I
Building & Installation
3.2.
Modifying Things in a Replication Cluster
3.3.
Database Schema Changes (DDL)
3.4.
Doing switchover and failover with
Slony-I
4.
Advanced Concepts
4.1.
Events & Confirmations
4.2.
Slony-I
Listen Paths
4.3.
Slony-I
Trigger Handling
4.4.
Locking Issues
4.5.
Log Shipping -
Slony-I
with Files
5.
Deployment Considerations
5.1.
Cluster Monitoring
5.2.
Component Monitoring
5.3.
Partitioning Support
5.4.
Slony-I
Upgrade
5.5.
Log Analysis
5.6.
Performance Considerations
5.7.
Security Considerations
6.
Additional Utilities
6.1.
Slony-I
Administration Scripts
6.2.
Slony-I
Watchdog
6.3.
Testing
Slony-I
State
6.4.
Log Files
6.5.
mkservice
6.6.
Slony-I
Test Suites
6.7.
Clustertest Test Framework
6.8.
Slony-I
Test Bed Framework
I.
Reference
slon
--
Slony-I
daemon
slonik
--
Slony-I
command processor
I.
Slonik Meta Commands
II.
Slonik Preamble Commands
III.
Configuration and Action commmands
7.
Appendix
7.1.
Frequently Asked Questions
7.2.
Slony-I
Supported Platforms
7.3.
Release Checklist
7.4.
Using Slonik
7.5.
Embedding Slonik in Shell Scripts
7.6.
More
Slony-I
Help
8.
Schema schemadoc
8.1.
Table:
sl_archive_counter
8.2.
Table:
sl_components
8.3.
Table:
sl_config_lock
8.4.
Table:
sl_confirm
8.5.
Table:
sl_event
8.6.
Table:
sl_event_lock
8.7.
Table:
sl_listen
8.8.
Table:
sl_log_1
8.9.
Table:
sl_log_2
8.10.
Table:
sl_node
8.11.
Table:
sl_nodelock
8.12.
Table:
sl_path
8.13.
Table:
sl_registry
8.14.
View:
sl_seqlastvalue
8.15.
Table:
sl_seqlog
8.16.
Table:
sl_sequence
8.17.
Table:
sl_set
8.18.
Table:
sl_setsync
8.19.
Table:
sl_subscribe
8.20.
Table:
sl_table
8.21.
add_empty_table_to_replication(p_comment integer, p_idxname integer, p_tabname text, p_nspname text, p_tab_id text, p_set_id text)
8.22.
add_missing_table_field(p_type text, p_field text, p_table text, p_namespace text)
8.23.
addpartiallogindices()
8.24.
altertableaddtriggers(p_tab_id integer)
8.25.
altertableconfiguretriggers(p_tab_id integer)
8.26.
altertabledroptriggers(p_tab_id integer)
8.27.
checkmoduleversion()
8.28.
cleanupevent(p_interval interval)
8.29.
cleanupnodelock()
8.30.
clonenodefinish(p_no_provider integer, p_no_id integer)
8.31.
clonenodeprepare(p_no_comment integer, p_no_provider integer, p_no_id text)
8.32.
clonenodeprepare_int(p_no_comment integer, p_no_provider integer, p_no_id text)
8.33.
component_state(i_eventtype text, i_event integer, i_starttime integer, i_activity integer, i_conn_pid text, i_node timestamp with time zone, i_pid bigint, i_actor text)
8.34.
copyfields(p_tab_id integer)
8.35.
createevent(ev_data1 name, p_event_type text, p_cluster_name text)
8.36.
createevent(ev_data2 name, ev_data1 text, p_event_type text, p_cluster_name text)
8.37.
createevent(ev_data3 name, ev_data2 text, ev_data1 text, p_event_type text, p_cluster_name text)
8.38.
createevent(ev_data4 name, ev_data3 text, ev_data2 text, ev_data1 text, p_event_type text, p_cluster_name text)
8.39.
createevent(ev_data5 name, ev_data4 text, ev_data3 text, ev_data2 text, ev_data1 text, p_event_type text, p_cluster_name text)
8.40.
createevent(ev_data6 name, ev_data5 text, ev_data4 text, ev_data3 text, ev_data2 text, ev_data1 text, p_event_type text, p_cluster_name text)
8.41.
createevent(ev_data7 name, ev_data6 text, ev_data5 text, ev_data4 text, ev_data3 text, ev_data2 text, ev_data1 text, p_event_type text, p_cluster_name text)
8.42.
createevent(ev_data8 name, ev_data7 text, ev_data6 text, ev_data5 text, ev_data4 text, ev_data3 text, ev_data2 text, ev_data1 text, p_event_type text, p_cluster_name text)
8.43.
createevent(p_event_type name, p_cluster_name text)
8.44.
ddlscript_complete(p_only_on_node integer, p_script text, p_set_id integer)
8.45.
ddlscript_complete_int(p_only_on_node integer, p_set_id integer)
8.46.
ddlscript_prepare(p_only_on_node integer, p_set_id integer)
8.47.
ddlscript_prepare_int(p_only_on_node integer, p_set_id integer)
8.48.
denyaccess()
8.49.
determineattkindunique(p_idx_name text, p_tab_fqname name)
8.50.
determineidxnameunique(p_idx_name text, p_tab_fqname name)
8.51.
disable_indexes_on_table(i_oid oid)
8.52.
disablenode(p_no_id integer)
8.53.
disablenode_int(p_no_id integer)
8.54.
droplisten(p_li_receiver integer, p_li_provider integer, p_li_origin integer)
8.55.
droplisten_int(p_li_receiver integer, p_li_provider integer, p_li_origin integer)
8.56.
dropnode(p_no_id integer)
8.57.
dropnode_int(p_no_id integer)
8.58.
droppath(p_pa_client integer, p_pa_server integer)
8.59.
droppath_int(p_pa_client integer, p_pa_server integer)
8.60.
dropset(p_set_id integer)
8.61.
dropset_int(p_set_id integer)
8.62.
enable_indexes_on_table(i_oid oid)
8.63.
enablenode(p_no_id integer)
8.64.
enablenode_int(p_no_id integer)
8.65.
enablesubscription(p_sub_receiver integer, p_sub_provider integer, p_sub_set integer)
8.66.
enablesubscription_int(p_sub_receiver integer, p_sub_provider integer, p_sub_set integer)
8.67.
failednode(p_backup_node integer, p_failed_node integer)
8.68.
failednode2(p_ev_seqfake integer, p_ev_seqno integer, p_set_id integer, p_backup_node bigint, p_failed_node bigint)
8.69.
failoverset_int(p_wait_seqno integer, p_set_id integer, p_backup_node integer, p_failed_node bigint)
8.70.
finishtableaftercopy(p_tab_id integer)
8.71.
forwardconfirm(p_con_timestamp integer, p_con_seqno integer, p_con_received bigint, p_con_origin timestamp without time zone)
8.72.
generate_sync_event(p_interval interval)
8.73.
getlocalnodeid(p_cluster name)
8.74.
getmoduleversion()
8.75.
initializelocalnode(p_comment integer, p_local_node_id text)
8.76.
is_node_reachable(receiver_node_id integer, origin_node_id integer)
8.77.
issubscriptioninprogress(p_add_id integer)
8.78.
killbackend(p_signame integer, p_pid text)
8.79.
lockedset()
8.80.
lockset(p_set_id integer)
8.81.
log_truncate()
8.82.
logswitch_finish()
8.83.
logswitch_start()
8.84.
logtrigger()
8.85.
mergeset(p_add_id integer, p_set_id integer)
8.86.
mergeset_int(p_add_id integer, p_set_id integer)
8.87.
moveset(p_new_origin integer, p_set_id integer)
8.88.
moveset_int(p_wait_seqno integer, p_new_origin integer, p_old_origin integer, p_set_id bigint)
8.89.
preparetableforcopy(p_tab_id integer)
8.90.
rebuildlistenentries()
8.91.
registernodeconnection(p_nodeid integer)
8.92.
registry_get_int4(p_default text, p_key integer)
8.93.
registry_get_text(p_default text, p_key text)
8.94.
registry_get_timestamp(p_default text, p_key timestamp with time zone)
8.95.
registry_set_int4(p_value text, p_key integer)
8.96.
registry_set_text(p_value text, p_key text)
8.97.
registry_set_timestamp(p_value text, p_key timestamp with time zone)
8.98.
replicate_partition(p_comment integer, p_idxname text, p_tabname text, p_nspname text, p_tab_id text)
8.99.
resetsession()
8.100.
reshapesubscription(p_sub_receiver integer, p_sub_provider integer, p_sub_set integer)
8.101.
seqtrack(p_seqval integer, p_seqid bigint)
8.102.
sequencelastvalue(p_seqname text)
8.103.
sequencesetvalue(p_last_value integer, p_ev_seqno integer, p_seq_origin bigint, p_seq_id bigint)
8.104.
setaddsequence(p_seq_comment integer, p_fqname integer, p_seq_id text, p_set_id text)
8.105.
setaddsequence_int(p_seq_comment integer, p_fqname integer, p_seq_id text, p_set_id text)
8.106.
setaddtable(p_tab_comment integer, p_tab_idxname integer, p_fqname text, p_tab_id name, p_set_id text)
8.107.
setaddtable_int(p_tab_comment integer, p_tab_idxname integer, p_fqname text, p_tab_id name, p_set_id text)
8.108.
setdropsequence(p_seq_id integer)
8.109.
setdropsequence_int(p_seq_id integer)
8.110.
setdroptable(p_tab_id integer)
8.111.
setdroptable_int(p_tab_id integer)
8.112.
setmovesequence(p_new_set_id integer, p_seq_id integer)
8.113.
setmovesequence_int(p_new_set_id integer, p_seq_id integer)
8.114.
setmovetable(p_new_set_id integer, p_tab_id integer)
8.115.
setmovetable_int(p_new_set_id integer, p_tab_id integer)
8.116.
slon_node_health_check()
8.117.
slon_quote_brute(p_tab_fqname text)
8.118.
slon_quote_input(p_tab_fqname text)
8.119.
slonyversion()
8.120.
slonyversionmajor()
8.121.
slonyversionminor()
8.122.
slonyversionpatchlevel()
8.123.
store_application_name(i_name text)
8.124.
storelisten(p_receiver integer, p_provider integer, p_origin integer)
8.125.
storelisten_int(p_li_receiver integer, p_li_provider integer, p_li_origin integer)
8.126.
storenode(p_no_comment integer, p_no_id text)
8.127.
storenode_int(p_no_comment integer, p_no_id text)
8.128.
storepath(p_pa_connretry integer, p_pa_conninfo integer, p_pa_client text, p_pa_server integer)
8.129.
storepath_int(p_pa_connretry integer, p_pa_conninfo integer, p_pa_client text, p_pa_server integer)
8.130.
storeset(p_set_comment integer, p_set_id text)
8.131.
storeset_int(p_set_comment integer, p_set_origin integer, p_set_id text)
8.132.
subscribeset(p_omit_copy integer, p_sub_forward integer, p_sub_receiver integer, p_sub_provider boolean, p_sub_set boolean)
8.133.
subscribeset_int(p_omit_copy integer, p_sub_forward integer, p_sub_receiver integer, p_sub_provider boolean, p_sub_set boolean)
8.134.
tablestovacuum()
8.135.
terminatenodeconnections(p_failed_node integer)
8.136.
truncate_deny()
8.137.
uninstallnode()
8.138.
unlockset(p_set_id integer)
8.139.
unsubscribeset(p_sub_receiver integer, p_sub_set integer)
8.140.
unsubscribeset_int(p_sub_receiver integer, p_sub_set integer)
8.141.
updaterelname(p_only_on_node integer, p_set_id integer)
8.142.
updatereloid(p_only_on_node integer, p_set_id integer)
8.143.
upgradeschema(p_old text)
Index
List of Tables
4-1.
Trigger Behaviour
7-1.
Supported Platforms
List of Figures
8-1.
Definition of view sl_seqlastvalue
Next
Preface