次のテーブルスペースを持つデータベースがあります。
pgwb=# \db
List of tablespaces
Name | Owner | Location
------------+-------+-------------------------------------
bspace | pgwb | /data1/tablespaces/TS_B_SPACE/tests
meta | pgwb | /data1/tablespaces/metadata/tests
mspace | pgwb | /data1/tablespaces/TS_M_SPACE/tests
nspace | pgwb | /data1/tablespaces/TS_N_SPACE/tests
pg_default | pgwb |
pg_global | pgwb |
uspace | pgwb | /data1/tablespaces/TS_U_SPACE/tests
(7 rows)
これらは、以下でシンボリックリンクとして参照されます。
pgwb@BLIXSQL0:/data1/pgwb/pg_tblspc> ls -l /data1/pgwb/pg_tblspc
total 0
lrwxrwxrwx 1 pgwb users 35 May 9 09:17 16536 -> /data1/tablespaces/TS_U_SPACE/tests
lrwxrwxrwx 1 pgwb users 35 May 9 09:17 16537 -> /data1/tablespaces/TS_B_SPACE/tests
lrwxrwxrwx 1 pgwb users 35 May 9 09:17 16538 -> /data1/tablespaces/TS_N_SPACE/tests
lrwxrwxrwx 1 pgwb users 35 May 9 09:17 16539 -> /data1/tablespaces/TS_M_SPACE/tests
lrwxrwxrwx 1 pgwb users 33 May 9 09:17 16540 -> /data1/tablespaces/metadata/tests
PITリカバリー用のデータベースをセットアップしました。
ベースバックアップを作成するには、pg_basbackupを次のように使用します。
pg_basebackup --xlog --format=t -D /data1/backup/`date +%Y%m%d`
バックアップフォルダには、次のファイルがあります。
pgwb@BLIXSQL0:/data1/backup/20170510> ls -l
total 62772
-rw-r--r-- 1 pgwb users 289792 May 10 13:51 16536.tar
-rw-r--r-- 1 pgwb users 2821120 May 10 13:51 16537.tar
-rw-r--r-- 1 pgwb users 2821120 May 10 13:51 16538.tar
-rw-r--r-- 1 pgwb users 371712 May 10 13:51 16539.tar
-rw-r--r-- 1 pgwb users 716800 May 10 13:51 16540.tar
-rw-r--r-- 1 pgwb users 57170432 May 10 13:51 base.tar
これでクラッシュが発生し、これらのtarファイルから復元する必要がありますが、シンボリックリンクの宛先がわかりません。
どうすればこれを解決できますか?テーブルスペースからpg_dump
が必要ですか?
tablespace_map
ファイルにbase.tar
という名前のマッピングファイルがあります。
ここにドキュメントがあります:
Tar形式モードを使用する場合、PostgreSQLサーバーを起動する前に各tarファイルを解凍するのはユーザーの責任です。追加のテーブルスペースがある場合は、それらのtarファイルを正しい場所に解凍する必要があります。この場合、それらのテーブルスペースのシンボリックリンクは、
tablespace_map
ファイルに含まれているbase.tar
ファイルの内容に従ってサーバーによって作成されます。
リンク: https://www.postgresql.org/docs/9.6/static/app-pgbasebackup.html
あなたは確かに今それを必要としませんが、多分他の人がそれを使うことができたでしょう。最近いくつかのクラッシュに直面したので、ここにpg_basebackup tarファイルからの復元の完全な説明があります- postgresql.freeideas.cz/pg_basebackup-pgbarman-restore-tar-backup/