/[rserv]/share/RServ.pm
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 /share/RServ.pm

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

revision 1.11 by dpavlin, Fri Oct 31 00:07:37 2003 UTC revision 1.14 by dpavlin, Sun Nov 2 11:29:09 2003 UTC
# Line 7  package RServ; Line 7  package RServ;
7  require Exporter;  require Exporter;
8  @ISA = qw(Exporter);  @ISA = qw(Exporter);
9  @EXPORT = qw(PrepareSnapshot ApplySnapshot GetSyncID SyncSyncID CleanLog GetServerId  @EXPORT = qw(PrepareSnapshot ApplySnapshot GetSyncID SyncSyncID CleanLog GetServerId
10          Rollback RollbackAndQuit Connect Exec Exec2          Rollback RollbackAndQuit Connect Exec Exec2 MkInfo
11          $debug $quiet $verbose          $debug $quiet $verbose
12          );          );
13  @EXPORT_OK = qw();  @EXPORT_OK = qw();
# Line 18  my $debug = 0; Line 18  my $debug = 0;
18  my $quiet = 1;  my $quiet = 1;
19  my $verbose = 0;  my $verbose = 0;
20    
21    $debug = 1;
22    $quiet = 0;
23    $verbose = 1;
24    
25  my %Mtables = ();  my %Mtables = ();
26  my %Stables = ();  my %Stables = ();
27    
# Line 53  sub PrepareSnapshot Line 57  sub PrepareSnapshot
57  {  {
58      my ($mconn, $sconn, $outf, $mserver, $sserver, $onlytables) = @_;      my ($mconn, $sconn, $outf, $mserver, $sserver, $onlytables) = @_;
59    
60    print STDERR "## d: $debug v: $verbose q: $quiet\n";
61    
62      if ($mserver == $sserver) {      if ($mserver == $sserver) {
63          print STDERR "master and slave numbers are same [$mserver] !\n";          print STDERR "master and slave numbers are same [$mserver] !\n";
64          return(-1);          return(-1);
# Line 73  sub PrepareSnapshot Line 79  sub PrepareSnapshot
79          $Stables{$row[0]} = 1;          $Stables{$row[0]} = 1;
80      }      }
81            
82        print "Prepare snapshot for tables: ",join(",",keys %Stables),"\n" if ($debug);
83    
84      $result = $mconn->exec("BEGIN");      $result = $mconn->exec("BEGIN");
85      if ($result->resultStatus ne PGRES_COMMAND_OK)      if ($result->resultStatus ne PGRES_COMMAND_OK)
86      {      {
# Line 110  sub PrepareSnapshot Line 118  sub PrepareSnapshot
118                  }                  }
119          push @{$Mtables{$row[0]}}, $row[1], $row[2], $row[3];          push @{$Mtables{$row[0]}}, $row[1], $row[2], $row[3];
120      }      }
121        
122        print "Master database table oids: ",join(",",keys %Mtables),"\n" if ($debug);
123    
124      # Read last succeeded sync      # Read last succeeded sync
125      my $sql = "select syncid, synctime, minid, maxid, active from _RSERV_SYNC_" .      my $sql = "select syncid, synctime, minid, maxid, active from _RSERV_SYNC_" .
126          " where server = $sserver AND syncid = (select max(syncid) from" .          " where server = $sserver AND syncid = (select max(syncid) from" .
# Line 127  sub PrepareSnapshot Line 137  sub PrepareSnapshot
137      }      }
138            
139      my @lastsync = $result->fetchrow;      my @lastsync = $result->fetchrow;
140        print "lastsync: ",join(",",@lastsync),"\n" if ($debug);
141    
142      # exclude data which originated from master server      # exclude data which originated from master server
143      my $sel_server = " and l.server = $mserver ";      my $sel_server = " and l.server = $mserver ";
# Line 470  sub ApplySnapshot Line 481  sub ApplySnapshot
481          push @{$Stables{$row[1]}}, $row[0], $row[2], $row[3];          push @{$Stables{$row[1]}}, $row[0], $row[2], $row[3];
482      }      }
483    
484        print STDERR "Snapshot tables oids: ",join(",",keys %Stables),"\n" if ($debug);
485    
486      my $ok = 0;      my $ok = 0;
487      my $syncid = -1;      my $syncid = -1;
488      while(<$inpf>)      while(<$inpf>)
# Line 1047  sub Exec2 { Line 1060  sub Exec2 {
1060          RollbackAndQuit($sconn) if ($result->resultStatus ne PGRES_COMMAND_OK);          RollbackAndQuit($sconn) if ($result->resultStatus ne PGRES_COMMAND_OK);
1061  }  }
1062    
1063    sub MkInfo {
1064            my $db = shift || die "need database name!";
1065            my $host = shift;
1066            my $port = shift;
1067            my $user = shift;
1068            my $password = shift;
1069    
1070            my $info = "dbname=$db";
1071            $info = "$info host=$host" if (defined($host));
1072            $info = "$info port=$port" if (defined($port));
1073            $info = "$info user=$user" if (defined($user));
1074            $info = "$info password=$password" if (defined($password));
1075    
1076            return $info;
1077    }
1078    
1079  1;  1;

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.26