簡體   English   中英

Postgresql - 使用表空間恢復 SQL 轉儲

[英]Postgresql - restore SQL dump with tablespaces

我打算將一些表移動到我的 PROD Linux 盒子上的不同表空間(文件夾) 使用pg_dumpall完成隔夜數據庫備份

我也有在 Windows OS 下工作的 DEV 環境我通常恢復 sql 轉儲(在 Linux 上制作)。 我現在擔心如何恢復這樣的 sql 轉儲,具有指向 Linux 分區的指針,采用 Linux 表示法。

我在各種網頁上讀到,必須創建相同的文件夾結構才能恢復非標准表空間。 但是 Windows 和 Linux 中的文件夾路徑看起來完全不同(c:\... vs /opt/...)

是否有任何命令行開關允許在還原期間將表空間重新映射到其他(類似 Windows 的位置)? 如果不是,你們如何管理這種情況?

我想我應該能夠通過編輯這個 SQL 轉儲文件來歸檔它 - 但它很大,幾百個演出文件,自動化也有點問題

您可以使用單獨的pg_dumpall命令檢索實際的表空間定義。 您仍然需要進行一些編輯,但 output 並沒有那么大。 (用戶類似)


pg_dumpall --tablespaces-only mydatabasename >stuff.out

在導入期間沒有重新映射表空間名稱的選項,因此您需要在 Windows 安裝中使用相同的名稱創建它們 - 實際位置物理位置(“文件夾結構”)無關緊要,因為 SQL 轉儲僅按名稱引用它們。

如果腳本包含create tablespace命令,則需要更改命令以使用系統上存在的目錄/路徑名,然后才能運行 SQL 腳本。 但是您只需要更改它,所有其他地方將引用表空間名稱,而不是文件夾路徑。

通常 pg_dump 比 pg_dumpall 更容易移動數據庫(例如因為表空間)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM