[pgpool-general-jp: 438] pgpool-I の起動時エラー

Kazutada Ito k_ito @ trunk-net.co.jp
2008年 4月 23日 (水) 11:09:15 JST


 いつもお世話になっております、伊藤と申します。

 pgpoolを使用してシステムを構築しているのですが、pgpooが起動しない現象が
発生し調査をしているのですが、原因がつかめず皆様のお知恵を拝借したくメールを
いたしました。
 pgpoolを起動しますと下記エラーを出力しpgpoolが起動しない場合が発生しております。

Apr 22 15:56:12 vclient_off pgpool: 2008-04-22 15:56:12 ERROR: pid 7775:
 bind() failed. reason: Address already in use

 下記環境にて環境を作成しFreeBSDのjailにて仮想環境を構築して
仮想環境起動時にpgpoolを起動させております。
 この仮想環境を2式用意し仮想環境の切替の試験を行っており、停止・起動を繰
り返すと上記エラーが不定期に発生しております。

 ・環境      FreeBSD 6.3-RELEASE
        postgres  8.1.10
          pgpool    3.2

 ・構成

    サーバ1(仮想環境A:pgpool) ------- サーバ2(postmaster1)
           (port:5431)   |
                                      +--- サーバ2(postmaster2)

    サーバ1(仮想環境B:pgpool) ------- サーバ3(postmaster3)
           (port:5432)   |
                                      +--- サーバ3(postmaster4)

 下記に使用しているpgpool.confを下記に記載いたします。
 (設定は2式ありますが、ホスト名とポート番号の違いだけなので1式のみを
記載いたしました。)
 よろしくお願いします。

----------------------------------------------------------------------
#
# pgpool configuration file sample
# $Header: /cvsroot/pgpool/pgpool/pgpool.conf.sample,v 1.7 2007/02/03 04:22:21 t-ishii Exp $

# Host name or IP address to listen on: '*' for all, '' for no TCP/IP
# connections
#listen_addresses = '*'
listen_addresses = 'sv1_b'

# Port number for pgpool
port = 5432

# Unix domain socket path.  (The Debian package defaults to
# /var/run/postgresql.)
socket_dir = '/tmp'

# Host name where PostgreSQL server is running on.  '' means localhost
# using Unix domain socket.
backend_host_name = 'sv3'

# port number PostgreSQL server is running on
backend_port = 5435

# Unix domain socket path for the backend.  (The Debian package defaults
# to /var/run/postgresql.)
backend_socket_dir = '/tmp'

# Host name where secondary PostgreSQL server is running on.  '' means
# localhost using Unix domain socket.
secondary_backend_host_name = 'sv3'

# Port number secondary PostgreSQL server is running on.  0 means no
# secondary PostgreSQL.
secondary_backend_port = 5436

# Number of pre-forked child processes
#num_init_children = 32
num_init_children = 30

# Number of connection pools allowed for a child process
max_pool = 30

# If idle for this many seconds, child exits.  0 means no timeout.
child_life_time = 300

# If idle for this many seconds, connection to PostgreSQL closes.
# 0 means no timeout.
connection_life_time = 300

# If child_max_connections connections were received, child exits.
# 0 means no exit.
child_max_connections = 0

# Logging directory
logdir = '/tmp'

# Replication mode
replication_mode = true

# Set this to true if you want to avoid deadlock situations when
# replication is enabled.  There will, however, be a noticable performance
# degration.  A workaround is to set this to false and insert a /*STRICT*/
# comment at the beginning of the SQL command.
replication_strict = true

# When replication_strict is set to false, there will be a chance for
# deadlocks.  Set this to nonzero (in milliseconds) to detect this
# situation and resolve the deadlock by aborting current session.
replication_timeout = 5000

# Load balancing mode, i.e., all SELECTs except in a transaction block
# are load balanced.  This is ignored if replication_mode is false.
load_balance_mode = false

# Load balance weight for master and secondary.  The actual weight is
# calculated by weight_master divided by weight_secondary.  For
# example both
#
# weight_master = 10 and weight_secondary = 5
# weight_master = 4 and weight_secondary = 2
#
# are regarded as the master having double the weight compared to the
# secondary.  Master and secondary have the same weight in the default.
weight_master = 0.5
weight_secondary = 0.5

# If there is a data mismatch between master and secondary, start
# degeneration to stop replication mode.
replication_stop_on_mismatch = true

# Semicolon separated list of queries to be issued at the end of a session
reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'

# If true print time stamp on each log line.
print_timestamp = true

# If true, operate in master/slave mode.
master_slave_mode = false

# If true, cache connection pool.
connection_cache = true

# Health check timeout.  0 means no timeout.
health_check_timeout = 20

# Health check period.  0 means no health check.
health_check_period = 0

# Health check user
health_check_user = 'nobody'

# If true, automatically lock table with INSERT statements to keep SERIAL
# data consistency.  An /*INSERT LOCK*/ comment has the same effect.  A
# /NO INSERT LOCK*/ comment disables the effect.
insert_lock = false

# If true, ignore leading white spaces of each query while pgpool judges
# whether the query is a SELECT so that it can be load balanced.  This
# is useful for certain APIs such as DBI/DBD which is known to adding an
# extra leading white space.
ignore_leading_white_space = false

# - What to Log -

# If true, print all statements to the log.  Like the log_statement option
# to PostgreSQL, this allows for observing queries without engaging in full
# debugging.
log_statement = false

# If true, incoming connections will be printed to the log.
log_connections = false

# If true, hostname will be shown in ps status. Also shown in
# connection log if log_connections = true.
# Be warned that this feature will add overhead to look up hostname.
log_hostname = false

# - HBA -

# If true, use pool_hba.conf for client authentication. In pgpool 3.2,
# the default value is false. This parameter is planned to be deleted
# in pgpool 3.3, and pool_hba.conf will always be used.
enable_pool_hba = false
-------------------------------------------------------------------------------



pgpool-general-jp メーリングリストの案内