/[rserv]/bin/PrepareSnapshot
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /bin/PrepareSnapshot

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by dpavlin, Tue Aug 5 09:20:08 2003 UTC revision 1.3 by dpavlin, Tue Aug 5 09:52:36 2003 UTC
# Line 11  use lib "/usr/share/postgresql/contrib"; Line 11  use lib "/usr/share/postgresql/contrib";
11  use IO::File;  use IO::File;
12  use Getopt::Long;  use Getopt::Long;
13  use RServ;  use RServ;
14    use Sys::Hostname;
15    
16  $| = 1;  $| = 1;
17    
18  $result = GetOptions("debug!", "verbose!", "help", "snapshot=s",  $result = GetOptions("debug!", "verbose!", "help", "snapshot=s",
19                       "host=s", "user=s", "password=s");                       "masterhost=s", "masteruser=s", "masterpassword=s",
20                         "slavehost=s", "slaveuser=s", "slavepassword=s");
21    
22  my $debug = $opt_debug || 0;  my $debug = $opt_debug || 0;
23  my $verbose = $opt_verbose || 0;  my $verbose = $opt_verbose || 0;
24  my $snapshot = $opt_snapshot || "__Snapshot";  my $snapshot = $opt_snapshot || "__Snapshot";
25    
26  if (defined($opt_help) || (scalar(@ARGV) < 1)) {  if (defined($opt_help) || (scalar(@ARGV) < 2)) {
27      print "Usage: $0 --snapshot=file --host=name --user=name --password=string masterdb\n";      print "Usage: $0 --snapshot=file --masterhost=name --masteruser=name --masterpassword=string --slavehost=name --slaveuser=name --slavepassword=string masterdb slavedb\n";
28      exit ((scalar(@ARGV) < 1)? 1:0);      exit ((scalar(@ARGV) < 1)? 1:0);
29  }  }
30    
31  my $master = $ARGV[0] || "master";  my $master = $ARGV[0] || "master";
32  my $server = 0;  my $slave = $ARGV[1] || "slave";
33    
34  my $minfo = "dbname=$master";  my $minfo = "dbname=$master";
35  $minfo = "$minfo host=$opt_host" if (defined($opt_host));  $minfo = "$minfo host=$opt_masterhost" if (defined($opt_masterhost));
36  $minfo = "$minfo user=$opt_user" if (defined($opt_user));  $minfo = "$minfo user=$opt_masteruser" if (defined($opt_masteruser));
37  $minfo = "$minfo password=$opt_password" if (defined($opt_password));  $minfo = "$minfo password=$opt_masterpassword" if (defined($opt_masterpassword));
38    
39  my $conn = Pg::connectdb($minfo);  my $sinfo = "dbname=$slave";
40    $sinfo = "$sinfo host=$opt_slavehost" if (defined($opt_slavehost));
41    $sinfo = "$sinfo user=$opt_slaveuser" if (defined($opt_slaveuser));
42    $sinfo = "$sinfo password=$opt_slavepassword" if (defined($opt_slavepassword));
43    
44    my $mconn = Pg::connectdb($minfo);
45    if ($mconn->status != PGRES_CONNECTION_OK) {
46        print STDERR "Failed opening $minfo\n";
47        exit 1;
48    }
49    my $sconn = Pg::connectdb($sinfo);
50    if ($sconn->status != PGRES_CONNECTION_OK) {
51        print STDERR "Failed opening $minfo\n";
52        exit 1;
53    }
54    
55  my $outf = new IO::File;  my $outf;
56  $outf = STDOUT;  if (defined($opt_snapshot)) {
57        $outf = new IO::File;    
58        $outf->open("> $opt_snapshot");
59    } else {
60        $outf = STDOUT;
61    }
62    
63  $RServ::quiet = !$verbose;  $hostname = defined($opt_slavehost) ? $opt_slavehost : hostname;
64    $slaveId  = GetSlaveId($mconn, $slave, $hostname);
65    die "Unknown SlaveId $slaveId for host $hostname" if ($slaveId < 0);
66    
67  $res = PrepareSnapshot ($conn, $outf, $server);  $res = PrepareSnapshot ($mconn, $sconn, $outf, $slaveId);
68    
69  if ($res == 0)  if ($res == 0)
70  {  {
71          printf STDERR "Sync-ed\n";      printf STDERR "Sync-ed\n";
72          exit(0);      exit(0);
73  }  }
74  if ($res > 0)  if ($res > 0)
75  {  {
76          printf STDERR "Snapshot dumped to STDOUT\n";      printf STDERR "Snapshot dumped.\n";
77          exit(0);      exit(0);
78  }  }
79    
80  printf STDERR "ERROR\n";  printf STDERR "ERROR\n";

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.26