Postgresql

已定義表空間的 pg_basebackup

  • December 11, 2017

我有一個包含以下表空間的數據庫:

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來自表空間的 a 嗎?

您將在文件中找到一個名為的映射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/

引用自:https://dba.stackexchange.com/questions/173210