replication and load balancing srcripts
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 3 Sep 2006 07:35:03 +0000 (07:35 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 3 Sep 2006 07:35:03 +0000 (07:35 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5886 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/src/extras/import/sparkle.replicate.slonik [new file with mode: 0644]
Evergreen/src/extras/import/sparkle.subscribe-fw2.slonik [new file with mode: 0644]
Evergreen/src/extras/import/sparkle.subscribe-fw5.slonik [new file with mode: 0644]
Evergreen/src/extras/import/start_pgpool [new file with mode: 0755]
Evergreen/src/extras/import/start_slon [new file with mode: 0755]

diff --git a/Evergreen/src/extras/import/sparkle.replicate.slonik b/Evergreen/src/extras/import/sparkle.replicate.slonik
new file mode 100644 (file)
index 0000000..152c864
--- /dev/null
@@ -0,0 +1,191 @@
+#!/bin/sh
+
+CLUSTER=prod_replica_set
+DBNAME=sparkle
+MASTERHOST=10.1.0.13
+SLAVEHOST=10.1.0.14
+STATSHOST=10.1.0.11
+PGUSER=postgres
+BINDIR=/opt/pg814/bin
+
+$BINDIR/slonik <<_EOF_
+
+       #--
+       # define the namespace the replication system uses in our example it is
+       # slony_example
+       #--
+
+        cluster name = $CLUSTER;
+
+       #--
+       # admin conninfo's are used by slonik to connect to the nodes one for each
+       # node on each side of the cluster, the syntax is that of PQconnectdb in
+       # the C-API
+       # --
+
+       node 1 admin conninfo = 'dbname=$DBNAME host=$MASTERHOST user=$PGUSER';
+       node 2 admin conninfo = 'dbname=$DBNAME host=$SLAVEHOST user=$PGUSER';
+       node 3 admin conninfo = 'dbname=$DBNAME host=$STATSHOST user=$PGUSER';
+
+       #--
+       # 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.
+       #--
+
+       create set (id=1, origin=1, comment='All Open-ILS Tables');
+
+       set add table (set id=1, origin=1, id=1, fully qualified name = 'offline.script', comment = '');
+       set add table (set id=1, origin=1, id=2, fully qualified name = 'offline.session', comment = '');
+
+       set add table (set id=1, origin=1, id=3, fully qualified name = 'config.bib_source', comment = '');
+       set add table (set id=1, origin=1, id=4, fully qualified name = 'config.standing', comment = '');
+       set add table (set id=1, origin=1, id=5, fully qualified name = 'config.metabib_field', comment = '');
+       set add table (set id=1, origin=1, id=6, fully qualified name = 'config.non_cataloged_type', comment = '');
+       set add table (set id=1, origin=1, id=7, fully qualified name = 'config.identification_type', comment = '');
+       set add table (set id=1, origin=1, id=8, fully qualified name = 'config.rule_circ_duration', comment = '');
+       set add table (set id=1, origin=1, id=9, fully qualified name = 'config.rule_max_fine', comment = '');
+       set add table (set id=1, origin=1, id=10, fully qualified name = 'config.rule_recuring_fine', comment = '');
+       set add table (set id=1, origin=1, id=11, fully qualified name = 'config.rule_age_hold_protect', comment = '');
+       set add table (set id=1, origin=1, id=12, fully qualified name = 'config.copy_status', comment = '');
+       set add table (set id=1, origin=1, id=13, fully qualified name = 'config.net_access_level', comment = '');
+       set add table (set id=1, origin=1, id=14, fully qualified name = 'config.audience_map', comment = '');
+       set add table (set id=1, origin=1, id=15, fully qualified name = 'config.lit_form_map', comment = '');
+       set add table (set id=1, origin=1, id=16, fully qualified name = 'config.language_map', comment = '');
+       set add table (set id=1, origin=1, id=17, fully qualified name = 'config.item_form_map', comment = '');
+       set add table (set id=1, origin=1, id=18, fully qualified name = 'config.item_type_map', comment = '');
+       
+       set add table (set id=1, origin=1, id=19, fully qualified name = 'actor.usr', comment = '');
+       set add table (set id=1, origin=1, id=20, fully qualified name = 'actor.usr_note', comment = '');
+       set add table (set id=1, origin=1, id=21, fully qualified name = 'actor.usr_standing_penalty', comment = '');
+       set add table (set id=1, origin=1, id=22, fully qualified name = 'actor.usr_setting', comment = '');
+       set add table (set id=1, origin=1, id=23, fully qualified name = 'actor.stat_cat', comment = '');
+       set add table (set id=1, origin=1, id=24, fully qualified name = 'actor.stat_cat_entry', comment = '');
+       set add table (set id=1, origin=1, id=25, fully qualified name = 'actor.stat_cat_entry_usr_map', comment = '');
+       set add table (set id=1, origin=1, id=26, fully qualified name = 'actor.card', comment = '');
+       set add table (set id=1, origin=1, id=34, fully qualified name = 'actor.usr_address', comment = '');
+       
+       set add table (set id=1, origin=1, id=27, fully qualified name = 'actor.org_unit_type', comment = '');
+       set add table (set id=1, origin=1, id=28, fully qualified name = 'actor.org_unit', comment = '');
+       set add table (set id=1, origin=1, id=29, fully qualified name = 'actor.org_unit_proximity', comment = '');
+       set add table (set id=1, origin=1, id=30, fully qualified name = 'actor.hours_of_operation', comment = '');
+       set add table (set id=1, origin=1, id=31, fully qualified name = 'actor.org_unit_closed', comment = '');
+       set add table (set id=1, origin=1, id=32, fully qualified name = 'actor.workstation', comment = '');
+       set add table (set id=1, origin=1, id=33, fully qualified name = 'actor.org_unit_setting', comment = '');
+       set add table (set id=1, origin=1, id=35, fully qualified name = 'actor.org_address', comment = '');
+       
+       set add table (set id=1, origin=1, id=36, fully qualified name = 'permission.perm_list', comment = '');
+       set add table (set id=1, origin=1, id=37, fully qualified name = 'permission.grp_tree', comment = '');
+       set add table (set id=1, origin=1, id=38, fully qualified name = 'permission.grp_perm_map', comment = '');
+       set add table (set id=1, origin=1, id=39, fully qualified name = 'permission.usr_perm_map', comment = '');
+       set add table (set id=1, origin=1, id=40, fully qualified name = 'permission.usr_grp_map', comment = '');
+       
+       set add table (set id=1, origin=1, id=41, fully qualified name = 'biblio.record_entry', comment = '');
+       set add table (set id=1, origin=1, id=42, fully qualified name = 'biblio.record_note', comment = '');
+       
+       set add table (set id=1, origin=1, id=43, fully qualified name = 'authority.record_entry', comment = '');
+       set add table (set id=1, origin=1, id=44, fully qualified name = 'authority.record_note', comment = '');
+       set add table (set id=1, origin=1, id=45, fully qualified name = 'authority.rec_descriptor', comment = '');
+       set add table (set id=1, origin=1, id=46, fully qualified name = 'authority.full_rec', comment = '');
+       
+       set add table (set id=1, origin=1, id=47, fully qualified name = 'metabib.metarecord', comment = '');
+       set add table (set id=1, origin=1, id=48, fully qualified name = 'metabib.title_field_entry', comment = '');
+       set add table (set id=1, origin=1, id=49, fully qualified name = 'metabib.author_field_entry', comment = '');
+       set add table (set id=1, origin=1, id=50, fully qualified name = 'metabib.subject_field_entry', comment = '');
+       set add table (set id=1, origin=1, id=51, fully qualified name = 'metabib.keyword_field_entry', comment = '');
+       set add table (set id=1, origin=1, id=52, fully qualified name = 'metabib.series_field_entry', comment = '');
+       set add table (set id=1, origin=1, id=53, fully qualified name = 'metabib.rec_descriptor', comment = '');
+       set add table (set id=1, origin=1, id=54, fully qualified name = 'metabib.full_rec', comment = '');
+       set add table (set id=1, origin=1, id=55, fully qualified name = 'metabib.metarecord_source_map', comment = '');
+       
+       set add table (set id=1, origin=1, id=56, fully qualified name = 'asset.copy_location', comment = '');
+       set add table (set id=1, origin=1, id=57, fully qualified name = 'asset.copy', comment = '');
+       set add table (set id=1, origin=1, id=61, fully qualified name = 'asset.stat_cat', comment = '');
+       set add table (set id=1, origin=1, id=62, fully qualified name = 'asset.stat_cat_entry', comment = '');
+       set add table (set id=1, origin=1, id=63, fully qualified name = 'asset.stat_cat_entry_copy_map', comment = '');
+       set add table (set id=1, origin=1, id=64, fully qualified name = 'asset.copy_note', comment = '');
+       set add table (set id=1, origin=1, id=65, fully qualified name = 'asset.call_number', comment = '');
+       set add table (set id=1, origin=1, id=66, fully qualified name = 'asset.call_number_note', comment = '');
+       
+       set add table (set id=1, origin=1, id=67, fully qualified name = 'container.copy_bucket', comment = '');
+       set add table (set id=1, origin=1, id=68, fully qualified name = 'container.copy_bucket_item', comment = '');
+       set add table (set id=1, origin=1, id=69, fully qualified name = 'container.call_number_bucket', comment = '');
+       set add table (set id=1, origin=1, id=70, fully qualified name = 'container.call_number_bucket_item', comment = '');
+       set add table (set id=1, origin=1, id=71, fully qualified name = 'container.biblio_record_entry_bucket', comment = '');
+       set add table (set id=1, origin=1, id=72, fully qualified name = 'container.biblio_record_entry_bucket_item', comment = '');
+       set add table (set id=1, origin=1, id=73, fully qualified name = 'container.user_bucket', comment = '');
+       set add table (set id=1, origin=1, id=74, fully qualified name = 'container.user_bucket_item', comment = '');
+       
+       set add table (set id=1, origin=1, id=75, fully qualified name = 'money.collections_tracker', comment = '');
+       set add table (set id=1, origin=1, id=76, fully qualified name = 'money.billable_xact', comment = '');
+       set add table (set id=1, origin=1, id=77, fully qualified name = 'money.grocery', comment = '');
+       set add table (set id=1, origin=1, id=78, fully qualified name = 'money.billing', comment = '');
+       set add table (set id=1, origin=1, id=79, fully qualified name = 'money.payment', comment = '');
+       set add table (set id=1, origin=1, id=80, fully qualified name = 'money.bnm_payment', comment = '');
+       set add table (set id=1, origin=1, id=81, fully qualified name = 'money.forgive_payment', comment = '');
+       set add table (set id=1, origin=1, id=82, fully qualified name = 'money.work_payment', comment = '');
+       set add table (set id=1, origin=1, id=83, fully qualified name = 'money.credit_payment', comment = '');
+       set add table (set id=1, origin=1, id=84, fully qualified name = 'money.bnm_desk_payment', comment = '');
+       set add table (set id=1, origin=1, id=85, fully qualified name = 'money.cash_payment', comment = '');
+       set add table (set id=1, origin=1, id=86, fully qualified name = 'money.check_payment', comment = '');
+       set add table (set id=1, origin=1, id=87, fully qualified name = 'money.credit_card_payment', comment = '');
+       
+       set add table (set id=1, origin=1, id=88, fully qualified name = 'action.in_house_use', comment = '');
+       set add table (set id=1, origin=1, id=89, fully qualified name = 'action.non_cataloged_circulation', comment = '');
+       set add table (set id=1, origin=1, id=90, fully qualified name = 'action.survey', comment = '');
+       set add table (set id=1, origin=1, id=91, fully qualified name = 'action.survey_question', comment = '');
+       set add table (set id=1, origin=1, id=92, fully qualified name = 'action.survey_answer', comment = '');
+       set add table (set id=1, origin=1, id=93, fully qualified name = 'action.survey_response', comment = '');
+       set add table (set id=1, origin=1, id=94, fully qualified name = 'action.circulation', comment = '');
+       set add table (set id=1, origin=1, id=95, fully qualified name = 'action.hold_request', comment = '');
+       set add table (set id=1, origin=1, id=96, fully qualified name = 'action.hold_notification', comment = '');
+       set add table (set id=1, origin=1, id=97, fully qualified name = 'action.hold_copy_map', comment = '');
+       set add table (set id=1, origin=1, id=98, fully qualified name = 'action.transit_copy', comment = '');
+       set add table (set id=1, origin=1, id=99, fully qualified name = 'action.hold_transit_copy', comment = '');
+       set add table (set id=1, origin=1, id=100, fully qualified name = 'action.unfulfilled_hold_list', comment = '');
+
+       #set add table (set id=1, origin=1, id=101, fully qualified name = 'auditor.actor_org_unit_history', comment = '', key = serial);
+       #set add table (set id=1, origin=1, id=102, fully qualified name = 'auditor.actor_usr_address_history', comment = '', key = serial);
+       #set add table (set id=1, origin=1, id=103, fully qualified name = 'auditor.actor_usr_history', comment = '', key = serial);
+       #set add table (set id=1, origin=1, id=104, fully qualified name = 'auditor.asset_call_number_history', comment = '', key = serial);
+       #set add table (set id=1, origin=1, id=105, fully qualified name = 'auditor.asset_copy_history', comment = '', key = serial);
+       #set add table (set id=1, origin=1, id=106, fully qualified name = 'auditor.biblio_record_entry_history', comment = '', key = serial);
+
+       set add sequence (set id=1, origin=1, id=1, fully qualified name = 'action.survey_response_group_id_seq', comment = '');
+
+       # TSearch2 tables
+       set add table (set id=1, origin=1, id=107, fully qualified name = 'public.pg_ts_cfg', comment = '');
+       set add table (set id=1, origin=1, id=108, fully qualified name = 'public.pg_ts_cfgmap', comment = '');
+       set add table (set id=1, origin=1, id=109, fully qualified name = 'public.pg_ts_dict', comment = '');
+       set add table (set id=1, origin=1, id=110, fully qualified name = 'public.pg_ts_parser', comment = '');
+
+      
+       store node (id=2, comment = 'Active Slave node');
+       #store node (id=3, comment = 'Statistical Reporting node');
+
+       store path (server = 1, client = 2, conninfo='dbname=$DBNAME host=$MASTERHOST user=$PGUSER');
+       #store path (server = 1, client = 3, conninfo='dbname=$DBNAME host=$MASTERHOST user=$PGUSER');
+
+       store path (server = 2, client = 1, conninfo='dbname=$DBNAME host=$SLAVEHOST user=$PGUSER');
+       #store path (server = 2, client = 3, conninfo='dbname=$DBNAME host=$SLAVEHOST user=$PGUSER');
+
+       #store path (server = 3, client = 1, conninfo='dbname=$DBNAME host=$STATSHOST user=$PGUSER');
+       #store path (server = 3, client = 2, conninfo='dbname=$DBNAME host=$STATSHOST user=$PGUSER');
+
+       store listen (origin=1, provider = 1, receiver =2);
+       store listen (origin=2, provider = 2, receiver =1);
+
+       #store listen (origin=2, provider = 2, receiver =3);
+       #store listen (origin=3, provider = 3, receiver =2);
+
+       #store listen (origin=1, provider = 1, receiver =3);
+       #store listen (origin=3, provider = 3, receiver =1);
+
+_EOF_
diff --git a/Evergreen/src/extras/import/sparkle.subscribe-fw2.slonik b/Evergreen/src/extras/import/sparkle.subscribe-fw2.slonik
new file mode 100644 (file)
index 0000000..e897faf
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+CLUSTER=prod_replica_set
+DBNAME=sparkle
+MASTERHOST=10.1.0.13
+SLAVEHOST=10.1.0.14
+STATSHOST=10.1.0.11
+PGUSER=postgres
+BINDIR=/opt/pg814/bin
+
+$BINDIR/slonik <<_EOF_
+
+       #--
+       # define the namespace the replication system uses in our example it is
+       # slony_example
+       #--
+
+        cluster name = $CLUSTER;
+
+       #--
+       # admin conninfo's are used by slonik to connect to the nodes one for each
+       # node on each side of the cluster, the syntax is that of PQconnectdb in
+       # the C-API
+       # --
+
+       node 1 admin conninfo = 'dbname=$DBNAME host=$MASTERHOST user=$PGUSER';
+       node 2 admin conninfo = 'dbname=$DBNAME host=$SLAVEHOST user=$PGUSER';
+       node 3 admin conninfo = 'dbname=$DBNAME host=$STATSHOST user=$PGUSER';
+
+       subscribe set ( id = 1, provider = 2, receiver = 3, forward = no);
+_EOF_
diff --git a/Evergreen/src/extras/import/sparkle.subscribe-fw5.slonik b/Evergreen/src/extras/import/sparkle.subscribe-fw5.slonik
new file mode 100644 (file)
index 0000000..6bdf3b2
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+CLUSTER=prod_replica_set
+DBNAME=sparkle
+MASTERHOST=10.1.0.13
+SLAVEHOST=10.1.0.14
+STATSHOST=10.1.0.11
+PGUSER=postgres
+BINDIR=/opt/pg814/bin
+
+$BINDIR/slonik <<_EOF_
+
+       #--
+       # define the namespace the replication system uses in our example it is
+       # slony_example
+       #--
+
+        cluster name = $CLUSTER;
+
+       #--
+       # admin conninfo's are used by slonik to connect to the nodes one for each
+       # node on each side of the cluster, the syntax is that of PQconnectdb in
+       # the C-API
+       # --
+
+       node 1 admin conninfo = 'dbname=$DBNAME host=$MASTERHOST user=$PGUSER';
+       node 2 admin conninfo = 'dbname=$DBNAME host=$SLAVEHOST user=$PGUSER';
+
+       subscribe set ( id = 1, provider = 1, receiver = 2, forward = yes);
+_EOF_
diff --git a/Evergreen/src/extras/import/start_pgpool b/Evergreen/src/extras/import/start_pgpool
new file mode 100755 (executable)
index 0000000..b35faa2
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+/opt/pg814/bin/pgpool -f /opt/pg814/etc/pgpool.conf -n 2>&1 | logger -t pgpool -p local0.info &
diff --git a/Evergreen/src/extras/import/start_slon b/Evergreen/src/extras/import/start_slon
new file mode 100755 (executable)
index 0000000..a09e029
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+/opt/pg814/bin/slon prod_replica_set dbname=sparkle host=10.1.0.13 user=postgres 2>&1 | logger -t slon -p local3.info &