aboutsummaryrefslogtreecommitdiff
path: root/databases/pgpool-II-23/files
diff options
context:
space:
mode:
authorJun Kuriyama <kuriyama@FreeBSD.org>2010-02-22 11:20:13 +0000
committerJun Kuriyama <kuriyama@FreeBSD.org>2010-02-22 11:20:13 +0000
commitb036602676f95b559f0238af38f3a85c5e047365 (patch)
treed544b7d8463893bbc0e04c5f419c5733b4a219ba /databases/pgpool-II-23/files
parenta3531af2232ee6c6d86cdb15ad64ca61b1a11b5c (diff)
Notes
Diffstat (limited to 'databases/pgpool-II-23/files')
-rw-r--r--databases/pgpool-II-23/files/pgpool_copy_backup11
-rw-r--r--databases/pgpool-II-23/files/pgpool_remote_start25
2 files changed, 26 insertions, 10 deletions
diff --git a/databases/pgpool-II-23/files/pgpool_copy_backup b/databases/pgpool-II-23/files/pgpool_copy_backup
index 31d0d4651921..aa6a5226d53a 100644
--- a/databases/pgpool-II-23/files/pgpool_copy_backup
+++ b/databases/pgpool-II-23/files/pgpool_copy_backup
@@ -1,6 +1,10 @@
#!/bin/sh
#
# $FreeBSD$
+#
+# In postgresql.conf:
+# archive_command = 'test -f /proj/pgsql/data/archive_log/%f || cp %p /proj/pgsql/data/archive_log/%f'
+#
SRC=pgsql@$(hostname)
SRCDIR=$1
@@ -10,16 +14,15 @@ ARCLOG=$1/archive_log
logger="logger -t pgpool -p local0.info"
rsync="/usr/local/bin/rsync -av --delete --checksum"
-excl="--exclude=pg_log --exclude=archive_log --exclude=postmaster.pid"
-psql=/usr/local/bin/psql
+excl="--exclude=pg_log --exclude=postmaster.pid"
+psql="/usr/local/bin/psql"
/bin/sh <<EOF | ${logger} 2>&1
$psql -c "select pg_start_backup('pgpool-recovery')" template1
ssh $DEST "
-/usr/local/etc/rc.d/postgresql stop;
-rm -rf $DESTDIR/pg_xlog;
+/usr/local/bin/pg_ctl -D $DESTDIR -s -m fast stop;
rm -f $DESTDIR/backup_label"
echo "restore_command = 'scp $SRC:$ARCLOG/%f %p'" > $SRCDIR/recovery.conf
diff --git a/databases/pgpool-II-23/files/pgpool_remote_start b/databases/pgpool-II-23/files/pgpool_remote_start
index 66a628b725fd..1c044aef90cb 100644
--- a/databases/pgpool-II-23/files/pgpool_remote_start
+++ b/databases/pgpool-II-23/files/pgpool_remote_start
@@ -1,13 +1,26 @@
-#!/bin/sh
+#!/usr/bin/perl
#
# $FreeBSD$
-DEST=pgsql@$1
+use strict;
+use warnings;
-logger="logger -t pgpool -p local0.info"
+my ($host, $dir) = @ARGV;
-/bin/sh <<EOF | ${logger} 2>&1
+my $logger = "logger -t pgpool -p local0.info";
+my $pgctl = "/usr/local/bin/pg_ctl -D $dir";
+my ($fh, $log);
-ssh $DEST '/usr/local/etc/rc.d/postgresql start'
+if (not open($fh, "ssh pgsql\@$host $pgctl -t 5 -w -s -m fast start 2>&1 |")) {
+ die "cannot open ssh: $!";
+}
+if (not open($log, "| $logger")) {
+ die "cannot open logger: $!";
+}
+while (<$fh>) {
+ print $log $_;
+}
+close($fh) or die "close(ssh) failed: $!";
+close($log) or die "close(logger): $!";
-EOF
+system("ssh pgsql\@$host $pgctl status 2>&1") == 0 or die "pg_ctl status failed";