mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
Here is an update to the dbmirror README file.
-References to older versions of PostgreSQL have been removed(It no longer compiles against older versions) -Added a link to PgPerl at GBorg. Steven Singer
This commit is contained in:
parent
03a2c3b586
commit
e781a1a95d
@ -1,8 +1,8 @@
|
|||||||
DBMirror - Postgres Database Mirroring
|
DBMirror - PostgreSQL Database Mirroring
|
||||||
===================================================
|
===================================================
|
||||||
|
|
||||||
|
|
||||||
DBMirror is a database mirroring system developed for the Postgres
|
DBMirror is a database mirroring system developed for the PostgreSQL
|
||||||
database Written and maintained by Steven Singer(ssinger@navtechinc.com)
|
database Written and maintained by Steven Singer(ssinger@navtechinc.com)
|
||||||
|
|
||||||
|
|
||||||
@ -54,6 +54,13 @@ If the transaction has been sent to all know slave hosts (All entries
|
|||||||
in the MirrorHost table) then all records of it are purged from the
|
in the MirrorHost table) then all records of it are purged from the
|
||||||
Pending tables.
|
Pending tables.
|
||||||
|
|
||||||
|
Requirments:
|
||||||
|
---------------------------------
|
||||||
|
-PostgreSQL-7.4 (Older versions are no longer supported)
|
||||||
|
-Perl 5.6(Other versions might work)
|
||||||
|
-PgPerl (http://gborg.postgresql.org/project/pgperl/projdisplay.php)
|
||||||
|
|
||||||
|
|
||||||
Installation Instructions
|
Installation Instructions
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -66,33 +73,11 @@ time a row inside of a table being mirrored changes.
|
|||||||
|
|
||||||
To build the trigger run make on the "Makefile" in the DBMirror directory.
|
To build the trigger run make on the "Makefile" in the DBMirror directory.
|
||||||
|
|
||||||
Postgres-7.3 & 7.4 Make Instructions:
|
PostgreSQL-7.4 Make Instructions:
|
||||||
|
|
||||||
If you have already run "configure" in the pgsql-server directory
|
If you have already run "configure" in the pgsql-server directory
|
||||||
then run "make" in the dbmirror directory to compile the trigger.
|
then run "make" in the dbmirror directory to compile the trigger.
|
||||||
|
|
||||||
Postgres-7.1 & Postgres-7.2 Make Instructions:
|
|
||||||
|
|
||||||
The included Makefile is not compatible with postgres 7.1 and 7.2
|
|
||||||
The trigger will need to be built by hand.
|
|
||||||
|
|
||||||
Run the following commands
|
|
||||||
|
|
||||||
gcc -fpic -I/usr/local/pgsql/include/server -c pending.c -DNOSCHEMAS -DNODROPCOLUMN
|
|
||||||
ld -shared -o pending.so pending.o
|
|
||||||
|
|
||||||
Assuming the postgres include files are in /usr/local/pgsql/include/server.
|
|
||||||
|
|
||||||
Postgres-7.1.x installations should change this to
|
|
||||||
/usr/local/pgsql/include (The server part is for 7.2+)
|
|
||||||
|
|
||||||
If you have installed the postgres include files to another location then
|
|
||||||
modify the include path to reflect this.
|
|
||||||
|
|
||||||
Compiling the trigger by hand requires that all postgres headers be installed
|
|
||||||
,this is accomplished in postgresql(7.1 or 7.2) by running
|
|
||||||
"make install-all-headers" in the postgres source directory.
|
|
||||||
|
|
||||||
|
|
||||||
You should now have a file named pending.so that contains the trigger.
|
You should now have a file named pending.so that contains the trigger.
|
||||||
|
|
||||||
@ -109,7 +94,7 @@ choose to install the trigger elsewhere.
|
|||||||
This file contains SQL commands to setup the Mirroring environment.
|
This file contains SQL commands to setup the Mirroring environment.
|
||||||
This includes
|
This includes
|
||||||
|
|
||||||
-Telling Postgres about the "recordchange" trigger function.
|
-Telling PostgreSQL about the "recordchange" trigger function.
|
||||||
-Creating the Pending,PendingData, MirrorHost, MirroredTransaction tables
|
-Creating the Pending,PendingData, MirrorHost, MirroredTransaction tables
|
||||||
|
|
||||||
|
|
||||||
@ -120,15 +105,6 @@ To execute the script use psql as follows
|
|||||||
where MyDatabaseName is the name of the database you wish to install mirroring
|
where MyDatabaseName is the name of the database you wish to install mirroring
|
||||||
on(Your master).
|
on(Your master).
|
||||||
|
|
||||||
Postgres-7.1 and 7.2 Notes:
|
|
||||||
-The syntax for creating a trigger function changed in Postgres-7.3.
|
|
||||||
Change the line in MirrorSetup.sql from
|
|
||||||
|
|
||||||
CREATE FUNCTION "recordchange" () RETURNS trigger AS
|
|
||||||
|
|
||||||
to
|
|
||||||
CREATE FUNCTION "recordchange" () RETURNS OPAQUE AS
|
|
||||||
|
|
||||||
|
|
||||||
3) Create slaveDatabase.conf files.
|
3) Create slaveDatabase.conf files.
|
||||||
|
|
||||||
@ -185,8 +161,7 @@ INSERT INTO "MirrorHost" ("HostName") VALUES ('mySlaveMachine.mycompany.com');
|
|||||||
|
|
||||||
DBMirror.pl is the perl script that handles the mirroring.
|
DBMirror.pl is the perl script that handles the mirroring.
|
||||||
|
|
||||||
It requires the Perl library Pg(See src/interfaces/perl5 in the postgres
|
It requires the Perl library Pg(See http://gborg.postgresql.org/project/pgperl/projdisplay.php)
|
||||||
source distribution).
|
|
||||||
|
|
||||||
It takes its configuration file as an argument(The one from step 3)
|
It takes its configuration file as an argument(The one from step 3)
|
||||||
One instance of DBMirror.pl runs for each slave machine that is receiving
|
One instance of DBMirror.pl runs for each slave machine that is receiving
|
||||||
@ -223,22 +198,6 @@ TODO(Current Limitations)
|
|||||||
-Batching SQL commands in DBMirror for better performance over WAN's.
|
-Batching SQL commands in DBMirror for better performance over WAN's.
|
||||||
-Better support for dealing with Schema changes.
|
-Better support for dealing with Schema changes.
|
||||||
|
|
||||||
Tested Platforms:
|
|
||||||
------------------
|
|
||||||
|
|
||||||
DBMirror has been tested on the following configurations but should
|
|
||||||
work on any platform with Postgres >= 7.1 and Perl 5.6.
|
|
||||||
|
|
||||||
RedHat Linux 7.1 & 6.2
|
|
||||||
-Postgres 7.1.2
|
|
||||||
-Perl 5.6
|
|
||||||
|
|
||||||
Mandrake Linux 8.0(Limited Testing)
|
|
||||||
-Postgres 7.2
|
|
||||||
-Postgres 7.3
|
|
||||||
-Postgres 7.4
|
|
||||||
-Perl 5.6
|
|
||||||
|
|
||||||
|
|
||||||
Steven Singer
|
Steven Singer
|
||||||
Navtech Systems Support Inc.
|
Navtech Systems Support Inc.
|
||||||
|
Loading…
Reference in New Issue
Block a user