- PR -

postgresqlについての無理な願い

投稿者投稿内容
電脳魔王の使い魔
会議室デビュー日: 2003/09/23
投稿数: 13
投稿日時: 2004-04-28 04:48
友人がネットショップの管理運営を任せていた会社が倒産しました。
残されたのはphpのファイルとdb_bakと言うディレクトリだけです。

私は友人からの頼みで色々中身を調べました。

db_bakのフォルダの中身はテーブル名が付いたファイルがたくさん
あったので恐らくpostgresqlのデータベースディレクトリのような
のですが、この中身をデータを見ることは可能でしょうか?

現在判っているのは

phpの拡張子がphp3であること
pg_conntact("","","","db_name")となっていること

以上の2点からかなり古い代物という事しかわかりません。
製作者とは音信不通なのでpostgresqlのバージョンも不明。

この段階から逆転の一発を放つことは出来るのでしょうか?
どなたか良い知恵をお持ちの方は力を貸して下さい。
電脳魔王の使い魔
会議室デビュー日: 2003/09/23
投稿数: 13
投稿日時: 2004-04-28 04:51
自己レスです。

上記発言のpg_conntact("","","","db_name")は
pg_connect("","","","db_name")の誤りです。

お恥ずかしい。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-04-29 13:23
root になって、 postgresql アカウントに su して、 psql -l と打った結果一覧に
db_name と同じ名前があれば、

$ psql db_name
Welcome to psql 7.3, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

localhost=# \d
List of relations
Schema | Name | Type | Owner
--------+---------------+----------+-------
public | table | table | cobra
public | table_seq_seq | sequence | cobra
(N rows)

localhost=# select * from table;
電脳魔王の使い魔
会議室デビュー日: 2003/09/23
投稿数: 13
投稿日時: 2004-04-29 16:57
回答ありがとうございます。
この場合に関する質問なのですが
データベースのあるlinuxサーバで
行わなければならない作業でしょうか?

こちらの状況といたしましては
ユーザーが運営会社のサーバに
FTPでログインしてファイル、
及びディレクトリをバックアップ
していたそうです。
つまりファイル等はWinに保存されて
います。
運営会社のサーバにrootでログイン
する事が出来ないのです。

手元にあるフォルダもデータベース名と
思われる名前のついたフォルダが
Win上で保存されているだけなので
このフォルダを生かしたいのです。

他のlinux環境で同じdb_nameの
データベースを用意してそこに
無理やりWin上にあるフォルダを
上書きしても、ご回答通りの
作業が出来るのでしょうか?

複雑な質問で申しわけありませんが
どうかお願いいたします。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-05-02 00:30

なんかとんでもないことになってますねぇ・・・

ちなみにWindowsでやるよりも、
Linuxでやる方が良いと思います。

理由としては文字コードが全く違うためってのもありますが、
そもそもファイル形式が違うから根本的に無理かも?

Windowsでやってもきっと文字化けを起こすと思います。
iakio
会議室デビュー日: 2002/11/28
投稿数: 13
投稿日時: 2004-05-02 10:12
ということはそれが本当にpostgresqlのデータディレクトリかどうかすら
わからないということですね。
実はpg_dumpで出力されたバックアップファイルだという可能性はないの
でしょうか?

少なくとも今のバージョンならデータディレクトリの下のPG_VERSIONという
ファイルをみればすぐにバージョンは確認できるのですが。

あと、今のpostgresqlではデータファイルにテーブル名はつきません。もし
それがデータファイルであれば、バージョン7.0以前ということになります。
http://osb.sra.co.jp/PostgreSQL/7.1/changes.html
電脳魔王の使い魔
会議室デビュー日: 2003/09/23
投稿数: 13
投稿日時: 2004-05-03 02:32
postgresqlであることは間違いありません。
理由は一緒にバックアップが取ってあったphp3ファイルの
中でpgの命令でsqlを発行していますので間違いないと思います。

薄々は思っていたのですがやはりテーブル名が
付いているのはかなり古いバージョンなんですね。
私のサーバーのpostgresqlのディレクトリの中に
テーブル名が付いたファイルが存在するディレクトリが
ないのでおかしいと思っていたのです。

そこで本題なんですが、このディレクトリの中の
データは7.0以前の環境がないと復元は不可能なのでしょうか?
また、手軽に7.0以前の環境は手に入らないのでしょうか?

[ メッセージ編集済み 編集者: 電脳魔王の使い魔 編集日時 2004-05-03 02:33 ]

[ メッセージ編集済み 編集者: 電脳魔王の使い魔 編集日時 2004-05-03 02:34 ]
iakio
会議室デビュー日: 2002/11/28
投稿数: 13
投稿日時: 2004-05-03 10:31
postgresqlだということは確認できていても、データファイルだという
ことは確認できてませんよね?

データディレクトリがまるごと保存されているのであれば、そのバージョン
のpostgresqlをいれれば復元できる可能性はあると思います。

引用:
また、手軽に7.0以前の環境は手に入らないのでしょうか?



「手軽」が何を意味するかわかりませんが、ソースならあちこちにあります。
http://www.ring.gr.jp/archives/misc/db/postgresql/source/
ftp://ftp.postgresql.org/pub/source/

スキルアップ/キャリアアップ(JOB@IT)