[pgpool-general-jp: 916] Re: Q) pg_dump が出来ないのですが、、、
Tatsuo Ishii
ishii @ sraoss.co.jp
2011年 4月 9日 (土) 01:29:18 JST
石井です。
pgpool-II経由でpg_dumpすることはおすすめしておりません。
というのも、以下のログにあるように、pg_dumpの中でoidに依存したクエリが
発行されるからです。
直接PostgreSQLに接続してpg_dumpしてください。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
> 山田@町田市と申します。
> psql (8.4.4)と pgpool-II (3.0.3)の組み合わせで使用しているのですが、以下のようなエラーが出てバックアップが取れません。 修復方法、或いはバックアップの方法はありますでしょうか? 誤ってpgpool-IIをヴァージョンアップしてしまったのかもしれませんが、、、。
> 宜しくお願いします。
>
> # pg_dump -h x.x.x.x -p 9999 databaseXX >/tmp/database.db
> pg_dump: SQLコマンドが失敗しました
> pg_dump: サーバのエラーメッセージ: ERROR: kind mismatch among backends. Possible last query was: "SELECT a.attnum, a.attname, a.atttypmod, a.attstattarget, a.attstorage, t.typstorage, a.attnotnull, a.atthasdef, a.attisdropped, a.attlen, a.attalign, a.attislocal, pg_catalog.format_type(t.oid,a.at
> メッセージの内容がメッセージ種類"E"の長さに合いません
> サーバとの接続が想定外にクローズされました
> おそらく要求の処理前または処理中にサーバが異常終了
> したことを意味しています。
> pg_dump: 次のコマンドでした: SELECT a.attnum, a.attname, a.atttypmod, a.attstattarget, a.attstorage, t.typstorage, a.attnotnull, a.atthasdef, a.attisdropped, a.attlen, a.attalign, a.attislocal, pg_catalog.format_type(t.oid,a.atttypmod) AS atttypname, '' AS attoptions FROM pg_catalog.pg_attribute a LEFT JOIN pg_catalog.pg_type t ON a.atttypid = t.oid WHERE a.attrelid = '16391'::pg_catalog.oid AND a.attnum > 0::pg_catalog.int2 ORDER BY a.attrelid, a.attnum
>
> pgpool.conf
> #
> # pgpool-II configuration file sample
> # $Header: /cvsroot/pgpool/pgpool-II/pgpool.conf.sample,v 1.15 2007/10/31 10:45:52 y-asaba Exp $
>
> # Host name or IP address to listen on: '*' for all, '' for no TCP/IP
> # connections
> listen_addresses = '*'
>
> # Port number for pgpool
> port = 9999
>
> # Port number for pgpool communication manager
> pcp_port = 9898
>
> # Unix domain socket path. (The Debian package defaults to
> # /var/run/postgresql.)
> socket_dir = '/tmp'
>
> # Unix domain socket path for pgpool communication manager.
> # (Debian package defaults to /var/run/postgresql)
> pcp_socket_dir = '/tmp'
>
> # Unix domain socket path for the backend. Debian package defaults to /var/run/postgresql!
> backend_socket_dir = '/tmp'
>
> # pgpool communication manager timeout. 0 means no timeout, but strongly not recommended!
> pcp_timeout = 10
>
> # number of pre-forked child process
> num_init_children = 32
>
> # Number of connection pools allowed for a child process
> max_pool = 4
>
> # 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 = 0
>
> # If child_max_connections connections were received, child exits.
> # 0 means no exit.
> child_max_connections = 0
>
> # If client_idle_limit is n (n > 0), the client is forced to be
> # disconnected whenever after n seconds idle (even inside an explicit
> # transactions!)
> # 0 means no disconnect.
> client_idle_limit = 0
>
> # Maximum time in seconds to complete client authentication.
> # 0 means no timeout.
> authentication_timeout = 60
>
> # Logging directory
> logdir = '/var/log'
>
> # Replication mode
> replication_mode = true
>
> # 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 = true #false
>
> # if there's a data mismatch between master and secondary
> # start degeneration to stop replication mode
> replication_stop_on_mismatch = false
>
> # If true, replicate SELECT statement when load balancing is disabled.
> # If false, it is only sent to the master node.
> replicate_select = 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 timestamp 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'
>
> # Execute command by failover.
> # special values: %d = node id
> # %h = host name
> # %p = port number
> # %D = database cluster path
> # %% = '%' character
> #
> failover_command = ''
>
> # Execute command by failback.
> # special values: %d = node id
> # %h = host name
> # %p = port number
> # %D = database cluster path
> # %% = '%' character
> #
> failback_command = ''
>
> # 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 = true
>
> # 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 = true
>
> # If true, incoming connections will be printed to the log.
> log_connections = true
>
> # 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 = true
>
> # if non 0, run in parallel query mode
> parallel_mode = false
>
> # if non 0, use query cache
> enable_query_cache = false
>
> #set pgpool2 hostname
> pgpool2_hostname = ''
>
> # system DB info
> system_db_hostname = 'localhost'
> system_db_port = 5432
> system_db_dbname = 'pgpool'
> system_db_schema = 'pgpool_catalog'
> system_db_user = 'pgpool'
> system_db_password = ''
>
> # backend_hostname, backend_port, backend_weight
> # here are examples
> backend_hostname0 = 'localhost'
> backend_port0 = 5432
> backend_weight0 = 1
> backend_data_directory0 = '/home/databases/pgsql1/data'
>
> backend_hostname1 = 'localhost'
> backend_port1 = 5433
> backend_weight1 = 1
> backend_data_directory1 = '/home/databases/pgsql2/data'
>
> backend_hostname2 = 'localhost'
> backend_port2 = 5434
> backend_weight2 = 1
> backend_data_directory3 = '/home/databases/pgsql3/data'
>
> # - HBA -
>
> # If true, use pool_hba.conf for client authentication. In pgpool-II
> # 1.1, the default value is false. The default value will be true in
> # 1.2.
> enable_pool_hba = false
>
> # - online recovery -
> # online recovery user
> recovery_user = 'nobody'
>
> # online recovery password
> recovery_password = ''
>
> # execute a command in first stage.
> recovery_1st_stage_command = ''
>
> # execute a command in second stage.
> recovery_2nd_stage_command = ''
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
pgpool-general-jp メーリングリストの案内