我有一个具有以下表空间的数据库:
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我已经建立了恢复坑的数据库。
要进行基本备份,我使用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吗?
发布于 2017-05-10 13:45:21
您将在您的tablespace_map文件中找到名为base.tar的映射文件。
以下是文档:
当使用tar格式模式时,用户有责任在启动PostgreSQL服务器之前解压每个tar文件。如果有额外的表空间,则需要在正确的位置解压它们的tar文件。在这种情况下,这些表空间的符号链接将由服务器根据
tablespace_map文件中包含的base.tar文件的内容创建。
链接:https://www.postgresql.org/docs/9.6/static/app-pgbasebackup.html
发布于 2017-12-11 13:43:29
我知道你现在当然不需要它,但也许其他人可以用它。由于我们最近遇到了一些崩溃,这里是关于从pg_basebackup tar文件- postgresql.freeideas.cz/pg_基础备份-pgbarman-还原-tar-备份/恢复的完整描述。
https://dba.stackexchange.com/questions/173210
复制相似问题