prestogres 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +20 -0
- data/LICENSE +202 -0
- data/NOTICE +22 -0
- data/README.md +217 -0
- data/Rakefile +13 -0
- data/VERSION +1 -0
- data/bin/prestogres +254 -0
- data/config/pcp.conf.sample +28 -0
- data/config/pgpool.conf +678 -0
- data/config/pool_hba.conf +84 -0
- data/config/pool_passwd +0 -0
- data/config/postgresql.conf +2 -0
- data/ext/.gitignore +6 -0
- data/ext/depend +26 -0
- data/ext/extconf.rb +4 -0
- data/ext/prestogres_config.c +12 -0
- data/pgpool2/.gitignore +36 -0
- data/pgpool2/AUTHORS +4 -0
- data/pgpool2/COPYING +12 -0
- data/pgpool2/ChangeLog +1 -0
- data/pgpool2/INSTALL +1 -0
- data/pgpool2/Makefile.am +159 -0
- data/pgpool2/Makefile.in +1187 -0
- data/pgpool2/NEWS +4960 -0
- data/pgpool2/README +1 -0
- data/pgpool2/README.euc_jp +1 -0
- data/pgpool2/README.online-recovery +62 -0
- data/pgpool2/TODO +103 -0
- data/pgpool2/ac_func_accept_argtypes.m4 +85 -0
- data/pgpool2/aclocal.m4 +1088 -0
- data/pgpool2/c-compiler.m4 +134 -0
- data/pgpool2/c-library.m4 +325 -0
- data/pgpool2/child.c +2097 -0
- data/pgpool2/config.guess +1532 -0
- data/pgpool2/config.h.in +332 -0
- data/pgpool2/config.sub +1640 -0
- data/pgpool2/configure +15752 -0
- data/pgpool2/configure.in +392 -0
- data/pgpool2/depcomp +522 -0
- data/pgpool2/doc/basebackup.sh +17 -0
- data/pgpool2/doc/pgpool-de.html +4220 -0
- data/pgpool2/doc/pgpool-en.html +5738 -0
- data/pgpool2/doc/pgpool-fr.html +4118 -0
- data/pgpool2/doc/pgpool-ja.css +198 -0
- data/pgpool2/doc/pgpool-ja.html +11279 -0
- data/pgpool2/doc/pgpool-zh_cn.html +4445 -0
- data/pgpool2/doc/pgpool.css +280 -0
- data/pgpool2/doc/pgpool_remote_start +13 -0
- data/pgpool2/doc/recovery.conf.sample +117 -0
- data/pgpool2/doc/tutorial-en.html +707 -0
- data/pgpool2/doc/tutorial-ja.html +422 -0
- data/pgpool2/doc/tutorial-memqcache-en.html +325 -0
- data/pgpool2/doc/tutorial-memqcache-ja.html +370 -0
- data/pgpool2/doc/tutorial-memqcache-zh_cn.html +322 -0
- data/pgpool2/doc/tutorial-watchdog-en.html +306 -0
- data/pgpool2/doc/tutorial-watchdog-ja.html +343 -0
- data/pgpool2/doc/tutorial-watchdog-zh_cn.html +301 -0
- data/pgpool2/doc/tutorial-zh_cn.html +537 -0
- data/pgpool2/doc/watchdog.png +0 -0
- data/pgpool2/doc/wd-en.html +236 -0
- data/pgpool2/doc/wd-en.jpg +0 -0
- data/pgpool2/doc/wd-ja.html +219 -0
- data/pgpool2/doc/wd-ja.jpg +0 -0
- data/pgpool2/doc/wd-zh_cn.html +201 -0
- data/pgpool2/doc/where_to_send_queries.odg +0 -0
- data/pgpool2/doc/where_to_send_queries.pdf +0 -0
- data/pgpool2/general.m4 +166 -0
- data/pgpool2/getopt_long.c +200 -0
- data/pgpool2/getopt_long.h +44 -0
- data/pgpool2/install-sh +251 -0
- data/pgpool2/ltmain.sh +8406 -0
- data/pgpool2/m4/libtool.m4 +7360 -0
- data/pgpool2/m4/ltoptions.m4 +368 -0
- data/pgpool2/m4/ltsugar.m4 +123 -0
- data/pgpool2/m4/ltversion.m4 +23 -0
- data/pgpool2/m4/lt~obsolete.m4 +92 -0
- data/pgpool2/main.c +2971 -0
- data/pgpool2/md5.c +444 -0
- data/pgpool2/md5.h +28 -0
- data/pgpool2/missing +360 -0
- data/pgpool2/mkinstalldirs +40 -0
- data/pgpool2/parser/Makefile.am +50 -0
- data/pgpool2/parser/Makefile.in +559 -0
- data/pgpool2/parser/copyfuncs.c +3310 -0
- data/pgpool2/parser/gram.c +39100 -0
- data/pgpool2/parser/gram.h +940 -0
- data/pgpool2/parser/gram.y +13408 -0
- data/pgpool2/parser/gramparse.h +74 -0
- data/pgpool2/parser/keywords.c +32 -0
- data/pgpool2/parser/keywords.h +39 -0
- data/pgpool2/parser/kwlist.h +425 -0
- data/pgpool2/parser/kwlookup.c +88 -0
- data/pgpool2/parser/list.c +1156 -0
- data/pgpool2/parser/makefuncs.c +518 -0
- data/pgpool2/parser/makefuncs.h +83 -0
- data/pgpool2/parser/memnodes.h +79 -0
- data/pgpool2/parser/nodes.c +29 -0
- data/pgpool2/parser/nodes.h +609 -0
- data/pgpool2/parser/outfuncs.c +5790 -0
- data/pgpool2/parser/parsenodes.h +2615 -0
- data/pgpool2/parser/parser.c +262 -0
- data/pgpool2/parser/parser.h +46 -0
- data/pgpool2/parser/pg_class.h +158 -0
- data/pgpool2/parser/pg_config_manual.h +273 -0
- data/pgpool2/parser/pg_list.h +352 -0
- data/pgpool2/parser/pg_trigger.h +147 -0
- data/pgpool2/parser/pg_wchar.h +492 -0
- data/pgpool2/parser/pool_memory.c +342 -0
- data/pgpool2/parser/pool_memory.h +77 -0
- data/pgpool2/parser/pool_parser.h +222 -0
- data/pgpool2/parser/pool_string.c +121 -0
- data/pgpool2/parser/pool_string.h +37 -0
- data/pgpool2/parser/primnodes.h +1280 -0
- data/pgpool2/parser/scan.c +4094 -0
- data/pgpool2/parser/scan.l +1451 -0
- data/pgpool2/parser/scanner.h +120 -0
- data/pgpool2/parser/scansup.c +221 -0
- data/pgpool2/parser/scansup.h +28 -0
- data/pgpool2/parser/snprintf.c +1102 -0
- data/pgpool2/parser/stringinfo.c +294 -0
- data/pgpool2/parser/stringinfo.h +178 -0
- data/pgpool2/parser/value.c +78 -0
- data/pgpool2/parser/value.h +62 -0
- data/pgpool2/parser/wchar.c +2048 -0
- data/pgpool2/pcp.conf.sample +28 -0
- data/pgpool2/pcp/Makefile.am +40 -0
- data/pgpool2/pcp/Makefile.in +771 -0
- data/pgpool2/pcp/libpcp_ext.h +250 -0
- data/pgpool2/pcp/md5.c +444 -0
- data/pgpool2/pcp/md5.h +28 -0
- data/pgpool2/pcp/pcp.c +1652 -0
- data/pgpool2/pcp/pcp.h +61 -0
- data/pgpool2/pcp/pcp_attach_node.c +172 -0
- data/pgpool2/pcp/pcp_detach_node.c +185 -0
- data/pgpool2/pcp/pcp_error.c +87 -0
- data/pgpool2/pcp/pcp_node_count.c +160 -0
- data/pgpool2/pcp/pcp_node_info.c +198 -0
- data/pgpool2/pcp/pcp_pool_status.c +166 -0
- data/pgpool2/pcp/pcp_proc_count.c +166 -0
- data/pgpool2/pcp/pcp_proc_info.c +261 -0
- data/pgpool2/pcp/pcp_promote_node.c +185 -0
- data/pgpool2/pcp/pcp_recovery_node.c +172 -0
- data/pgpool2/pcp/pcp_stop_pgpool.c +179 -0
- data/pgpool2/pcp/pcp_stream.c +385 -0
- data/pgpool2/pcp/pcp_stream.h +52 -0
- data/pgpool2/pcp/pcp_systemdb_info.c +194 -0
- data/pgpool2/pcp/pcp_watchdog_info.c +211 -0
- data/pgpool2/pcp_child.c +1493 -0
- data/pgpool2/pg_md5.c +305 -0
- data/pgpool2/pgpool.8.in +121 -0
- data/pgpool2/pgpool.conf +553 -0
- data/pgpool2/pgpool.conf.sample +666 -0
- data/pgpool2/pgpool.conf.sample-master-slave +665 -0
- data/pgpool2/pgpool.conf.sample-replication +664 -0
- data/pgpool2/pgpool.conf.sample-stream +664 -0
- data/pgpool2/pgpool.spec +264 -0
- data/pgpool2/pgpool_adm/TODO +7 -0
- data/pgpool2/pgpool_adm/pgpool_adm--1.0.sql +85 -0
- data/pgpool2/pgpool_adm/pgpool_adm.c +558 -0
- data/pgpool2/pgpool_adm/pgpool_adm.control +5 -0
- data/pgpool2/pgpool_adm/pgpool_adm.h +46 -0
- data/pgpool2/pgpool_adm/pgpool_adm.sql.in +85 -0
- data/pgpool2/pool.h +655 -0
- data/pgpool2/pool_auth.c +1390 -0
- data/pgpool2/pool_config.c +5007 -0
- data/pgpool2/pool_config.h +284 -0
- data/pgpool2/pool_config.l +3281 -0
- data/pgpool2/pool_config_md5.c +29 -0
- data/pgpool2/pool_connection_pool.c +812 -0
- data/pgpool2/pool_error.c +242 -0
- data/pgpool2/pool_globals.c +27 -0
- data/pgpool2/pool_hba.c +1723 -0
- data/pgpool2/pool_hba.conf.sample +67 -0
- data/pgpool2/pool_ip.c +567 -0
- data/pgpool2/pool_ip.h +65 -0
- data/pgpool2/pool_ipc.h +38 -0
- data/pgpool2/pool_lobj.c +242 -0
- data/pgpool2/pool_lobj.h +32 -0
- data/pgpool2/pool_memqcache.c +3818 -0
- data/pgpool2/pool_memqcache.h +268 -0
- data/pgpool2/pool_params.c +163 -0
- data/pgpool2/pool_passwd.c +249 -0
- data/pgpool2/pool_passwd.h +41 -0
- data/pgpool2/pool_path.c +193 -0
- data/pgpool2/pool_path.h +81 -0
- data/pgpool2/pool_process_context.c +247 -0
- data/pgpool2/pool_process_context.h +62 -0
- data/pgpool2/pool_process_query.c +5001 -0
- data/pgpool2/pool_process_reporting.c +1671 -0
- data/pgpool2/pool_process_reporting.h +44 -0
- data/pgpool2/pool_proto2.c +671 -0
- data/pgpool2/pool_proto_modules.c +3524 -0
- data/pgpool2/pool_proto_modules.h +185 -0
- data/pgpool2/pool_query_cache.c +1020 -0
- data/pgpool2/pool_query_context.c +1871 -0
- data/pgpool2/pool_query_context.h +105 -0
- data/pgpool2/pool_relcache.c +284 -0
- data/pgpool2/pool_relcache.h +78 -0
- data/pgpool2/pool_rewrite_outfuncs.c +9060 -0
- data/pgpool2/pool_rewrite_query.c +715 -0
- data/pgpool2/pool_rewrite_query.h +192 -0
- data/pgpool2/pool_select_walker.c +1150 -0
- data/pgpool2/pool_select_walker.h +68 -0
- data/pgpool2/pool_sema.c +161 -0
- data/pgpool2/pool_session_context.c +952 -0
- data/pgpool2/pool_session_context.h +203 -0
- data/pgpool2/pool_shmem.c +185 -0
- data/pgpool2/pool_signal.c +158 -0
- data/pgpool2/pool_signal.h +61 -0
- data/pgpool2/pool_ssl.c +339 -0
- data/pgpool2/pool_stream.c +962 -0
- data/pgpool2/pool_stream.h +61 -0
- data/pgpool2/pool_system.c +659 -0
- data/pgpool2/pool_timestamp.c +1215 -0
- data/pgpool2/pool_timestamp.h +38 -0
- data/pgpool2/pool_type.h +171 -0
- data/pgpool2/pool_worker_child.c +384 -0
- data/pgpool2/ps_status.c +404 -0
- data/pgpool2/recovery.c +435 -0
- data/pgpool2/redhat/pgpool.conf.sample.patch +52 -0
- data/pgpool2/redhat/pgpool.init +201 -0
- data/pgpool2/redhat/pgpool.sysconfig +7 -0
- data/pgpool2/redhat/rpm_installer/basebackup-replication.sh +53 -0
- data/pgpool2/redhat/rpm_installer/basebackup-stream.sh +55 -0
- data/pgpool2/redhat/rpm_installer/config_for_script +17 -0
- data/pgpool2/redhat/rpm_installer/failover.sh +64 -0
- data/pgpool2/redhat/rpm_installer/getsources.sh +141 -0
- data/pgpool2/redhat/rpm_installer/install.sh +1363 -0
- data/pgpool2/redhat/rpm_installer/pgpool_recovery_pitr +47 -0
- data/pgpool2/redhat/rpm_installer/pgpool_remote_start +15 -0
- data/pgpool2/redhat/rpm_installer/recovery.conf +4 -0
- data/pgpool2/redhat/rpm_installer/uninstall.sh +57 -0
- data/pgpool2/sample/dist_def_pgbench.sql +73 -0
- data/pgpool2/sample/pgpool.pam +3 -0
- data/pgpool2/sample/pgpool_recovery +20 -0
- data/pgpool2/sample/pgpool_recovery_pitr +19 -0
- data/pgpool2/sample/pgpool_remote_start +13 -0
- data/pgpool2/sample/replicate_def_pgbench.sql +18 -0
- data/pgpool2/sql/insert_lock.sql +15 -0
- data/pgpool2/sql/pgpool-recovery/pgpool-recovery.c +280 -0
- data/pgpool2/sql/pgpool-recovery/pgpool-recovery.sql.in +19 -0
- data/pgpool2/sql/pgpool-recovery/pgpool_recovery--1.0.sql +24 -0
- data/pgpool2/sql/pgpool-recovery/pgpool_recovery.control +5 -0
- data/pgpool2/sql/pgpool-recovery/uninstall_pgpool-recovery.sql +3 -0
- data/pgpool2/sql/pgpool-regclass/pgpool-regclass.c +206 -0
- data/pgpool2/sql/pgpool-regclass/pgpool-regclass.sql.in +4 -0
- data/pgpool2/sql/pgpool-regclass/pgpool_regclass--1.0.sql +7 -0
- data/pgpool2/sql/pgpool-regclass/pgpool_regclass.control +5 -0
- data/pgpool2/sql/pgpool-regclass/uninstall_pgpool-regclass.sql +1 -0
- data/pgpool2/sql/system_db.sql +38 -0
- data/pgpool2/strlcpy.c +85 -0
- data/pgpool2/test/C/test_extended.c +98 -0
- data/pgpool2/test/jdbc/.cvsignore +2 -0
- data/pgpool2/test/jdbc/AutoCommitTest.java +45 -0
- data/pgpool2/test/jdbc/BatchTest.java +55 -0
- data/pgpool2/test/jdbc/ColumnTest.java +60 -0
- data/pgpool2/test/jdbc/CreateTempTableTest.java +48 -0
- data/pgpool2/test/jdbc/InsertTest.java +34 -0
- data/pgpool2/test/jdbc/LockTest.java +36 -0
- data/pgpool2/test/jdbc/PgpoolTest.java +75 -0
- data/pgpool2/test/jdbc/README.euc_jp +73 -0
- data/pgpool2/test/jdbc/RunTest.java +83 -0
- data/pgpool2/test/jdbc/SelectTest.java +37 -0
- data/pgpool2/test/jdbc/UpdateTest.java +32 -0
- data/pgpool2/test/jdbc/expected/CreateTempTable +1 -0
- data/pgpool2/test/jdbc/expected/autocommit +10 -0
- data/pgpool2/test/jdbc/expected/batch +1 -0
- data/pgpool2/test/jdbc/expected/column +100 -0
- data/pgpool2/test/jdbc/expected/insert +1 -0
- data/pgpool2/test/jdbc/expected/lock +100 -0
- data/pgpool2/test/jdbc/expected/select +2 -0
- data/pgpool2/test/jdbc/expected/update +1 -0
- data/pgpool2/test/jdbc/pgpool.properties +7 -0
- data/pgpool2/test/jdbc/prepare.sql +54 -0
- data/pgpool2/test/jdbc/run.sh +6 -0
- data/pgpool2/test/parser/.cvsignore +6 -0
- data/pgpool2/test/parser/README +32 -0
- data/pgpool2/test/parser/expected/copy.out +17 -0
- data/pgpool2/test/parser/expected/create.out +64 -0
- data/pgpool2/test/parser/expected/cursor.out +37 -0
- data/pgpool2/test/parser/expected/delete.out +10 -0
- data/pgpool2/test/parser/expected/drop.out +12 -0
- data/pgpool2/test/parser/expected/insert.out +13 -0
- data/pgpool2/test/parser/expected/misc.out +28 -0
- data/pgpool2/test/parser/expected/prepare.out +4 -0
- data/pgpool2/test/parser/expected/privileges.out +31 -0
- data/pgpool2/test/parser/expected/scanner.out +30 -0
- data/pgpool2/test/parser/expected/select.out +89 -0
- data/pgpool2/test/parser/expected/transaction.out +38 -0
- data/pgpool2/test/parser/expected/update.out +11 -0
- data/pgpool2/test/parser/expected/v84.out +37 -0
- data/pgpool2/test/parser/expected/v90.out +25 -0
- data/pgpool2/test/parser/expected/var.out +22 -0
- data/pgpool2/test/parser/input/alter.sql +2 -0
- data/pgpool2/test/parser/input/copy.sql +17 -0
- data/pgpool2/test/parser/input/create.sql +64 -0
- data/pgpool2/test/parser/input/cursor.sql +37 -0
- data/pgpool2/test/parser/input/delete.sql +10 -0
- data/pgpool2/test/parser/input/drop.sql +12 -0
- data/pgpool2/test/parser/input/insert.sql +13 -0
- data/pgpool2/test/parser/input/misc.sql +28 -0
- data/pgpool2/test/parser/input/prepare.sql +4 -0
- data/pgpool2/test/parser/input/privileges.sql +31 -0
- data/pgpool2/test/parser/input/scanner.sql +34 -0
- data/pgpool2/test/parser/input/select.sql +89 -0
- data/pgpool2/test/parser/input/transaction.sql +38 -0
- data/pgpool2/test/parser/input/update.sql +11 -0
- data/pgpool2/test/parser/input/v84.sql +37 -0
- data/pgpool2/test/parser/input/v90.sql +38 -0
- data/pgpool2/test/parser/input/var.sql +22 -0
- data/pgpool2/test/parser/main.c +96 -0
- data/pgpool2/test/parser/parse_schedule +16 -0
- data/pgpool2/test/parser/pool.h +13 -0
- data/pgpool2/test/parser/run-test +62 -0
- data/pgpool2/test/pdo-test/README.euc_jp +58 -0
- data/pgpool2/test/pdo-test/SQLlist/test1.sql +3 -0
- data/pgpool2/test/pdo-test/SQLlist/test2.sql +3 -0
- data/pgpool2/test/pdo-test/collections.inc +11 -0
- data/pgpool2/test/pdo-test/def.inc +7 -0
- data/pgpool2/test/pdo-test/log.txt +0 -0
- data/pgpool2/test/pdo-test/mod/database.inc +36 -0
- data/pgpool2/test/pdo-test/mod/def.inc +0 -0
- data/pgpool2/test/pdo-test/mod/errorhandler.inc +27 -0
- data/pgpool2/test/pdo-test/pdotest.php +11 -0
- data/pgpool2/test/pdo-test/regsql.inc +56 -0
- data/pgpool2/test/pgpool_setup +898 -0
- data/pgpool2/test/regression/README +39 -0
- data/pgpool2/test/regression/clean.sh +21 -0
- data/pgpool2/test/regression/libs.sh +16 -0
- data/pgpool2/test/regression/regress.sh +166 -0
- data/pgpool2/test/regression/tests/001.load_balance/test.sh +128 -0
- data/pgpool2/test/regression/tests/002.native_replication/PgTester.java +47 -0
- data/pgpool2/test/regression/tests/002.native_replication/create.sql +6 -0
- data/pgpool2/test/regression/tests/002.native_replication/test.sh +71 -0
- data/pgpool2/test/regression/tests/003.failover/expected.r +6 -0
- data/pgpool2/test/regression/tests/003.failover/expected.s +6 -0
- data/pgpool2/test/regression/tests/003.failover/test.sh +45 -0
- data/pgpool2/test/regression/tests/004.watchdog/master.conf +12 -0
- data/pgpool2/test/regression/tests/004.watchdog/standby.conf +19 -0
- data/pgpool2/test/regression/tests/004.watchdog/test.sh +52 -0
- data/pgpool2/test/regression/tests/050.bug58/test.sh +50 -0
- data/pgpool2/test/regression/tests/051.bug60/bug.sql +12 -0
- data/pgpool2/test/regression/tests/051.bug60/database-clean.sql +6 -0
- data/pgpool2/test/regression/tests/051.bug60/database-setup.sql +28 -0
- data/pgpool2/test/regression/tests/051.bug60/test.sh +79 -0
- data/pgpool2/test/regression/tests/052.do_query/test.sh +44 -0
- data/pgpool2/test/regression/tests/053.insert_lock_hangs/test.sh +81 -0
- data/pgpool2/test/regression/tests/054.postgres_fdw/test.sh +67 -0
- data/pgpool2/test/regression/tests/055.backend_all_down/test.sh +52 -0
- data/pgpool2/test/regression/tests/056.bug63/jdbctest2.java +66 -0
- data/pgpool2/test/regression/tests/056.bug63/test.sh +47 -0
- data/pgpool2/test/regression/tests/057.bug61/test.sh +40 -0
- data/pgpool2/test/regression/tests/058.bug68/jdbctest3.java +45 -0
- data/pgpool2/test/regression/tests/058.bug68/test.sh +47 -0
- data/pgpool2/test/timestamp/expected/insert.out +16 -0
- data/pgpool2/test/timestamp/expected/misc.out +3 -0
- data/pgpool2/test/timestamp/expected/update.out +6 -0
- data/pgpool2/test/timestamp/input/insert.sql +16 -0
- data/pgpool2/test/timestamp/input/misc.sql +3 -0
- data/pgpool2/test/timestamp/input/update.sql +6 -0
- data/pgpool2/test/timestamp/main.c +129 -0
- data/pgpool2/test/timestamp/parse_schedule +3 -0
- data/pgpool2/test/timestamp/run-test +69 -0
- data/pgpool2/version.h +1 -0
- data/pgpool2/watchdog/Makefile.am +17 -0
- data/pgpool2/watchdog/Makefile.in +505 -0
- data/pgpool2/watchdog/test/stab.c +266 -0
- data/pgpool2/watchdog/test/test.c +85 -0
- data/pgpool2/watchdog/test/wd_child_t.c +87 -0
- data/pgpool2/watchdog/test/wd_lifecheck_t.c +87 -0
- data/pgpool2/watchdog/test/wd_packet_t.c +87 -0
- data/pgpool2/watchdog/test/wd_ping_t.c +20 -0
- data/pgpool2/watchdog/watchdog.c +408 -0
- data/pgpool2/watchdog/watchdog.h +209 -0
- data/pgpool2/watchdog/wd_child.c +444 -0
- data/pgpool2/watchdog/wd_ext.h +123 -0
- data/pgpool2/watchdog/wd_heartbeat.c +577 -0
- data/pgpool2/watchdog/wd_if.c +216 -0
- data/pgpool2/watchdog/wd_init.c +126 -0
- data/pgpool2/watchdog/wd_interlock.c +347 -0
- data/pgpool2/watchdog/wd_lifecheck.c +512 -0
- data/pgpool2/watchdog/wd_list.c +429 -0
- data/pgpool2/watchdog/wd_packet.c +1159 -0
- data/pgpool2/watchdog/wd_ping.c +330 -0
- data/pgpool2/ylwrap +223 -0
- data/pgsql/presto_client.py +346 -0
- data/pgsql/prestogres.py +156 -0
- data/pgsql/setup_functions.sql +21 -0
- data/pgsql/setup_language.sql +3 -0
- data/prestogres.gemspec +23 -0
- metadata +496 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
+
<html><head>
|
|
3
|
+
<title>pgpool-II Tutorial [ Watchdog ]</title>
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
5
|
+
<link href="pgpool.css" rel="stylesheet" type="text/css">
|
|
6
|
+
|
|
7
|
+
<style type="text/css">
|
|
8
|
+
img {
|
|
9
|
+
border: 1px solid black;
|
|
10
|
+
padding: 10px;
|
|
11
|
+
margin-top: 15px;
|
|
12
|
+
margin-bottom: 15px;
|
|
13
|
+
}
|
|
14
|
+
</style>
|
|
15
|
+
|
|
16
|
+
</head>
|
|
17
|
+
<body bgcolor="#ffffff">
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<div id="top" class="header_text">pgpool-II Tutorial [ Watchdog ]</div>
|
|
21
|
+
|
|
22
|
+
<div id="menu">
|
|
23
|
+
<div id="navcontainer">
|
|
24
|
+
<ul id="navlist">
|
|
25
|
+
<li><a href="#thisis">About this document</a></li>
|
|
26
|
+
<li><a href="#basic">Basic configs</a>
|
|
27
|
+
<ul>
|
|
28
|
+
<li><a href="#basic_config">pgpool.conf</a></li>
|
|
29
|
+
<li><a href="#basic_start">Start pgpool</a></li>
|
|
30
|
+
</ul>
|
|
31
|
+
</li>
|
|
32
|
+
<li><a href="#try">Try watchdog</a>
|
|
33
|
+
<ul>
|
|
34
|
+
<li><a href="#try_vip">Connection to virtual IP</a></li>
|
|
35
|
+
<li><a href="#try_switch">Switching virtual IP</a></li>
|
|
36
|
+
</ul>
|
|
37
|
+
</li>
|
|
38
|
+
<li><a href="start#more">More</a>
|
|
39
|
+
<ul>
|
|
40
|
+
<li><a href="#more_lifecheck">Lifecheck</a></li>
|
|
41
|
+
<li><a href="#more_switch">Virtual IP</a></li>
|
|
42
|
+
</ul>
|
|
43
|
+
</li>
|
|
44
|
+
</ul>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div class="header_small" align="center">
|
|
48
|
+
[<a href="tutorial-watchdog-ja.html">Japanese page</a>]
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div id="manual">
|
|
53
|
+
|
|
54
|
+
<!-- ================================================================================ -->
|
|
55
|
+
|
|
56
|
+
<h1 id="thisis">About this document</h1>
|
|
57
|
+
|
|
58
|
+
<p>In this tutrial, I explain the simple way to try "Watchdog".</p>
|
|
59
|
+
<p>What you need is 2 Linux boxes in which pgpool-II is installed and
|
|
60
|
+
a PostgreSQL in the same machine or in the other one.
|
|
61
|
+
it is enough that 1 node for backend exists.
|
|
62
|
+
</p>
|
|
63
|
+
<p>You can use on memory query cache with pgpool in any mode: replication mode, master/slave mode and raw mode.</p>
|
|
64
|
+
|
|
65
|
+
<p>I use "osspc16" as an Active node and "osspc20" as a Standby node.
|
|
66
|
+
"Someserver" means one of them.</p>
|
|
67
|
+
|
|
68
|
+
<p><img src="watchdog.png" alt=""></p>
|
|
69
|
+
|
|
70
|
+
<p class="top_link"><a href="#Top">back to top</a></p>
|
|
71
|
+
|
|
72
|
+
<!-- ================================================================================ -->
|
|
73
|
+
|
|
74
|
+
<h1 id="basic">Basic configs</h1>
|
|
75
|
+
|
|
76
|
+
<h2 id="basic_config">pgpool.conf</h2>
|
|
77
|
+
|
|
78
|
+
<h3>In both of Active and Standby</h3>
|
|
79
|
+
<p>Set the parameters in both of active and standby nodes.</p>
|
|
80
|
+
|
|
81
|
+
<h4 id="basic_config_ebable">Enabling watchdog</h4>
|
|
82
|
+
<p>First of all, set the flag to enable watchdog "use_watchdog" on.</p>
|
|
83
|
+
<pre>use_watchdog = <b>on</b>
|
|
84
|
+
# Activates watchdog
|
|
85
|
+
</pre>
|
|
86
|
+
|
|
87
|
+
<h4 id="basic_config_upper">Up stream servers</h4>
|
|
88
|
+
<p>Specify up stream servers (e.g. application servers). To be blank is OK.</p>
|
|
89
|
+
<pre>trusted_servers = ''
|
|
90
|
+
# trusted server list which are used
|
|
91
|
+
# to confirm network connection
|
|
92
|
+
# (hostA,hostB,hostC,...)
|
|
93
|
+
</pre>
|
|
94
|
+
|
|
95
|
+
<h4 id="basic_config_watchdog">watchdog</h4>
|
|
96
|
+
<p>Specify the port of watchdog. </p>
|
|
97
|
+
<pre>wd_port = 9000
|
|
98
|
+
# port number for watchdog service
|
|
99
|
+
</pre>
|
|
100
|
+
|
|
101
|
+
<h4 id="basic_config_vip">Virtual IP</h4>
|
|
102
|
+
<p>Specify the IP address for virtual IP address in "delegate_IP" which must not not be used by someone else.</p>
|
|
103
|
+
<pre>delegate_IP = '<b>133.137.177.143</b>'
|
|
104
|
+
# delegate IP address
|
|
105
|
+
</pre>
|
|
106
|
+
|
|
107
|
+
<h3 id="basic_config_lifecheck">Monitoring</h3>
|
|
108
|
+
<p>Next, set parameters for each pgpool.</p>
|
|
109
|
+
<p>Specify "other_pgpool_hostname0", "other_pgpool_port0" and "other_wd_port0"
|
|
110
|
+
where pgpool and watchdog to monitor.</p>
|
|
111
|
+
<p>[*] Other_pgpool_hostname0 must be the value returned by hostname command.</p>
|
|
112
|
+
|
|
113
|
+
<h4>Active (osspc16)</h4>
|
|
114
|
+
<pre>other_pgpool_hostname0 = '<b>osspc20</b>'
|
|
115
|
+
# Host name or IP address to connect to for other pgpool 0
|
|
116
|
+
other_pgpool_port0 = 9999
|
|
117
|
+
# Port number for othet pgpool 0
|
|
118
|
+
other_wd_port0 = 9000
|
|
119
|
+
# Port number for othet watchdog 0
|
|
120
|
+
</pre>
|
|
121
|
+
|
|
122
|
+
<h4>Standby (osspc20)</h4>
|
|
123
|
+
<pre>other_pgpool_hostname0 = '<b>osspc16</b>'
|
|
124
|
+
# Host name or IP address to connect to for other pgpool 0
|
|
125
|
+
other_pgpool_port0 = 9999
|
|
126
|
+
# Port number for othet pgpool 0
|
|
127
|
+
other_wd_port0 = 9000
|
|
128
|
+
# Port number for othet watchdog 0
|
|
129
|
+
</pre>
|
|
130
|
+
|
|
131
|
+
<!-- -------------------------------------------------------------------------------- -->
|
|
132
|
+
|
|
133
|
+
<h2 id="basic_start">Starting pgpool</h2>
|
|
134
|
+
|
|
135
|
+
<p>Start pgpool in each servers as root
|
|
136
|
+
with "-n" (which means not-daemon mode) and redirect log messages into pgpool.log.
|
|
137
|
+
</p>
|
|
138
|
+
|
|
139
|
+
<h3>Starting pgpool in Active server (osspc16)</h3>
|
|
140
|
+
<p>Start pgpool in an Active server.</p>
|
|
141
|
+
<pre>[user@osspc16]$ su -
|
|
142
|
+
[root@osspc16]# {installed_dir}/bin/pgpool -n -f {installed_dir}/etc/pgpool.conf > pgpool.log 2>&1
|
|
143
|
+
</pre>
|
|
144
|
+
|
|
145
|
+
<p>Log messages show that pgpool has the virtual IP address and starts watchdog process.</p>
|
|
146
|
+
<pre>ERROR: wd_create_send_socket: connect() is failed(Connection refused)
|
|
147
|
+
LOG: wd_escalation: eslcalated to master pgpool
|
|
148
|
+
ERROR: wd_create_send_socket: connect() is failed(Connection refused)
|
|
149
|
+
LOG: wd_escalation: <b>escaleted to delegate_IP holder</b>
|
|
150
|
+
LOG: wd_init: <b>start watchdog</b>
|
|
151
|
+
LOG: pgpool-II successfully started. version 3.2beta1 (namameboshi)
|
|
152
|
+
</pre>
|
|
153
|
+
|
|
154
|
+
<h3>Starting pgpool in Standby server (osspc20)</h3>
|
|
155
|
+
<p>Start pgpool in Standby server.</p>
|
|
156
|
+
<pre>[user@osspc20]$ su -
|
|
157
|
+
[root@osspc20]# {installed_dir}/bin/pgpool -n -f {installed_dir}/etc/pgpool.conf > pgpool.log 2>&1
|
|
158
|
+
</pre>
|
|
159
|
+
|
|
160
|
+
<p>When the all watchdog listed in other_pgpool_hostname get started, lifecheck starts.
|
|
161
|
+
In this case osspc16 is the only other watchdog besides myself, lifecheck has started now.</p>
|
|
162
|
+
<pre>LOG: wd_init: start watchdog
|
|
163
|
+
LOG: pgpool-II successfully started. version 3.2beta1 (namameboshi)
|
|
164
|
+
LOG: watchdog: <b>lifecheck started</b>
|
|
165
|
+
</pre>
|
|
166
|
+
|
|
167
|
+
<p>And in an Active, lifecheck has started.</p>
|
|
168
|
+
<pre>LOG: watchdog: <b>lifecheck started</b>
|
|
169
|
+
</pre>
|
|
170
|
+
|
|
171
|
+
<p class="top_link"><a href="#Top">back to top</a></p>
|
|
172
|
+
|
|
173
|
+
<!-- ================================================================================ -->
|
|
174
|
+
|
|
175
|
+
<h1 id="try">Try</h1>
|
|
176
|
+
|
|
177
|
+
<h2 id="try_vip">Connecting to virtual IP</h2>
|
|
178
|
+
<p>Confirm to ping to the virtual IP address.</p>
|
|
179
|
+
<pre>[user@someserver]$ ping 133.137.177.142
|
|
180
|
+
PING 133.137.177.143 (133.137.177.143) 56(84) bytes of data.
|
|
181
|
+
64 bytes from 133.137.177.143: icmp_seq=1 ttl=64 time=0.328 ms
|
|
182
|
+
64 bytes from 133.137.177.143: icmp_seq=2 ttl=64 time=0.264 ms
|
|
183
|
+
64 bytes from 133.137.177.143: icmp_seq=3 ttl=64 time=0.412 ms
|
|
184
|
+
</pre>
|
|
185
|
+
|
|
186
|
+
<p>Confirm if the Active server which started at first has the virtual IP address.</p>
|
|
187
|
+
<pre>[root@osspc16]# ifconfig
|
|
188
|
+
eth0 ...
|
|
189
|
+
|
|
190
|
+
<b>eth0:0</b> inet addr:133.137.177.143 ...
|
|
191
|
+
|
|
192
|
+
lo ...
|
|
193
|
+
</pre>
|
|
194
|
+
|
|
195
|
+
<p>Confirm if the Standby server which started not at first doesn't have the virtual IP address.</p>
|
|
196
|
+
<pre>[root@osspc20]# ifconfig
|
|
197
|
+
eth0 ...
|
|
198
|
+
|
|
199
|
+
lo ...
|
|
200
|
+
</pre>
|
|
201
|
+
|
|
202
|
+
<p>Try to connect PostgreSQL by "psql -h delegate_IP -p port".</p>
|
|
203
|
+
<pre>[user@someserver]$ psql -h 133.137.177.142 -p 9999 -l
|
|
204
|
+
</pre>
|
|
205
|
+
|
|
206
|
+
<!-- -------------------------------------------------------------------------------- -->
|
|
207
|
+
|
|
208
|
+
<h2 id="try_switch">Switching virtual IP</h2>
|
|
209
|
+
|
|
210
|
+
<p>Confirm how the Standby server works when the Active server can't provide its service.</p>
|
|
211
|
+
|
|
212
|
+
<p>Stop pgpool in the Active server.</p>
|
|
213
|
+
<pre>[root@osspc16]# {installed_dir}/bin/pgpool stop
|
|
214
|
+
</pre>
|
|
215
|
+
|
|
216
|
+
<p>Then, the Standby server starts to use the virtual IP address. Log shows:</p>
|
|
217
|
+
<pre>LOG: wd_escalation: <b>eslcalated to master pgpool</b>
|
|
218
|
+
ERROR: wd_create_send_socket: connect() is failed(Connection refused)
|
|
219
|
+
LOG: wd_escalation: escaleted to delegate_IP holder
|
|
220
|
+
</pre>
|
|
221
|
+
|
|
222
|
+
<p>Confirm to ping to the virtual IP address.</p>
|
|
223
|
+
<pre>[user@someserver]$ ping 133.137.177.142
|
|
224
|
+
PING 133.137.177.143 (133.137.177.143) 56(84) bytes of data.
|
|
225
|
+
64 bytes from 133.137.177.143: icmp_seq=1 ttl=64 time=0.328 ms
|
|
226
|
+
64 bytes from 133.137.177.143: icmp_seq=2 ttl=64 time=0.264 ms
|
|
227
|
+
64 bytes from 133.137.177.143: icmp_seq=3 ttl=64 time=0.412 ms
|
|
228
|
+
</pre>
|
|
229
|
+
|
|
230
|
+
<p>Confirm that the Active server doesn't use the virtual IP address any more.</p>
|
|
231
|
+
<pre>[root@osspc16]# ifconfig
|
|
232
|
+
eth0 ...
|
|
233
|
+
|
|
234
|
+
lo ...
|
|
235
|
+
</pre>
|
|
236
|
+
|
|
237
|
+
<p>Confirm that the Standby server uses the virtual IP address.</p>
|
|
238
|
+
<pre>[root@osspc20]# ifconfig
|
|
239
|
+
eth0 ...
|
|
240
|
+
|
|
241
|
+
<b>eth0:0</b> inet addr:133.137.177.143 ...
|
|
242
|
+
|
|
243
|
+
lo ...
|
|
244
|
+
</pre>
|
|
245
|
+
|
|
246
|
+
<p>Try to connect PostgreSQL by "psql -h delegate_IP -p port".</p>
|
|
247
|
+
<pre>[user@someserver]$ psql -h 133.137.177.142 -p 9999 -l
|
|
248
|
+
</pre>
|
|
249
|
+
|
|
250
|
+
<p class="top_link"><a href="#Top">back to top</a></p>
|
|
251
|
+
|
|
252
|
+
<!-- ================================================================================ -->
|
|
253
|
+
|
|
254
|
+
<h1 id="more">More</h1>
|
|
255
|
+
|
|
256
|
+
<h2 id="more_lifecheck">Lifecheck</h2>
|
|
257
|
+
|
|
258
|
+
<p>There are the parameters about watchdog's monitoring.</p>
|
|
259
|
+
|
|
260
|
+
<p>Specify the interval to check "wd_interval", the count to retry "wd_life_point",
|
|
261
|
+
the qyery to check "wd_lifecheck_query".</p>
|
|
262
|
+
<pre>wd_interval = 10
|
|
263
|
+
# lifecheck interval (sec) > 0
|
|
264
|
+
wd_life_point = 3
|
|
265
|
+
# lifecheck retry times
|
|
266
|
+
wd_lifecheck_query = 'SELECT 1'
|
|
267
|
+
# lifecheck query to pgpool from watchdog
|
|
268
|
+
</pre>
|
|
269
|
+
|
|
270
|
+
<!-- -------------------------------------------------------------------------------- -->
|
|
271
|
+
|
|
272
|
+
<h2 id="more_switch">Switching virtual IP address</h2>
|
|
273
|
+
|
|
274
|
+
<p>There are the parameters for switching the virtual IP address.</p>
|
|
275
|
+
|
|
276
|
+
<p>Specify switching commands "if_up_cmd", "if_down_cmd", the path to them "ifconfig_path",
|
|
277
|
+
the command executed after switching to send ARP request"arping_cmd" and the path to it "arping_path".</p>
|
|
278
|
+
|
|
279
|
+
<pre>ifconfig_path = '/sbin'
|
|
280
|
+
# ifconfig command path
|
|
281
|
+
if_up_cmd = 'ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0'
|
|
282
|
+
# startup delegate IP command
|
|
283
|
+
if_down_cmd = 'ifconfig eth0:0 down'
|
|
284
|
+
# shutdown delegate IP command
|
|
285
|
+
|
|
286
|
+
arping_path = '/usr/sbin' # arping command path
|
|
287
|
+
|
|
288
|
+
arping_cmd = 'arping -U $_IP_$ -w 1'
|
|
289
|
+
</pre>
|
|
290
|
+
|
|
291
|
+
<p class="top_link"><a href="#Top">back to top</a></p>
|
|
292
|
+
|
|
293
|
+
</div>
|
|
294
|
+
|
|
295
|
+
<!-- ================================================================================ -->
|
|
296
|
+
|
|
297
|
+
<div class="copyright" style="clear: both">
|
|
298
|
+
<hr>
|
|
299
|
+
<copyright>
|
|
300
|
+
Copyright © 2003 – 2012 pgpool Global Development Group
|
|
301
|
+
</copyright>
|
|
302
|
+
</div>
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
</body></html>
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>pgpool-II watchdog チュートリアル</title>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
|
|
6
|
+
<link href="pgpool.css" rel="stylesheet" type="text/css" />
|
|
7
|
+
|
|
8
|
+
<style type="text/css">
|
|
9
|
+
img {
|
|
10
|
+
border: 1px solid black;
|
|
11
|
+
padding: 10px;
|
|
12
|
+
margin-top: 15px;
|
|
13
|
+
margin-bottom: 15px;
|
|
14
|
+
}
|
|
15
|
+
</style>
|
|
16
|
+
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
|
|
20
|
+
<body bgcolor="#ffffff">
|
|
21
|
+
<div id="top" class="header_text">pgpool-II watchdog チュートリアル</div>
|
|
22
|
+
|
|
23
|
+
<div id="menu">
|
|
24
|
+
<div id="navcontainer">
|
|
25
|
+
<ul id="navlist">
|
|
26
|
+
<li><a href="#thisis">チュートリアルの概要</a></li>
|
|
27
|
+
<li><a href="#basic">基本設定</a>
|
|
28
|
+
<ul>
|
|
29
|
+
<li><a href="#basic_config">pgpool.conf 設定</a></li>
|
|
30
|
+
<li><a href="#basic_start">pgpool-II の起動</a></li>
|
|
31
|
+
</ul>
|
|
32
|
+
</li>
|
|
33
|
+
<li><a href="#try">簡単な watchdog 動作確認</a>
|
|
34
|
+
<ul>
|
|
35
|
+
<li><a href="#try_vip">仮想 IP アドレスへの接続</a></li>
|
|
36
|
+
<li><a href="#try_switch">仮想 IP アドレスの切り替え</a></li>
|
|
37
|
+
</ul>
|
|
38
|
+
</li>
|
|
39
|
+
<li><a href="start#more">応用</a>
|
|
40
|
+
<ul>
|
|
41
|
+
<li><a href="#more_lifecheck">監視についての設定</a></li>
|
|
42
|
+
<li><a href="#more_switch">仮想 IP アドレス切り替えについての設定</a></li>
|
|
43
|
+
</ul>
|
|
44
|
+
</li>
|
|
45
|
+
</ul>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div class="header_small" align="center">
|
|
49
|
+
[<a href="tutorial-watchdog-en.html">English page</a>]
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div id="manual">
|
|
54
|
+
|
|
55
|
+
<!-- ================================================================================ -->
|
|
56
|
+
|
|
57
|
+
<h1 id="thisis">チュートリアルの概要</h1>
|
|
58
|
+
|
|
59
|
+
<p>このチュートリアルでは、watchdog 機能を試す方法を説明します。</p>
|
|
60
|
+
<p>Linux マシン 2 台にそれぞれ pgpool-II がインストールされているものとします。
|
|
61
|
+
また、いずれかのマシンか第 3 のマシンに、PostgreSQL がインストールされて稼働しているものとします
|
|
62
|
+
(backend ノードは 1 台でかまいません)。
|
|
63
|
+
なお、pgpool-II はどのモードで稼働していても、watchdog を利用することができます。</p>
|
|
64
|
+
<p>この文書では、Active を「osspc16」、Standby を「osspc20」とします。
|
|
65
|
+
また psql などを実行するサーバを便宜上「someserver」と表記していますが、Active、Standby のサーバで構いません。</p>
|
|
66
|
+
|
|
67
|
+
<p><img src="watchdog.png" alt="" /></p>
|
|
68
|
+
|
|
69
|
+
<p class="top_link"><a href="#Top">△ back to top</a></p>
|
|
70
|
+
|
|
71
|
+
<!-- ================================================================================ -->
|
|
72
|
+
|
|
73
|
+
<h1 id="basic">基本設定</h1>
|
|
74
|
+
|
|
75
|
+
<h2 id="basic_config">pgpool.conf 設定</h2>
|
|
76
|
+
|
|
77
|
+
<h3>Active / Standby 共通</h3>
|
|
78
|
+
<p>2 台の pgpool-II でそれぞれ設定します。</p>
|
|
79
|
+
|
|
80
|
+
<h4 id="basic_config_ebable">watchdog の有効化</h4>
|
|
81
|
+
<p>まず、watchdog 機能を有効にするフラグ「use_watchdog」を on にします。</p>
|
|
82
|
+
<pre>
|
|
83
|
+
use_watchdog = <b>on</b>
|
|
84
|
+
# Activates watchdog
|
|
85
|
+
</pre>
|
|
86
|
+
|
|
87
|
+
<h4 id="basic_config_upper">上位サーバ</h4>
|
|
88
|
+
<p>アプリケーションサーバなど上位のサーバを指定する「trusted_servers」を記述します。
|
|
89
|
+
<p>ここでは空欄にしておきます。</p>
|
|
90
|
+
<pre>
|
|
91
|
+
trusted_servers = ''
|
|
92
|
+
# trusted server list which are used
|
|
93
|
+
# to confirm network connection
|
|
94
|
+
# (hostA,hostB,hostC,...)
|
|
95
|
+
</pre>
|
|
96
|
+
|
|
97
|
+
<h4 id="basic_config_watchdog">watchdog</h4>
|
|
98
|
+
<p>watchdog を起動するポートを「wd_port」」を指定します。</p>
|
|
99
|
+
<p>ここではデフォルトのままにしておきます。</p>
|
|
100
|
+
<pre>
|
|
101
|
+
wd_port = 9000
|
|
102
|
+
# port number for watchdog service
|
|
103
|
+
</pre>
|
|
104
|
+
|
|
105
|
+
<h4 id="basic_config_vip">仮想 IP</h4>
|
|
106
|
+
<p>仮想 IP を「delegate_IP」に指定します。まだ使われてない IP アドレスを記述します。</p>
|
|
107
|
+
<pre>
|
|
108
|
+
delegate_IP = '<b>133.137.177.143</b>'
|
|
109
|
+
# delegate IP address
|
|
110
|
+
</pre>
|
|
111
|
+
|
|
112
|
+
<h3 id="basic_config_lifecheck">監視対象サーバ関連</h3>
|
|
113
|
+
<p>以下は、それぞれの pgpool-II で設定します。</p>
|
|
114
|
+
<p>監視対象とする pgpool-II が稼働する ホスト名「other_pgpool_hostname0」、
|
|
115
|
+
その pgpool-II のポート番号「other_pgpool_port0」、
|
|
116
|
+
その watchdog のポート番号「other_wd_port0」を、それぞれで記述します。
|
|
117
|
+
</p>
|
|
118
|
+
<p>なお、ホスト名は hostname コマンドの実行結果どおりのものを記述します。</p>
|
|
119
|
+
<h4>Active (osspc16)</h4>
|
|
120
|
+
<pre>
|
|
121
|
+
other_pgpool_hostname0 = '<b>osspc20</b>'
|
|
122
|
+
# Host name or IP address to connect to for other pgpool 0
|
|
123
|
+
other_pgpool_port0 = 9999
|
|
124
|
+
# Port number for othet pgpool 0
|
|
125
|
+
other_wd_port0 = 9000
|
|
126
|
+
# Port number for othet watchdog 0
|
|
127
|
+
</pre>
|
|
128
|
+
|
|
129
|
+
<h4>Standby (osspc20)</h4>
|
|
130
|
+
<pre>
|
|
131
|
+
other_pgpool_hostname0 = '<b>osspc16</b>'
|
|
132
|
+
# Host name or IP address to connect to for other pgpool 0
|
|
133
|
+
other_pgpool_port0 = 9999
|
|
134
|
+
# Port number for othet pgpool 0
|
|
135
|
+
other_wd_port0 = 9000
|
|
136
|
+
# Port number for othet watchdog 0
|
|
137
|
+
</pre>
|
|
138
|
+
|
|
139
|
+
<!-- -------------------------------------------------------------------------------- -->
|
|
140
|
+
|
|
141
|
+
<h2 id="basic_start">pgpool-II の起動</h2>
|
|
142
|
+
|
|
143
|
+
<p>両方のサーバで pgpool-II を root で起動します。
|
|
144
|
+
なお、ログで動作確認するため、-n オプションをつけて非デーモンモードで起動し、
|
|
145
|
+
出力されるログメッセージを pgpool.log ファイルにリダイレクトします。</p>
|
|
146
|
+
</p>
|
|
147
|
+
|
|
148
|
+
<h3>Active サーバの pgpool-II の起動 (osspc16)</h3>
|
|
149
|
+
<p>Active サーバで pgpool-II を起動します。</p>
|
|
150
|
+
<pre>
|
|
151
|
+
[user@osspc16]$ su -
|
|
152
|
+
[root@osspc16]# {installed_dir}/bin/pgpool -n -f {installed_dir}/etc/pgpool.conf > pgpool.log 2>&1
|
|
153
|
+
</pre>
|
|
154
|
+
|
|
155
|
+
<p>ログから、仮想 IP アドレスを使用し、また watchdog プロセス起動したことが確認できます。
|
|
156
|
+
(なおこのログでの ERROR は、まだ起動していない Standby サーバの watchdog に接続しようとして失敗した、
|
|
157
|
+
というものなので、無視して構いません。)</p>
|
|
158
|
+
<pre>
|
|
159
|
+
ERROR: wd_create_send_socket: connect() is failed(Connection refused)
|
|
160
|
+
LOG: wd_escalation: eslcalated to master pgpool
|
|
161
|
+
ERROR: wd_create_send_socket: connect() is failed(Connection refused)
|
|
162
|
+
LOG: wd_escalation: <b>escaleted to delegate_IP holder</b>
|
|
163
|
+
LOG: wd_init: <b>start watchdog</b>
|
|
164
|
+
LOG: pgpool-II successfully started. version 3.2beta1 (namameboshi)
|
|
165
|
+
</pre>
|
|
166
|
+
|
|
167
|
+
<h3>Standby サーバの pgpool-II の起動 (osspc20)</h3>
|
|
168
|
+
<p>Standby サーバで pgpool-II を起動します。</p>
|
|
169
|
+
<pre>
|
|
170
|
+
[user@osspc20]$ su -
|
|
171
|
+
[root@osspc20]# {installed_dir}/bin/pgpool -n -f {installed_dir}/etc/pgpool.conf > pgpool.log 2>&1
|
|
172
|
+
</pre>
|
|
173
|
+
|
|
174
|
+
<p>「other_pgpool_hostname*」等に指定したすべての watchdog が起動していると、
|
|
175
|
+
死活監視(lifecheck)が開始します。
|
|
176
|
+
ここでは osspc16 しか指定していないので、この時点で開始したことがログからわかります。</p>
|
|
177
|
+
<pre>
|
|
178
|
+
LOG: wd_init: start watchdog
|
|
179
|
+
LOG: pgpool-II successfully started. version 3.2beta1 (namameboshi)
|
|
180
|
+
LOG: watchdog: <b>lifecheck started</b>
|
|
181
|
+
</pre>
|
|
182
|
+
|
|
183
|
+
<p>すると、Active でも、死活監視を始めたというログメッセージが出力されます。</p>
|
|
184
|
+
<pre>
|
|
185
|
+
LOG: watchdog: <b>lifecheck started</b>
|
|
186
|
+
</pre>
|
|
187
|
+
|
|
188
|
+
<p class="top_link"><a href="#Top">△ back to top</a></p>
|
|
189
|
+
|
|
190
|
+
<!-- ================================================================================ -->
|
|
191
|
+
|
|
192
|
+
<h1 id="try">簡単な watchdog 動作確認</h1>
|
|
193
|
+
|
|
194
|
+
<h2 id="try_vip">仮想 IP アドレスへの接続</h2>
|
|
195
|
+
<p>「delegate_IP」に指定した仮想 IP アドレスに、ping が通ることを確認します。</p>
|
|
196
|
+
<pre>
|
|
197
|
+
[user@someserver]$ ping 133.137.177.142
|
|
198
|
+
PING 133.137.177.143 (133.137.177.143) 56(84) bytes of data.
|
|
199
|
+
64 bytes from 133.137.177.143: icmp_seq=1 ttl=64 time=0.328 ms
|
|
200
|
+
64 bytes from 133.137.177.143: icmp_seq=2 ttl=64 time=0.264 ms
|
|
201
|
+
64 bytes from 133.137.177.143: icmp_seq=3 ttl=64 time=0.412 ms
|
|
202
|
+
</pre>
|
|
203
|
+
|
|
204
|
+
<p>先に pgpool-II を立ち上げた Active サーバが、仮想 IP アドレスを使っていることを確認します。</p>
|
|
205
|
+
<pre>
|
|
206
|
+
[root@osspc16]# ifconfig
|
|
207
|
+
eth0 ...
|
|
208
|
+
|
|
209
|
+
<b>eth0:0</b> inet addr:133.137.177.143 ...
|
|
210
|
+
|
|
211
|
+
lo ...
|
|
212
|
+
</pre>
|
|
213
|
+
|
|
214
|
+
<p>あとから pgpool-II を立ち上げた Standby サーバで、仮想 IP アドレスを使っていないことを確認します。</p>
|
|
215
|
+
<pre>
|
|
216
|
+
[root@osspc20]# ifconfig
|
|
217
|
+
eth0 ...
|
|
218
|
+
|
|
219
|
+
lo ...
|
|
220
|
+
</pre>
|
|
221
|
+
|
|
222
|
+
<p>仮想 IP アドレスを使って、PostgreSQL に接続できることを確認します。
|
|
223
|
+
-h オプションには「delegate_IP」の IP アドレスを、-p オプションには「port」のポート番号を指定します。</p>
|
|
224
|
+
<pre>
|
|
225
|
+
[user@someserver]$ psql -h 133.137.177.142 -p 9999 -l
|
|
226
|
+
</pre>
|
|
227
|
+
|
|
228
|
+
<!-- -------------------------------------------------------------------------------- -->
|
|
229
|
+
|
|
230
|
+
<h2 id="try_switch">仮想 IP アドレスの切り替え</h2>
|
|
231
|
+
|
|
232
|
+
<p>Active サーバがサービス供給不可な状態になったときに、Standby がそれを引き継ぐのを確認します。</p>
|
|
233
|
+
|
|
234
|
+
<p>Active サーバで pgpool-II が停止してしまったのを想定し、意図的に停止します。</p>
|
|
235
|
+
<pre>
|
|
236
|
+
[root@osspc16]# {installed_dir}/bin/pgpool stop
|
|
237
|
+
</pre>
|
|
238
|
+
|
|
239
|
+
<p>すると Standby サーバで、仮想 IP アドレスを使用しはじめたというログメッセージが出力されます。</p>
|
|
240
|
+
<pre>
|
|
241
|
+
LOG: wd_escalation: <b>eslcalated to master pgpool</b>
|
|
242
|
+
ERROR: wd_create_send_socket: connect() is failed(Connection refused)
|
|
243
|
+
LOG: wd_escalation: escaleted to delegate_IP holder
|
|
244
|
+
</pre>
|
|
245
|
+
|
|
246
|
+
<p>また、Standby サーバでも死活監視が開始します。</p>
|
|
247
|
+
<pre>
|
|
248
|
+
LOG: watchdog: lifecheck started
|
|
249
|
+
</pre>
|
|
250
|
+
|
|
251
|
+
<p>「delegate_IP」に指定した仮想 IP アドレスに、ping が通ることを確認します。</p>
|
|
252
|
+
<pre>
|
|
253
|
+
[user@someserver]$ ping 133.137.177.142
|
|
254
|
+
PING 133.137.177.143 (133.137.177.143) 56(84) bytes of data.
|
|
255
|
+
64 bytes from 133.137.177.143: icmp_seq=1 ttl=64 time=0.328 ms
|
|
256
|
+
64 bytes from 133.137.177.143: icmp_seq=2 ttl=64 time=0.264 ms
|
|
257
|
+
64 bytes from 133.137.177.143: icmp_seq=3 ttl=64 time=0.412 ms
|
|
258
|
+
</pre>
|
|
259
|
+
|
|
260
|
+
<p>Active で仮想 IP アドレスが使われなくなったのを確認します。</p>
|
|
261
|
+
<pre>
|
|
262
|
+
[root@osspc16]# ifconfig
|
|
263
|
+
eth0 ...
|
|
264
|
+
|
|
265
|
+
lo ...
|
|
266
|
+
</pre>
|
|
267
|
+
|
|
268
|
+
<p>今度は Standby で仮想 IP アドレスが使われるようになったのを確認します。</p>
|
|
269
|
+
<pre>
|
|
270
|
+
[root@osspc20]# ifconfig
|
|
271
|
+
eth0 ...
|
|
272
|
+
|
|
273
|
+
<b>eth0:0</b> inet addr:133.137.177.143 ...
|
|
274
|
+
|
|
275
|
+
lo ...
|
|
276
|
+
</pre>
|
|
277
|
+
|
|
278
|
+
<p>仮想 IP アドレスを使って、PostgreSQL に接続できることを確認します。</p>
|
|
279
|
+
<pre>
|
|
280
|
+
[user@someserver]$ psql -h 133.137.177.142 -p 9999 -l
|
|
281
|
+
</pre>
|
|
282
|
+
|
|
283
|
+
<p class="top_link"><a href="#Top">△ back to top</a></p>
|
|
284
|
+
|
|
285
|
+
<!-- ================================================================================ -->
|
|
286
|
+
|
|
287
|
+
<h1 id="more">応用</h1>
|
|
288
|
+
|
|
289
|
+
<h2 id="more_lifecheck">監視についての設定</h2>
|
|
290
|
+
|
|
291
|
+
<p>watchdog の監視方法について設定するパラメータがあります。</p>
|
|
292
|
+
|
|
293
|
+
<p>監視間隔秒を指定する「wd_interval」、リトライ回数を指定する「wd_life_point」、
|
|
294
|
+
監視に使うクエリを指定する「wd_lifecheck_query」を記述します。</p>
|
|
295
|
+
<pre>
|
|
296
|
+
wd_interval = 10
|
|
297
|
+
# lifecheck interval (sec) > 0
|
|
298
|
+
wd_life_point = 3
|
|
299
|
+
# lifecheck retry times
|
|
300
|
+
wd_lifecheck_query = 'SELECT 1'
|
|
301
|
+
# lifecheck query to pgpool from watchdog
|
|
302
|
+
</pre>
|
|
303
|
+
|
|
304
|
+
<!-- -------------------------------------------------------------------------------- -->
|
|
305
|
+
|
|
306
|
+
<h2 id="more_switch">仮想 IP アドレス切り替えについての設定</h2>
|
|
307
|
+
|
|
308
|
+
<p>仮想 IP アドレスの切り替えコマンドについて設定するパラメータがあります。</p>
|
|
309
|
+
|
|
310
|
+
<p>仮想 IP を切り替える際に使うコマンドとして「if_up_cmd」「if_down_cmd」、
|
|
311
|
+
そのパスを指定する「ifconfig_path」を記述します。
|
|
312
|
+
また、仮想 IP 切り替え後の ARP リクエスト送信コマンドを指定する「arping_cmd」、
|
|
313
|
+
そのパスを指定する「arping_path」を記述します。</p>
|
|
314
|
+
<p>なお通常は、デフォルト値のまま変更する必要はありません。</p>
|
|
315
|
+
|
|
316
|
+
<pre>
|
|
317
|
+
ifconfig_path = '/sbin'
|
|
318
|
+
# ifconfig command path
|
|
319
|
+
if_up_cmd = 'ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0'
|
|
320
|
+
# startup delegate IP command
|
|
321
|
+
if_down_cmd = 'ifconfig eth0:0 down'
|
|
322
|
+
# shutdown delegate IP command
|
|
323
|
+
|
|
324
|
+
arping_path = '/usr/sbin' # arping command path
|
|
325
|
+
|
|
326
|
+
arping_cmd = 'arping -U $_IP_$ -w 1'
|
|
327
|
+
</pre>
|
|
328
|
+
|
|
329
|
+
<p class="top_link"><a href="#Top">△ back to top</a></p>
|
|
330
|
+
|
|
331
|
+
</div>
|
|
332
|
+
|
|
333
|
+
<!-- ================================================================================ -->
|
|
334
|
+
|
|
335
|
+
<div class="copyright" style="clear: both">
|
|
336
|
+
<hr>
|
|
337
|
+
<copyright>
|
|
338
|
+
Copyright © 2003 – 2012 pgpool Global Development Group
|
|
339
|
+
</copyright>
|
|
340
|
+
</div>
|
|
341
|
+
|
|
342
|
+
</body>
|
|
343
|
+
</html>
|