忍者ブログ
Admin / Write / Res
ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カウンター
アクセスカウンター
最新コメント
[11/22 รูปพวงหรีดแสดงความเสียใจ]
[11/22 ดอกไม้ งานศพ]
[11/22 ช่อดอกไม้ตามสั่ง]
[11/22 ร้านดอกไม้บรรยากาศอบอุ่น]
[11/21 Robertret]
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
[560]  [559]  [558]  [557]  [556]  [555]  [554]  [553]  [552]  [551]  [550
備忘録?
postgresql のpg_dump(データベースのバックアップ)を実施しようと思ったらこんなエラーが発生しました。


$ pg_dump -t table_name database_name
pg_dump: server version: !; pg_dump version: 7.3.10-RH
pg_dump: aborting because of version mismatch (Use the -i option to proceed anyway.)
$

ちょいちょいよくわからないのでググッてみたところ、異なるバージョンのpostgresqlが複数インストールされているのが原因みたい。
バージョンの違いを無視するオプション(-i)をつけてみると…?

$ pg_dump -i -t table_name database_name
pg_dump: server version: !; pg_dump version: 7.3.10-RH
pg_dump: proceeding despite version mismatch
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: column "datpath" does not exist
pg_dump: The command was: select (select usename from pg_user where usesysid = datdba) as dba, encoding, datpath from pg_database where datname = 'database_name'

想定通りに動いてくれません(p>□<q*))
上位バージョンのpg_dumpで下位バージョンのダンプを実施するには問題なさそうだけど、さすがにその逆は厳しいみたい。
# 逆かどうかは詳細に調べてないけどね ^^;

なのでfindで検索してみよー

$ find /usr/ -type f -name 'pg_dump'
find: /usr/share/ssl/CA:
/usr/bin/pg_dump
/usr/local/src/postgresql-8.1.1/doc/TODO.detail/pg_dump
/usr/local/src/postgresql-8.1.3/doc/TODO.detail/pg_dump
/usr/local/src/postgresql-8.1.3/src/bin/pg_dump/pg_dump
/usr/local/pgsql/bin/pg_dump
find: /usr/local/pgsql/data:


おおー、出たわね(笑)
pathで通っている「pg_dump」は「version 7.3.10」だと叱られてしまいます。
下位互換ならありそうだということで、それ以上を探すのだからバージョン[8.x]系は怪しい。
けど、「doc」の中と「src」中ってことは…おそらく無い、というよりこの時点ではとりあえず除外。
そしてpathが通っているコマンドとは?

$ which pg_dump
/usr/bin/pg_dump

ふ~ん(笑)
念のため確認しましょ。

$  pg_dump --version
pg_dump (PostgreSQL) 7.3.10-RH
$ /usr/bin/pg_dump --version
pg_dump (PostgreSQL) 7.3.10-RH

と、いうことで一緒だと仮定しましょ。

それなら残る「pg_dump」は?
「/usr/local/pgsql/bin/pg_dump」
しかないと。
$ /usr/local/pgsql/bin/pg_dump --version
pg_dump (PostgreSQL) 8.1.3

うん、間違い無くこれっしょ ^^

実行してみると?
正常に動きましたー
やったねぇ

まぁ、コアなシステムではこんなこともあるから気を付けないとね
でわでわ


拍手

PR
この記事にコメントする
Name
Title
Color
Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (管理人にのみ表示)
Copyright ©  アナログを愛するデジタル生活館 All Rights Reserved.
* material by Pearl Box   * Template by tsukika

忍者ブログ [PR]