gs_dump可以對單個database進行備份,支持備份不同的schema結構或數據。
下面進行示例演示:
首先使用omm用戶創建一個業務庫
create database mes;
然后連接mes庫,創建測試表mes1并插入數據
\c mes
create table mes1(id int,info1 text,info2 text);
insert into mes1 values(100,null,'aaa');
insert into mes1 values(200,'中國',null);
\q
此時數據表創建在公共的public模式下,表的owner為omm用戶。
mes=# \dt
List of relations
Schema | Name | Type | Owner | Storage
--------+------+-------+-------+----------------------------------
public | mes1 | table | omm | {orientation=row,compression=no}
(1 row)
一、使用文本格式進行備份恢復
我們創建一個新庫mes2
create database mes;
使用gs_dump進行如下調整:
- 使用普通用戶mes作為宿主
- 使用與普通用戶mes同名的schema作為邏輯容器,不使用public
先使用omm管理用戶導出,導入恢復到mes2數據庫
導入操作命令如下:
gs_dump --file=mes_way1.sql --schema=public --no-privileges --no-owner --username=omm mes
接著修改導出文件,將search_path = public修改為search_path = mes
在mes2數據庫下創建mes模式:
gsql -U mes mes2 -r
create schema mes authorization mes;
omm管理用戶進行恢復
gsql --file=mes_way1.sql --username=omm mes2
此時數據表都移到mes模式下,并且mes已經作為數據表的owner。
總結:文本格式方便我們對內容進行修改調整。
二、使用section子項進行備份處理
section子項的作用可以參考這篇文章:pg_dump子項section的三種開關
為了處理索引表空間問題,分別按section子項進行備份
1.數據備份前結構預處理
gs_dump --file=mes_way2_pre.sql --section=pre-data --schema=mes --no-subscriptions --username=mes mes2
2.數據備份
gs_dump --file=mes_way2_data.sql --section=data --schema=mes --no-subscriptions --username=mes mes2
3.數據備份后邏輯處理
gs_dump --file=mes_way2_post.sql --section=post-data --schema=mes --no-subscriptions --username=mes mes2
新建數據庫mes3進行處理
create database mes;
mes用戶恢復先恢復預處理結構和數據
gsql --file=mes_way2_pre.sql --username=mes mes3
gsql --file=mes_way2_data.sql --username=mes mes3
然后對mes_way2_post.sql索引結構進行手工處理,處理完畢再執行下面語句。
gsql --file=mes_way2_post.sql --username=mes mes3
總結:使用section選項方便我們對數據備份前后過程進行干預。
三、使用二進制進行備份
使用二進制備份效率比文本格式高,普通用戶可以對自己的數據庫對象進行備份及恢復,需要注意全局邏輯訂閱的影響。
備份命令如下:
gs_dump --file=mes_way3.dmp --format=c --schema=mes --no-subscriptions --username=mes mes2
恢復操作如下:
gs_restore --username=mes -d mes3 mes_way3.dmp
注意操作之前需要先刪除相關對象,下面直接級聯刪除模式。
gsql -U mes mes3 -r --password='mes@1234'
drop schema if exists mes cascade;
\q
總結:使用二進制選項備份效率最高,需要保證源與目標的結構一致性。
最后修改時間:2022-10-22 12:35:00
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




