2012-04-09 9 views
0

私の疑問にお答えすることができますが、フィールドの型はです。私のデータベースに保存されています。ファイルを保存した名前を何とか取得できますか? 。 * lo_export *や別の方法でうまくいくかどうかは分かりません。フィールド名oidからファイルを回復する

ご協力いただきありがとうございます。

答えて

2

PostgreSQLは、データベースに格納されているラージオブジェクトごとに個別のファイルを作成しません。 btreeインデックスを持つかなり普通のヒープテーブルが使用されます。そのため、大きなオブジェクトはデータベースのスペース管理を容易にするために小さな部分に分割され、そのテーブルで使用される1GBのセグメントファイル内に混在しています。

pg_classテーブルをすばやく調べると、「lo」ラージオブジェクト機能が格納されているオブジェクトがすべて格納されていると思われるpg_largeobjectのエントリが表示されます。私のシステムでは、11869というrelfilenodeがあります。これは、データを格納する最初のファイルが11869で、後続のファイルが11869.1,11869.2などであることを意味します。relfilenodeを再割り当てする方法がないかどうかはわかりません大規模なオブジェクトですが、確かにあなたのpg_classエントリをチェックするべきでしょう。

一般に、データベースに格納されている大きなオブジェクトには、提供されている「lo」機能以外ではアクセスしないでください。別々のファイルとそのファイルに直接アクセスする機能が必要な場合は、それらを直接ディスクに保存し、ファイル名またはURIを格納する必要があります。 PostgreSQL関数の内部からディスクに保存することも、外部からディスクに保存することもできます。

+0

返信をいただきありがとうございます、私はあなたに、私がした結果に応じてお試しください。 –

関連する問題