--- /usr/home/staff/wright/postgre/rserv-0.3/bin/Replicate Wed Oct 29 12:06:26 2003 +++ Replicate Fri Mar 12 18:34:51 2004 @@ -21,7 +21,7 @@ my ($debug,$verbose) = (0,0); my ($help,$masterhost,$masterport,$masteruser,$masterpassword, - $slavehost,$slaveport,$slaveuser,$slavepassword); + $slavehost,$slaveport,$slaveuser,$slavepassword,$loop); my $snapshot = ".__Snapshot"; my $result = GetOptions( @@ -30,7 +30,7 @@ "masteruser=s" => \$masteruser, "masterpassword=s" => \$masterpassword, "slavehost=s" => \$slavehost, "slaveport=i" => \$slaveport, "slaveuser=s" => \$slaveuser, "slavepassword=s" => \$slavepassword, - "snapshot=s" => \$snapshot, + "snapshot=s" => \$snapshot, "loop|l=i" => \$loop, ); if (defined($help) || (scalar(@ARGV) < 2)) { @@ -92,6 +92,8 @@ exit 1; } +$SIG{HUP} = sub { $loop = 0 }; + my $minfo = "dbname=$master"; $minfo = "$minfo host=$masterhost" if (defined($masterhost)); @@ -130,6 +132,22 @@ unlink $fname; die "\n>>>>>>>>>>>>> ERROR\n"; } + +if ( ! $loop ) { + &doReplication; +} else { + while ( $loop ) { + &doReplication; + sleep( $loop ); + } +} + + +exit(0); + +########################################################################### + +sub doReplication { SyncSync($mconn, $sconn); my $outf = new IO::File; @@ -146,7 +164,7 @@ print "\n>>>>>>>>>>>>> DBases are sync-ed\n" if ($verbose); unlink $snapshot unless ($debug); unlink $fname; - exit(0); + return(0); } my $inpf = new IO::File; @@ -167,9 +185,7 @@ } unlink $fname; -exit(0); - -########################################################################### +} sub SyncSync { @@ -183,7 +199,7 @@ print "Last SyncID applied: $syncid\n" if ($verbose); print "Sync SyncID\n" if ($verbose); - $res = SyncSyncID($mconn, $slaveId, $syncid); + my $res = SyncSyncID($mconn, $slaveId, $syncid); print "Succeeded\n" if (($res > 0) && ($verbose)); }