2017-12-11 13 views
0

PostgreSQLの "data \ base"ディレクトリにあるファイルを表示および読み込みする方法を教えてください。 "pg_ctl"を使用してこのディレクトリをデータベースにサーバーとしてインポートしようとしましたが、失敗しました。私はtarアーカイブを作成してpgadminを使って復元しようとしますが、tocの見出しのエラーが返されます。 "data/base"の各フォルダはデータベースOIDであり、各ファイルはテーブルと相対データです。 これらのファイルは次のようなバイナリファイルやdatファイルです:(16384/1174)PostgreSQLのデータディレクトリファイルを読み取る

€ëÌ0ð(b1Ÿ PŸ @Ÿ 0Ÿ Ÿ Ÿ Ÿ ðž àž Ðž Àž °ž  ž ž €ž pžžPž0 0žÐа0 p P @ 0 ðœ àœ Ðœ Àœ °œ  œ œ €œ pœœPœ@œ0œœœ>à>Ð>Â>°>>> >>>>> 0>>>>

閲覧方法はありますか? テーブルとデータを取得したい。 私は多くを検索し、真の解決策を見いだせませんでした。 助けてください。どうもありがとう。

+1

SQLクライアントを使用してSQLクエリを実行することによって、これらのディレクトリからデータを読み取る –

+0

このクエリはどのように実行できますか? このディレクトリはデータベースとして私のサーバにはなく、私は別に "data \ base"で切り捨てます。 –

+0

それがあなたのサーバのデータディレクトリの一部でない場合、それを読む方法はありません。 –

答えて

0

pg_ctlpgAdminも、どのSQLクライアントもデータベースファイル自体では動作しません。ファイルを読みたい場合は、ページ構造(下のリンク)とその知識の使い方を調べる必要があります。だから回答する見る方法はありますか?はい、基本的に質問の内容を引用しています。しかし、それを使用して表や索引データを原価計算することはできません。あなたがポストグルを裏づけしない限り。または、あなたの16384/1174ファイルが既存の関係であると思うようにそれをハックしようとしてください - どちらも私が信じている範囲外です。あなたは

https://www.postgresql.org/docs/current/static/storage-page-layout.html

すべてのテーブルとインデックスを読み取ろうという構造上のいくつかの基準以下

は、固定サイズ

、さらにのページの配列として格納されています:

各ページの最初の24バイトは、ページヘッダー (PageHeaderData)。その形式は表66.3に詳述されています。最初の フィールドは、このページに関連する最新のWALエントリを追跡します。 第2フィールドには、データチェックサムが有効な場合にページチェックサムが含まれます。 次はフラグビットを含む2バイトのフィールドです。これには、2バイト整数フィールド(pd_lower、pd_upper、およびpd_special)が3つ続きます( )。これらの は、ページ開始から割り当てられていない 領域の開始、未割り当て領域の最後、および 特殊領域の開始までのバイトオフセットを含みます。ページヘッダーの次の2バイト( pd_pagesize_version)には、ページサイズとバージョンインジケータの両方が格納されます。 PostgreSQL 8.3以降、バージョン番号は4です。 PostgreSQL 8.1 と8.2はバージョン番号3を使用しました。 PostgreSQL 8.0はバージョン番号2を使用しました。 PostgreSQL 7.3および7.4でバージョン番号1を使用しました。以前のリリースでは、 のバージョン番号0が使用されていました(これらのバージョンのほとんどでは、基本ページレイアウトとヘッダー形式は で変更されていませんが、ヒープ行ヘッダーのレイアウトは です)。ページサイズは基本的に相互チェックとしてのみ存在します。 は、インストール時に複数のページサイズを持つことをサポートしていません。 最後のフィールドは、ページのプルーニングが であるかどうかを示すヒントです。ページ上の最も古いプルーンされていないXMAXを追跡します。

関連する問題