Postgresql

僅備份一個架構並將其還原到另一台伺服器上

  • June 2, 2021

我有一個名為“A”的數據庫,它有兩個模式“B”和“C”。

我想在不同的伺服器上備份和恢復模式“B”(包括數據)。不知道如何做到這一點,因為我是 Postgres 的新手。

我是否必須在名稱為“A”的新伺服器上創建一個新數據庫,然後在其上恢復架構“B”?

請幫助使用必要的命令。

在 Ubuntu 12.04 上執行的 PostgreSQL 9.1

您可以使用-npg_dump 選項選擇要轉儲的模式。創建模式 B 的轉儲:

pg_dump ...other...options... -Fc -n B >dump.dmp

恢復轉儲文件:

pg_restore -d somedb dump.dmp

目標數據庫不必與原​​始數據庫同名。

請注意,如果模式 B 依賴於模式 C,您將遇到問題。那麼您將無法單獨恢復它。

另請注意,在轉儲一個模式時,您不會轉儲 blob(LOB 類型)。使用-b選項與 blob 一起轉儲。添加所有 blob ,-b而不僅僅是單個模式。

可以添加參數-n [schema name] 這個參數的註釋說:

-n schema
--schema=schema

僅轉儲與模式匹配的模式;這將選擇模式本身及其所有包含的對象。如果未指定此選項,則將轉儲目標數據庫中的所有非系統模式。

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