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.
Files changed (393) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +20 -0
  4. data/LICENSE +202 -0
  5. data/NOTICE +22 -0
  6. data/README.md +217 -0
  7. data/Rakefile +13 -0
  8. data/VERSION +1 -0
  9. data/bin/prestogres +254 -0
  10. data/config/pcp.conf.sample +28 -0
  11. data/config/pgpool.conf +678 -0
  12. data/config/pool_hba.conf +84 -0
  13. data/config/pool_passwd +0 -0
  14. data/config/postgresql.conf +2 -0
  15. data/ext/.gitignore +6 -0
  16. data/ext/depend +26 -0
  17. data/ext/extconf.rb +4 -0
  18. data/ext/prestogres_config.c +12 -0
  19. data/pgpool2/.gitignore +36 -0
  20. data/pgpool2/AUTHORS +4 -0
  21. data/pgpool2/COPYING +12 -0
  22. data/pgpool2/ChangeLog +1 -0
  23. data/pgpool2/INSTALL +1 -0
  24. data/pgpool2/Makefile.am +159 -0
  25. data/pgpool2/Makefile.in +1187 -0
  26. data/pgpool2/NEWS +4960 -0
  27. data/pgpool2/README +1 -0
  28. data/pgpool2/README.euc_jp +1 -0
  29. data/pgpool2/README.online-recovery +62 -0
  30. data/pgpool2/TODO +103 -0
  31. data/pgpool2/ac_func_accept_argtypes.m4 +85 -0
  32. data/pgpool2/aclocal.m4 +1088 -0
  33. data/pgpool2/c-compiler.m4 +134 -0
  34. data/pgpool2/c-library.m4 +325 -0
  35. data/pgpool2/child.c +2097 -0
  36. data/pgpool2/config.guess +1532 -0
  37. data/pgpool2/config.h.in +332 -0
  38. data/pgpool2/config.sub +1640 -0
  39. data/pgpool2/configure +15752 -0
  40. data/pgpool2/configure.in +392 -0
  41. data/pgpool2/depcomp +522 -0
  42. data/pgpool2/doc/basebackup.sh +17 -0
  43. data/pgpool2/doc/pgpool-de.html +4220 -0
  44. data/pgpool2/doc/pgpool-en.html +5738 -0
  45. data/pgpool2/doc/pgpool-fr.html +4118 -0
  46. data/pgpool2/doc/pgpool-ja.css +198 -0
  47. data/pgpool2/doc/pgpool-ja.html +11279 -0
  48. data/pgpool2/doc/pgpool-zh_cn.html +4445 -0
  49. data/pgpool2/doc/pgpool.css +280 -0
  50. data/pgpool2/doc/pgpool_remote_start +13 -0
  51. data/pgpool2/doc/recovery.conf.sample +117 -0
  52. data/pgpool2/doc/tutorial-en.html +707 -0
  53. data/pgpool2/doc/tutorial-ja.html +422 -0
  54. data/pgpool2/doc/tutorial-memqcache-en.html +325 -0
  55. data/pgpool2/doc/tutorial-memqcache-ja.html +370 -0
  56. data/pgpool2/doc/tutorial-memqcache-zh_cn.html +322 -0
  57. data/pgpool2/doc/tutorial-watchdog-en.html +306 -0
  58. data/pgpool2/doc/tutorial-watchdog-ja.html +343 -0
  59. data/pgpool2/doc/tutorial-watchdog-zh_cn.html +301 -0
  60. data/pgpool2/doc/tutorial-zh_cn.html +537 -0
  61. data/pgpool2/doc/watchdog.png +0 -0
  62. data/pgpool2/doc/wd-en.html +236 -0
  63. data/pgpool2/doc/wd-en.jpg +0 -0
  64. data/pgpool2/doc/wd-ja.html +219 -0
  65. data/pgpool2/doc/wd-ja.jpg +0 -0
  66. data/pgpool2/doc/wd-zh_cn.html +201 -0
  67. data/pgpool2/doc/where_to_send_queries.odg +0 -0
  68. data/pgpool2/doc/where_to_send_queries.pdf +0 -0
  69. data/pgpool2/general.m4 +166 -0
  70. data/pgpool2/getopt_long.c +200 -0
  71. data/pgpool2/getopt_long.h +44 -0
  72. data/pgpool2/install-sh +251 -0
  73. data/pgpool2/ltmain.sh +8406 -0
  74. data/pgpool2/m4/libtool.m4 +7360 -0
  75. data/pgpool2/m4/ltoptions.m4 +368 -0
  76. data/pgpool2/m4/ltsugar.m4 +123 -0
  77. data/pgpool2/m4/ltversion.m4 +23 -0
  78. data/pgpool2/m4/lt~obsolete.m4 +92 -0
  79. data/pgpool2/main.c +2971 -0
  80. data/pgpool2/md5.c +444 -0
  81. data/pgpool2/md5.h +28 -0
  82. data/pgpool2/missing +360 -0
  83. data/pgpool2/mkinstalldirs +40 -0
  84. data/pgpool2/parser/Makefile.am +50 -0
  85. data/pgpool2/parser/Makefile.in +559 -0
  86. data/pgpool2/parser/copyfuncs.c +3310 -0
  87. data/pgpool2/parser/gram.c +39100 -0
  88. data/pgpool2/parser/gram.h +940 -0
  89. data/pgpool2/parser/gram.y +13408 -0
  90. data/pgpool2/parser/gramparse.h +74 -0
  91. data/pgpool2/parser/keywords.c +32 -0
  92. data/pgpool2/parser/keywords.h +39 -0
  93. data/pgpool2/parser/kwlist.h +425 -0
  94. data/pgpool2/parser/kwlookup.c +88 -0
  95. data/pgpool2/parser/list.c +1156 -0
  96. data/pgpool2/parser/makefuncs.c +518 -0
  97. data/pgpool2/parser/makefuncs.h +83 -0
  98. data/pgpool2/parser/memnodes.h +79 -0
  99. data/pgpool2/parser/nodes.c +29 -0
  100. data/pgpool2/parser/nodes.h +609 -0
  101. data/pgpool2/parser/outfuncs.c +5790 -0
  102. data/pgpool2/parser/parsenodes.h +2615 -0
  103. data/pgpool2/parser/parser.c +262 -0
  104. data/pgpool2/parser/parser.h +46 -0
  105. data/pgpool2/parser/pg_class.h +158 -0
  106. data/pgpool2/parser/pg_config_manual.h +273 -0
  107. data/pgpool2/parser/pg_list.h +352 -0
  108. data/pgpool2/parser/pg_trigger.h +147 -0
  109. data/pgpool2/parser/pg_wchar.h +492 -0
  110. data/pgpool2/parser/pool_memory.c +342 -0
  111. data/pgpool2/parser/pool_memory.h +77 -0
  112. data/pgpool2/parser/pool_parser.h +222 -0
  113. data/pgpool2/parser/pool_string.c +121 -0
  114. data/pgpool2/parser/pool_string.h +37 -0
  115. data/pgpool2/parser/primnodes.h +1280 -0
  116. data/pgpool2/parser/scan.c +4094 -0
  117. data/pgpool2/parser/scan.l +1451 -0
  118. data/pgpool2/parser/scanner.h +120 -0
  119. data/pgpool2/parser/scansup.c +221 -0
  120. data/pgpool2/parser/scansup.h +28 -0
  121. data/pgpool2/parser/snprintf.c +1102 -0
  122. data/pgpool2/parser/stringinfo.c +294 -0
  123. data/pgpool2/parser/stringinfo.h +178 -0
  124. data/pgpool2/parser/value.c +78 -0
  125. data/pgpool2/parser/value.h +62 -0
  126. data/pgpool2/parser/wchar.c +2048 -0
  127. data/pgpool2/pcp.conf.sample +28 -0
  128. data/pgpool2/pcp/Makefile.am +40 -0
  129. data/pgpool2/pcp/Makefile.in +771 -0
  130. data/pgpool2/pcp/libpcp_ext.h +250 -0
  131. data/pgpool2/pcp/md5.c +444 -0
  132. data/pgpool2/pcp/md5.h +28 -0
  133. data/pgpool2/pcp/pcp.c +1652 -0
  134. data/pgpool2/pcp/pcp.h +61 -0
  135. data/pgpool2/pcp/pcp_attach_node.c +172 -0
  136. data/pgpool2/pcp/pcp_detach_node.c +185 -0
  137. data/pgpool2/pcp/pcp_error.c +87 -0
  138. data/pgpool2/pcp/pcp_node_count.c +160 -0
  139. data/pgpool2/pcp/pcp_node_info.c +198 -0
  140. data/pgpool2/pcp/pcp_pool_status.c +166 -0
  141. data/pgpool2/pcp/pcp_proc_count.c +166 -0
  142. data/pgpool2/pcp/pcp_proc_info.c +261 -0
  143. data/pgpool2/pcp/pcp_promote_node.c +185 -0
  144. data/pgpool2/pcp/pcp_recovery_node.c +172 -0
  145. data/pgpool2/pcp/pcp_stop_pgpool.c +179 -0
  146. data/pgpool2/pcp/pcp_stream.c +385 -0
  147. data/pgpool2/pcp/pcp_stream.h +52 -0
  148. data/pgpool2/pcp/pcp_systemdb_info.c +194 -0
  149. data/pgpool2/pcp/pcp_watchdog_info.c +211 -0
  150. data/pgpool2/pcp_child.c +1493 -0
  151. data/pgpool2/pg_md5.c +305 -0
  152. data/pgpool2/pgpool.8.in +121 -0
  153. data/pgpool2/pgpool.conf +553 -0
  154. data/pgpool2/pgpool.conf.sample +666 -0
  155. data/pgpool2/pgpool.conf.sample-master-slave +665 -0
  156. data/pgpool2/pgpool.conf.sample-replication +664 -0
  157. data/pgpool2/pgpool.conf.sample-stream +664 -0
  158. data/pgpool2/pgpool.spec +264 -0
  159. data/pgpool2/pgpool_adm/TODO +7 -0
  160. data/pgpool2/pgpool_adm/pgpool_adm--1.0.sql +85 -0
  161. data/pgpool2/pgpool_adm/pgpool_adm.c +558 -0
  162. data/pgpool2/pgpool_adm/pgpool_adm.control +5 -0
  163. data/pgpool2/pgpool_adm/pgpool_adm.h +46 -0
  164. data/pgpool2/pgpool_adm/pgpool_adm.sql.in +85 -0
  165. data/pgpool2/pool.h +655 -0
  166. data/pgpool2/pool_auth.c +1390 -0
  167. data/pgpool2/pool_config.c +5007 -0
  168. data/pgpool2/pool_config.h +284 -0
  169. data/pgpool2/pool_config.l +3281 -0
  170. data/pgpool2/pool_config_md5.c +29 -0
  171. data/pgpool2/pool_connection_pool.c +812 -0
  172. data/pgpool2/pool_error.c +242 -0
  173. data/pgpool2/pool_globals.c +27 -0
  174. data/pgpool2/pool_hba.c +1723 -0
  175. data/pgpool2/pool_hba.conf.sample +67 -0
  176. data/pgpool2/pool_ip.c +567 -0
  177. data/pgpool2/pool_ip.h +65 -0
  178. data/pgpool2/pool_ipc.h +38 -0
  179. data/pgpool2/pool_lobj.c +242 -0
  180. data/pgpool2/pool_lobj.h +32 -0
  181. data/pgpool2/pool_memqcache.c +3818 -0
  182. data/pgpool2/pool_memqcache.h +268 -0
  183. data/pgpool2/pool_params.c +163 -0
  184. data/pgpool2/pool_passwd.c +249 -0
  185. data/pgpool2/pool_passwd.h +41 -0
  186. data/pgpool2/pool_path.c +193 -0
  187. data/pgpool2/pool_path.h +81 -0
  188. data/pgpool2/pool_process_context.c +247 -0
  189. data/pgpool2/pool_process_context.h +62 -0
  190. data/pgpool2/pool_process_query.c +5001 -0
  191. data/pgpool2/pool_process_reporting.c +1671 -0
  192. data/pgpool2/pool_process_reporting.h +44 -0
  193. data/pgpool2/pool_proto2.c +671 -0
  194. data/pgpool2/pool_proto_modules.c +3524 -0
  195. data/pgpool2/pool_proto_modules.h +185 -0
  196. data/pgpool2/pool_query_cache.c +1020 -0
  197. data/pgpool2/pool_query_context.c +1871 -0
  198. data/pgpool2/pool_query_context.h +105 -0
  199. data/pgpool2/pool_relcache.c +284 -0
  200. data/pgpool2/pool_relcache.h +78 -0
  201. data/pgpool2/pool_rewrite_outfuncs.c +9060 -0
  202. data/pgpool2/pool_rewrite_query.c +715 -0
  203. data/pgpool2/pool_rewrite_query.h +192 -0
  204. data/pgpool2/pool_select_walker.c +1150 -0
  205. data/pgpool2/pool_select_walker.h +68 -0
  206. data/pgpool2/pool_sema.c +161 -0
  207. data/pgpool2/pool_session_context.c +952 -0
  208. data/pgpool2/pool_session_context.h +203 -0
  209. data/pgpool2/pool_shmem.c +185 -0
  210. data/pgpool2/pool_signal.c +158 -0
  211. data/pgpool2/pool_signal.h +61 -0
  212. data/pgpool2/pool_ssl.c +339 -0
  213. data/pgpool2/pool_stream.c +962 -0
  214. data/pgpool2/pool_stream.h +61 -0
  215. data/pgpool2/pool_system.c +659 -0
  216. data/pgpool2/pool_timestamp.c +1215 -0
  217. data/pgpool2/pool_timestamp.h +38 -0
  218. data/pgpool2/pool_type.h +171 -0
  219. data/pgpool2/pool_worker_child.c +384 -0
  220. data/pgpool2/ps_status.c +404 -0
  221. data/pgpool2/recovery.c +435 -0
  222. data/pgpool2/redhat/pgpool.conf.sample.patch +52 -0
  223. data/pgpool2/redhat/pgpool.init +201 -0
  224. data/pgpool2/redhat/pgpool.sysconfig +7 -0
  225. data/pgpool2/redhat/rpm_installer/basebackup-replication.sh +53 -0
  226. data/pgpool2/redhat/rpm_installer/basebackup-stream.sh +55 -0
  227. data/pgpool2/redhat/rpm_installer/config_for_script +17 -0
  228. data/pgpool2/redhat/rpm_installer/failover.sh +64 -0
  229. data/pgpool2/redhat/rpm_installer/getsources.sh +141 -0
  230. data/pgpool2/redhat/rpm_installer/install.sh +1363 -0
  231. data/pgpool2/redhat/rpm_installer/pgpool_recovery_pitr +47 -0
  232. data/pgpool2/redhat/rpm_installer/pgpool_remote_start +15 -0
  233. data/pgpool2/redhat/rpm_installer/recovery.conf +4 -0
  234. data/pgpool2/redhat/rpm_installer/uninstall.sh +57 -0
  235. data/pgpool2/sample/dist_def_pgbench.sql +73 -0
  236. data/pgpool2/sample/pgpool.pam +3 -0
  237. data/pgpool2/sample/pgpool_recovery +20 -0
  238. data/pgpool2/sample/pgpool_recovery_pitr +19 -0
  239. data/pgpool2/sample/pgpool_remote_start +13 -0
  240. data/pgpool2/sample/replicate_def_pgbench.sql +18 -0
  241. data/pgpool2/sql/insert_lock.sql +15 -0
  242. data/pgpool2/sql/pgpool-recovery/pgpool-recovery.c +280 -0
  243. data/pgpool2/sql/pgpool-recovery/pgpool-recovery.sql.in +19 -0
  244. data/pgpool2/sql/pgpool-recovery/pgpool_recovery--1.0.sql +24 -0
  245. data/pgpool2/sql/pgpool-recovery/pgpool_recovery.control +5 -0
  246. data/pgpool2/sql/pgpool-recovery/uninstall_pgpool-recovery.sql +3 -0
  247. data/pgpool2/sql/pgpool-regclass/pgpool-regclass.c +206 -0
  248. data/pgpool2/sql/pgpool-regclass/pgpool-regclass.sql.in +4 -0
  249. data/pgpool2/sql/pgpool-regclass/pgpool_regclass--1.0.sql +7 -0
  250. data/pgpool2/sql/pgpool-regclass/pgpool_regclass.control +5 -0
  251. data/pgpool2/sql/pgpool-regclass/uninstall_pgpool-regclass.sql +1 -0
  252. data/pgpool2/sql/system_db.sql +38 -0
  253. data/pgpool2/strlcpy.c +85 -0
  254. data/pgpool2/test/C/test_extended.c +98 -0
  255. data/pgpool2/test/jdbc/.cvsignore +2 -0
  256. data/pgpool2/test/jdbc/AutoCommitTest.java +45 -0
  257. data/pgpool2/test/jdbc/BatchTest.java +55 -0
  258. data/pgpool2/test/jdbc/ColumnTest.java +60 -0
  259. data/pgpool2/test/jdbc/CreateTempTableTest.java +48 -0
  260. data/pgpool2/test/jdbc/InsertTest.java +34 -0
  261. data/pgpool2/test/jdbc/LockTest.java +36 -0
  262. data/pgpool2/test/jdbc/PgpoolTest.java +75 -0
  263. data/pgpool2/test/jdbc/README.euc_jp +73 -0
  264. data/pgpool2/test/jdbc/RunTest.java +83 -0
  265. data/pgpool2/test/jdbc/SelectTest.java +37 -0
  266. data/pgpool2/test/jdbc/UpdateTest.java +32 -0
  267. data/pgpool2/test/jdbc/expected/CreateTempTable +1 -0
  268. data/pgpool2/test/jdbc/expected/autocommit +10 -0
  269. data/pgpool2/test/jdbc/expected/batch +1 -0
  270. data/pgpool2/test/jdbc/expected/column +100 -0
  271. data/pgpool2/test/jdbc/expected/insert +1 -0
  272. data/pgpool2/test/jdbc/expected/lock +100 -0
  273. data/pgpool2/test/jdbc/expected/select +2 -0
  274. data/pgpool2/test/jdbc/expected/update +1 -0
  275. data/pgpool2/test/jdbc/pgpool.properties +7 -0
  276. data/pgpool2/test/jdbc/prepare.sql +54 -0
  277. data/pgpool2/test/jdbc/run.sh +6 -0
  278. data/pgpool2/test/parser/.cvsignore +6 -0
  279. data/pgpool2/test/parser/README +32 -0
  280. data/pgpool2/test/parser/expected/copy.out +17 -0
  281. data/pgpool2/test/parser/expected/create.out +64 -0
  282. data/pgpool2/test/parser/expected/cursor.out +37 -0
  283. data/pgpool2/test/parser/expected/delete.out +10 -0
  284. data/pgpool2/test/parser/expected/drop.out +12 -0
  285. data/pgpool2/test/parser/expected/insert.out +13 -0
  286. data/pgpool2/test/parser/expected/misc.out +28 -0
  287. data/pgpool2/test/parser/expected/prepare.out +4 -0
  288. data/pgpool2/test/parser/expected/privileges.out +31 -0
  289. data/pgpool2/test/parser/expected/scanner.out +30 -0
  290. data/pgpool2/test/parser/expected/select.out +89 -0
  291. data/pgpool2/test/parser/expected/transaction.out +38 -0
  292. data/pgpool2/test/parser/expected/update.out +11 -0
  293. data/pgpool2/test/parser/expected/v84.out +37 -0
  294. data/pgpool2/test/parser/expected/v90.out +25 -0
  295. data/pgpool2/test/parser/expected/var.out +22 -0
  296. data/pgpool2/test/parser/input/alter.sql +2 -0
  297. data/pgpool2/test/parser/input/copy.sql +17 -0
  298. data/pgpool2/test/parser/input/create.sql +64 -0
  299. data/pgpool2/test/parser/input/cursor.sql +37 -0
  300. data/pgpool2/test/parser/input/delete.sql +10 -0
  301. data/pgpool2/test/parser/input/drop.sql +12 -0
  302. data/pgpool2/test/parser/input/insert.sql +13 -0
  303. data/pgpool2/test/parser/input/misc.sql +28 -0
  304. data/pgpool2/test/parser/input/prepare.sql +4 -0
  305. data/pgpool2/test/parser/input/privileges.sql +31 -0
  306. data/pgpool2/test/parser/input/scanner.sql +34 -0
  307. data/pgpool2/test/parser/input/select.sql +89 -0
  308. data/pgpool2/test/parser/input/transaction.sql +38 -0
  309. data/pgpool2/test/parser/input/update.sql +11 -0
  310. data/pgpool2/test/parser/input/v84.sql +37 -0
  311. data/pgpool2/test/parser/input/v90.sql +38 -0
  312. data/pgpool2/test/parser/input/var.sql +22 -0
  313. data/pgpool2/test/parser/main.c +96 -0
  314. data/pgpool2/test/parser/parse_schedule +16 -0
  315. data/pgpool2/test/parser/pool.h +13 -0
  316. data/pgpool2/test/parser/run-test +62 -0
  317. data/pgpool2/test/pdo-test/README.euc_jp +58 -0
  318. data/pgpool2/test/pdo-test/SQLlist/test1.sql +3 -0
  319. data/pgpool2/test/pdo-test/SQLlist/test2.sql +3 -0
  320. data/pgpool2/test/pdo-test/collections.inc +11 -0
  321. data/pgpool2/test/pdo-test/def.inc +7 -0
  322. data/pgpool2/test/pdo-test/log.txt +0 -0
  323. data/pgpool2/test/pdo-test/mod/database.inc +36 -0
  324. data/pgpool2/test/pdo-test/mod/def.inc +0 -0
  325. data/pgpool2/test/pdo-test/mod/errorhandler.inc +27 -0
  326. data/pgpool2/test/pdo-test/pdotest.php +11 -0
  327. data/pgpool2/test/pdo-test/regsql.inc +56 -0
  328. data/pgpool2/test/pgpool_setup +898 -0
  329. data/pgpool2/test/regression/README +39 -0
  330. data/pgpool2/test/regression/clean.sh +21 -0
  331. data/pgpool2/test/regression/libs.sh +16 -0
  332. data/pgpool2/test/regression/regress.sh +166 -0
  333. data/pgpool2/test/regression/tests/001.load_balance/test.sh +128 -0
  334. data/pgpool2/test/regression/tests/002.native_replication/PgTester.java +47 -0
  335. data/pgpool2/test/regression/tests/002.native_replication/create.sql +6 -0
  336. data/pgpool2/test/regression/tests/002.native_replication/test.sh +71 -0
  337. data/pgpool2/test/regression/tests/003.failover/expected.r +6 -0
  338. data/pgpool2/test/regression/tests/003.failover/expected.s +6 -0
  339. data/pgpool2/test/regression/tests/003.failover/test.sh +45 -0
  340. data/pgpool2/test/regression/tests/004.watchdog/master.conf +12 -0
  341. data/pgpool2/test/regression/tests/004.watchdog/standby.conf +19 -0
  342. data/pgpool2/test/regression/tests/004.watchdog/test.sh +52 -0
  343. data/pgpool2/test/regression/tests/050.bug58/test.sh +50 -0
  344. data/pgpool2/test/regression/tests/051.bug60/bug.sql +12 -0
  345. data/pgpool2/test/regression/tests/051.bug60/database-clean.sql +6 -0
  346. data/pgpool2/test/regression/tests/051.bug60/database-setup.sql +28 -0
  347. data/pgpool2/test/regression/tests/051.bug60/test.sh +79 -0
  348. data/pgpool2/test/regression/tests/052.do_query/test.sh +44 -0
  349. data/pgpool2/test/regression/tests/053.insert_lock_hangs/test.sh +81 -0
  350. data/pgpool2/test/regression/tests/054.postgres_fdw/test.sh +67 -0
  351. data/pgpool2/test/regression/tests/055.backend_all_down/test.sh +52 -0
  352. data/pgpool2/test/regression/tests/056.bug63/jdbctest2.java +66 -0
  353. data/pgpool2/test/regression/tests/056.bug63/test.sh +47 -0
  354. data/pgpool2/test/regression/tests/057.bug61/test.sh +40 -0
  355. data/pgpool2/test/regression/tests/058.bug68/jdbctest3.java +45 -0
  356. data/pgpool2/test/regression/tests/058.bug68/test.sh +47 -0
  357. data/pgpool2/test/timestamp/expected/insert.out +16 -0
  358. data/pgpool2/test/timestamp/expected/misc.out +3 -0
  359. data/pgpool2/test/timestamp/expected/update.out +6 -0
  360. data/pgpool2/test/timestamp/input/insert.sql +16 -0
  361. data/pgpool2/test/timestamp/input/misc.sql +3 -0
  362. data/pgpool2/test/timestamp/input/update.sql +6 -0
  363. data/pgpool2/test/timestamp/main.c +129 -0
  364. data/pgpool2/test/timestamp/parse_schedule +3 -0
  365. data/pgpool2/test/timestamp/run-test +69 -0
  366. data/pgpool2/version.h +1 -0
  367. data/pgpool2/watchdog/Makefile.am +17 -0
  368. data/pgpool2/watchdog/Makefile.in +505 -0
  369. data/pgpool2/watchdog/test/stab.c +266 -0
  370. data/pgpool2/watchdog/test/test.c +85 -0
  371. data/pgpool2/watchdog/test/wd_child_t.c +87 -0
  372. data/pgpool2/watchdog/test/wd_lifecheck_t.c +87 -0
  373. data/pgpool2/watchdog/test/wd_packet_t.c +87 -0
  374. data/pgpool2/watchdog/test/wd_ping_t.c +20 -0
  375. data/pgpool2/watchdog/watchdog.c +408 -0
  376. data/pgpool2/watchdog/watchdog.h +209 -0
  377. data/pgpool2/watchdog/wd_child.c +444 -0
  378. data/pgpool2/watchdog/wd_ext.h +123 -0
  379. data/pgpool2/watchdog/wd_heartbeat.c +577 -0
  380. data/pgpool2/watchdog/wd_if.c +216 -0
  381. data/pgpool2/watchdog/wd_init.c +126 -0
  382. data/pgpool2/watchdog/wd_interlock.c +347 -0
  383. data/pgpool2/watchdog/wd_lifecheck.c +512 -0
  384. data/pgpool2/watchdog/wd_list.c +429 -0
  385. data/pgpool2/watchdog/wd_packet.c +1159 -0
  386. data/pgpool2/watchdog/wd_ping.c +330 -0
  387. data/pgpool2/ylwrap +223 -0
  388. data/pgsql/presto_client.py +346 -0
  389. data/pgsql/prestogres.py +156 -0
  390. data/pgsql/setup_functions.sql +21 -0
  391. data/pgsql/setup_language.sql +3 -0
  392. data/prestogres.gemspec +23 -0
  393. 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 &gt; pgpool.log 2&gt;&amp;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 &gt; pgpool.log 2&gt;&amp;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) &gt; 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 &gt; pgpool.log 2&gt;&amp;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 &gt; pgpool.log 2&gt;&amp;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) &gt; 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 &copy; 2003 &ndash; 2012 pgpool Global Development Group
339
+ </copyright>
340
+ </div>
341
+
342
+ </body>
343
+ </html>