Fri Aug 20 22:46:03 PDT 2004
- Previous message: [Slony1-commit] By cbbrowne: Add support for Apache "rotatelogs"; if you specify a path
- Next message: [Slony1-commit] By cbbrowne: When "slonik" is invoked, be sure to specify the FULL PATH
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message: ----------- Plenty of minor corrections Modified Files: -------------- slony1-engine/doc/howto: slonik_commands.html (r1.3 -> r1.4) -------------- next part -------------- Index: slonik_commands.html =================================================================== RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/howto/slonik_commands.html,v retrieving revision 1.3 retrieving revision 1.4 diff -Ldoc/howto/slonik_commands.html -Ldoc/howto/slonik_commands.html -u -w -r1.3 -r1.4 --- doc/howto/slonik_commands.html +++ doc/howto/slonik_commands.html @@ -57,11 +57,12 @@ </a> <div style="margin-left:40px; margin-right:80px;"> <p> - Slonik is a commandline utility designed specifically to - setup and modify configurations of the Slony-I replication - system. - This document is meant as a developer syntax-booklet, not - as a manual how to configure and setup a replication system. + Slonik is a commandline utility designed specifically to setup + and modify configurations of the Slony-I replication system. +</p> + +<p> This document is meant as a developer syntax-booklet, not as a +manual on how to configure and set up a replication system. </p> <p align="right">Back to <a href="#index">Index</a></p> </div> @@ -72,16 +73,29 @@ </a> <div style="margin-left:40px; margin-right:80px;"> <p> - The slonik commandline utility is supposed to be embedded into - shell scripts and reads commands from files or stdin (via - here documents for example). Nearly all of the real configuration - work is done by calling stored procedures after loading the - Slony-I support base into a database. Slonik was created because - these stored procedures have special requirements as to on which - particular node in the replication system they are called, the - lack of named parameters for stored procedures makes it rather - hard to do this from the psql prompt, and psql lacks the ability - to maintain multiple connections with open transactions. + The slonik commandline utility is supposed to be used embedded + into shell scripts and reads commands from files or stdin (via + here documents for example). Nearly all of the <i>real</i> + configuration work is done by calling stored procedures after + loading the Slony-I support base into a database. You may + find documentation for those procedures in the <a + href="schemadoc.html"> Slony-I Schema Documentation </a>, as + well as in comments associated with them in the database. +</p> + <p> + Slonik was created because: + <ul> + + <li> The stored procedures have special requirements as to on + which particular node in the replication system they are + called, + + <li> the lack of named parameters for stored procedures makes + it rather hard to do this from the psql prompt, and + + <li> psql lacks the ability to maintain multiple connections + with open transactions. + </ul> </p> <p> @@ -95,10 +109,10 @@ parentheses. Each option consists of one or more keywords, followed by an equal sign, followed by a value. Multiple options inside the parentheses are separated by commas. All keywords are case - insensitive. + insensitive. The language should remind the reader of SQL. </p> <p> - Option values are: + Option values may be: <ul> <li>integer values <li>string literals enclosed in single quotes @@ -135,9 +149,10 @@ </a> <div style="margin-left:40px; margin-right:80px;"> <p> - The following commands must appear at the very top of every slonik - command script. They do not cause any direct action on any of the - nodes in the replication system, but affect the entire script. + The following commands must appear at the very top of every + slonik command script. They do not cause any direct action on + any of the nodes in the replication system, but affect the + execution of the entire script. </p> <!-- **************************************** --> @@ -149,14 +164,18 @@ CLUSTER NAME = <string>; <h3>Description:</h3> <p> - Must be the very first command in every slonik script. Defines the - namespace in which all Slony-I specific functions, procedures, - tables and sequences are defined. The namespace name is built by - prefixing the given string literal with an underscore. This - namespace will be identical in all databases that participate in - the same replication group. No user objects are supposed to live - in this namespace and the namespace is not allowed to exist prior - to adding a database to the replication system. + Must be the very first command in every slonik script. Defines + the namespace in which all Slony-I specific functions, + procedures, tables and sequences are defined. The namespace + name is built by prefixing the given string literal with an + underscore. This namespace will be identical in all databases + that participate in the same replication group. No user + objects are supposed to live in this namespace and the + namespace is not allowed to exist prior to adding a database + to the replication system. Thus, if you add a new node using + <tt> pg_dump -s </tt> on a database that is already in the + cluster, you will need to drop the namespace via the SQL + command <tt> DROP SCHEMA _testcluster CASCADE; </tt>. </p> <h3>Example:</h3> <p> @@ -184,7 +203,7 @@ </p> <p> The slonik utility will not try to connect to the databases - unless any subsequent command requires the connection. + unless some subsequent command requires the connection. </p> <p> Note: As mentioned in the original documents, Slony-I is designed as an @@ -194,6 +213,16 @@ and configuration activities can use simple authentication schemes like trust. </p> + +<p> + Note: If you need to change the DSN information for a node, as + would happen if the IP address for a host were to change, you + may submit the new information using this command, and that + configuration will be propagated. Existing <tt> slon </tt> + processes <i>may </i> need to be restarted in order for them + to become aware of the configuration change. + +</p> <h3>Example:</h3> <p> NODE 1 ADMIN CONNINFO = 'dbname=testdb host=server1 user=slony'; @@ -306,6 +335,8 @@ <p> Initialize a new node and add it to the configuration of an existing cluster. +</p> +<p> The initialization process consists of creating the cluster namespace in the new node (the database itself must already exist), loading all the base tables, functions, procedures @@ -431,7 +462,7 @@ Causes an eventually running replication daemon on the specified node to shutdown and restart itself. Theoretically this command should be obsolete. In practice, TCP timeouts can delay critical - configuration changes to actually happen in the case, a former + configuration changes to actually happen in the case where a former forwarding node failed and needs to be bypassed by subscribers. </p> <h3>Example:</h3> @@ -806,11 +837,16 @@ MERGE SET ( <options> ); <h3>Description:</h3> <p> - Merge a set of tables and sequences into another one. This function - is a workaround for the problem that it is not possible to add - tables/sequences to subscribed sets. One can create a temporary set, - add the new objects to that, subscribe all nodes, currently subscribed - to the other set to this new one and then merge the two together. + Merge a set of tables and sequences into another one. This + function is a workaround for the problem that it is not + possible to add tables/sequences to already-subscribed + sets. One may create a temporary set, add the new objects to + that, subscribe all nodes currently subscribed to the other + set to this new one, and then merge the two together. +</p> +<p> + This request will fail if the two sets do not have exactly the + same set of subscribers. </p> <table border="0" cellpadding="10"> <tr> @@ -853,8 +889,8 @@ <h3>Description:</h3> <p> Add an existing user table to a replication set. The set - cannot currently be subscribed by any other node (this - functionality will soon be implemented with a MERGE SET command). + cannot currently be subscribed by any other node - that + functionality is supported by the<tt>MERGE SET</tt> command. </p> <table border="0" cellpadding="10"> <tr> @@ -932,8 +968,8 @@ <h3>Description:</h3> <p> Add an existing user sequence to a replication set. The set - cannot currently be subscribed by any other node (this - functionality will soon be implemented with a MERGE SET command). + cannot currently be subscribed by any other node - that + functionality is supported by the MERGE SET command. </p> <table border="0" cellpadding="10"> <tr> @@ -1084,18 +1120,19 @@ <h3>Description:</h3> <p> Causes a node (subscriber) to start replicating a set of - tables either from the origin or from another provider node, which - must be a currently forwarding subscriber itself. + tables either from the origin or from another provider node, + which must be a currently forwarding subscriber itself. </p> <p> - The application tables contained in the set must already exist and - should ideally be currently empty. The current version of Slony-I - will not attempt to copy the schema of the set. The replication daemon - will start copying the current content of the set from the given - provider and then try to catch up with any update activity that - happened during that copy process. After successfull subscription, - the tables are guarded on the subscriber against accidential updates - by the application. + The application tables contained in the set must already exist + and should ideally be currently empty. The current version of + Slony-I will not attempt to copy the schema of the set. The + replication daemon will start copying the current content of + the set from the given provider and then try to catch up with + any update activity that happened during that copy + process. After successful subscription, the tables are guarded + on the subscriber using triggers against accidental updates by + the application. </p> <table border="0" cellpadding="10"> <tr> @@ -1119,9 +1156,10 @@ <tr> <td align="left" valign="top" nowrap><b>FORWARD = <boolean></b></td> <td align="left" valign="top"><p> - Flag if the new subscriber should store the log information - during replication to become a possible candidate for the - provider role of future nodes. + Flag whether or not the new subscriber should store + the log information during replication to make it + possible candidate for the provider role for future + nodes. </p></td> </tr> </table> @@ -1153,9 +1191,10 @@ restored. </p> <p> - <b>Warning!</b> Resubscribing an unsubscribed set requires a full - new copy from the provider to be transferred since the tables have - been subject to possible independant modifications. + <b>Warning!</b> Resubscribing an unsubscribed set requires a + <i>complete fresh copy</i> of data from the provider to be + transferred since the tables have been subject to possible + independent modifications. </p> <table border="0" cellpadding="10"> <tr> @@ -1195,12 +1234,13 @@ command. </p> <p> - This command must be the first in a possible statement group (try). - The reason for this is that it needs to commit the changes made - to the tables (adding a special trigger function) before it can - wait for every concurrent transaction to finish. At the same time - it cannot hold an open transaction to the same database itself since - this would result in blocking itself forever. + This command must be the first in a possible statement group + (<tt>try</tt>). The reason for this is that it needs to + commit the changes made to the tables (adding a special + trigger function) before it can wait for every concurrent + transaction to finish. At the same time it cannot hold an open + transaction to the same database itself since this would + result in blocking itself forever. </p> <table border="0" cellpadding="10"> <tr> @@ -1275,17 +1315,19 @@ locked on the old origin. </p> <p> - After this command, the set cannot be unlocked on the old origin - any more. The old origin will continue as a forwarding subscriber - of the set and the subscription chain from the old origin to the - new origin will get hop by hop reversed. As soon as the new origin - has finished processing the event (that includes any outstanding - sync events that happened before, i.e. fully catching up), the - new origin will take over and open all tables in the set for - client application update activity. + After this command, the set cannot be unlocked on the old + origin any more. The old origin will continue as a forwarding + subscriber of the set and the subscription chain from the old + origin to the new origin will be reversed, hop by hop. As soon + as the new origin has finished processing the event (that + includes any outstanding sync events that happened before, + <i>i.e.</i> fully catching up), the new origin will take over + and open all tables in the set for client application update + activity. </p> <p> - This is not failover, as it requires a fully functional old origin. + This is not failover, as it requires a fully functional old + origin node. </p> <table border="0" cellpadding="10"> <tr> @@ -1327,25 +1369,26 @@ FAILOVER ( <options> ); <h3>Description:</h3> <p> - WARNING: This command will abandon the status of the failed node. - There is no other possibility to let the failed node join the - cluster again than rebuilding it from scratch as a slave. -</p> -<p> - The failover command causes the backup node to take over all sets - that currently originate on the failed node. Slonik will contact - all other direct subscribers of the failed node to determine which - node has the highest sync status for each set. If another node has - a higher sync status than the backup node, the replication will - first be redirected so that the backup node replicates against that - other node, before assuming the origin role and allowing update - activity. -</p> -<p> - After successfull failover, all former direct subscribers of the - failed node are direct subscribers of the backup node. The failed - node can and should be removed from the configuration with - DROP NODE. + WARNING: This command will abandon the status of the failed + node. There is no possibility to let the failed node join the + cluster again without rebuilding it from scratch as a slave + slave. +</p> +<p> + The failover command causes the backup node to take over all + sets that currently originate on the failed node. Slonik will + contact all other direct subscribers of the failed node to + determine which node has the highest sync status for each + set. If another node has a higher sync status than the backup + node, the replication will first be redirected so that the + backup node replicates against that other node, before + assuming the origin role and allowing update activity. +</p> +<p> + After successful failover, all former direct subscribers of + the failed node become direct subscribers of the backup + node. The failed node can and should be removed from the + configuration with <tt>DROP NODE</tt>. </p> <table border="0" cellpadding="10"> <tr> @@ -1381,15 +1424,16 @@ <h3>Description:</h3> <p> Executes a script containing arbitrary SQL statements on all - nodes that are subscribed to a set at a controlled point within - the replication stream. + nodes that are subscribed to a set at a common controlled + point within the replication transaction stream. </p> <p> The specified event origin must be the origin of the set. The script file must not contain any START or COMMIT TRANSACTION - calls. Also any non-deterministic DML statements (like updating - a field with CURRENT_TIMESTAMP) must be avoided, since the - data changes done by the script are explicitly not replicated. + calls. In addition, non-deterministic DML statements (like + updating a field with CURRENT_TIMESTAMP) must be avoided, + since the data changes done by the script are explicitly not + replicated. </p> <table border="0" cellpadding="10"> <tr>
- Previous message: [Slony1-commit] By cbbrowne: Add support for Apache "rotatelogs"; if you specify a path
- Next message: [Slony1-commit] By cbbrowne: When "slonik" is invoked, be sure to specify the FULL PATH
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list