6 |
& eval 'exec perl -S $0 $argv:q' |
& eval 'exec perl -S $0 $argv:q' |
7 |
if 0; |
if 0; |
8 |
|
|
9 |
|
BEGIN { |
10 |
|
my $basedir = $0; $basedir =~ s#/[^/]+$##; |
11 |
|
unshift(@INC, "$basedir/../share"); |
12 |
|
} |
13 |
|
|
14 |
use strict; |
use strict; |
15 |
use Pg; |
use Pg; |
16 |
use Getopt::Long; |
use Getopt::Long; |
17 |
use Sys::Hostname; |
use RServ; |
18 |
|
|
19 |
$| = 1; |
$| = 1; |
20 |
|
|
45 |
my $master = $ARGV[0] || "master"; |
my $master = $ARGV[0] || "master"; |
46 |
my $slave = $ARGV[1] || "slave"; |
my $slave = $ARGV[1] || "slave"; |
47 |
|
|
48 |
my $sinfo = "dbname=$slave"; |
my $minfo = MkInfo($master,$masterhost,$masterport,$masteruser,$masterpassword); |
49 |
$sinfo = "$sinfo host=$slavehost" if (defined($slavehost)); |
my $sinfo = MkInfo($slave,$slavehost,$slaveport,$slaveuser,$slavepassword); |
|
$sinfo = "$sinfo port=$slaveport" if (defined($slaveport)); |
|
|
$sinfo = "$sinfo user=$slaveuser" if (defined($slaveuser)); |
|
|
$sinfo = "$sinfo password=$slavepassword" if (defined($slavepassword)); |
|
|
|
|
|
my $minfo = "dbname=$master"; |
|
|
$minfo = "$minfo host=$masterhost" if (defined($masterhost)); |
|
|
$minfo = "$minfo port=$masterport" if (defined($masterport)); |
|
|
$minfo = "$minfo user=$masteruser" if (defined($masteruser)); |
|
|
$minfo = "$minfo password=$masterpassword" if (defined($masterpassword)); |
|
|
|
|
|
sub RollbackAndQuit { |
|
|
my $conn = shift @_; |
|
|
|
|
|
print STDERR $conn->errorMessage; |
|
|
$conn->exec("ROLLBACK"); |
|
|
exit (-1); |
|
|
} |
|
50 |
|
|
51 |
# First, lets add the needed information in the slave database |
# First, lets add the needed information in the slave database |
52 |
|
|
82 |
# exit 1; |
# exit 1; |
83 |
} |
} |
84 |
|
|
85 |
my $host = defined($slavehost) ? $slavehost : hostname; |
$slavehost="localhost" if (! $slavehost); |
86 |
|
|
87 |
$result = $mconn->exec("INSERT INTO _RSERV_SERVERS_ (host,dbase) VALUES ('$host','$slave')"); |
$result = $mconn->exec("INSERT INTO _RSERV_SERVERS_ (host,dbase) VALUES ('$slavehost','$slave')"); |
88 |
if ($result->resultStatus ne PGRES_COMMAND_OK) { |
if ($result->resultStatus ne PGRES_COMMAND_OK) { |
89 |
print STDERR $mconn->errorMessage; |
print STDERR $mconn->errorMessage; |
90 |
RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); |
RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); |