PostgreSQL 數據庫備份與恢復

1 邏輯備份(單庫)

postgres=#pg_dump --help
?
使用方法:
? pg_dump [選項]... [數據庫名字]

一般選項: ? ? ? ? ? ? ? ?
? -f, --file=FILENAME ? ? ? ? ? ?輸出文件或目錄名
? -F, --format=c|d|t|p ? ? ? ? ? 輸出文件格式 (c 自定義壓縮格式輸出, d 目錄, tar,p 備份為文本明文(默認值),大庫不推薦)
? -j, --jobs=NUM ? ? ? ? ? ? ? ? 執行多個并行任務進行備份轉儲工作
? -v, --verbose ? ? ? ? ? ? ? ? ?詳細模式
? -V, --version ? ? ? ? ? ? ? ? ?輸出版本信息, 然后退出
? -Z, --compress=0-9 ? 被壓縮格式的壓縮級別 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? --lock-wait-timeout=TIMEOUT ? ?在等待表鎖超時后操作失敗
? --no-sync ? ? ? ? ? ? ? ? ? ? ?不用等待變化安全寫入磁盤 ? ??
? -?, --help ? ? ? ? ? ? ? ? ? ? 顯示此幫助, 然后退出

-F c 備份為二進制格式, ? ? ? ? ?壓縮存儲. 并且可被 ? ? ? ? ?pg_restore 用于精細還原
-F p 備份為文本, 大庫不推薦

控制輸出內容選項:
? -a, --data-only ? ? ? ? ? ? ? ?只轉儲數據,不包括模式
? -b, --blobs ? ? ? ? ? ? ? ? ? ?在轉儲中包括大對象
? -B, --no-blobs ? ? ? ? ? ? ? ? 排除轉儲中的大型對象
? -c, --clean ? ? ? ? ? ? ? ? ? ?在重新創建之前,先清除(刪除)數據庫對象
? -C, --create ? ? ? ? ? ? ? ? ? 在轉儲中包括命令,以便創建數據庫
? -e, --extension=PATTERN ? ? ? ?僅轉儲指定的擴展名
? -E, --encoding=ENCODING ? ? ? ?轉儲以 ? ?ENCODING 形式編碼的數據
? -n, --schema=PATTERN ? ? ? ? ? 只轉儲指定的模式
? -N, --exclude-schema=PATTERN 不轉儲指定的模式
? -O, --no-owner ? ? ? ? ? ? ? ? 在明文格式中, 忽略恢復對象所屬者
? -s, --schema-only ? ? ? ? ? ? ?只轉儲模式, 不包括數據
? -S, --superuser=NAME ? ? ? ? ? 在明文格式中使用指定的超級用戶名
? -t, --table=PATTERN ? ? ? ? ? ?只轉儲指定的表
? -T, --exclude-table=PATTERN ? ?不轉儲指定的表
? -x, --no-privileges ? ? ? ? ? ?不要轉儲權限(grant/revoke)
? --binary-upgrade ? ? ? ? ? ? ? 只能由升級工具使用
? --column-inserts ? ? ? ? ? ? ? 以帶有列名的 ? ? ? ?INSERT 命令形式轉儲數據
? --disable-dollar-quoting ? ? ? 取消美元 ? ? ?(符號) 引號, 使用SQL ?標準引號
? --disable-triggers ? ? ? ? ? ? 在只恢復數據的過程中禁用觸發器
? --enable-row-security ? ? ? ? ?啟用行安全性(只轉儲用戶能夠訪問的內容)
? --exclude-table-data=PATTERN 不轉儲指定的表中的數據
? --extra-float-digits=NUM ? ? ? 覆蓋 ? extra_float_digits 的默認設置
? --if-exists ? ? ? ? ? ? ? ? ? ?當刪除對象時使用IF EXISTS
? --include-foreign-data=PATTERN,包含外部服務器上與模式匹配的,外部表的數據
? --inserts ? ? ? ? ? ? ? ? ? ? ?以INSERT 命令,而不是COPY 命令的形式轉儲數據
? --load-via-partition-root ? ? ?通過根表加載分區
? --no-comments ? ? ? ? ? ? ? ? ?不轉儲注釋
? --no-publications ? ? ? ? ? ? ?不轉儲發布
? --no-security-labels ? ? ? ? ? 不轉儲安全標簽的分配
? --no-subscriptions ? ? ? ? ? ? 不轉儲訂閱
? --no-table-access-method ? ? ? do not dump table access methods
? --no-tablespaces ? ? ? ? ? ? ? 不轉儲表空間分配信息
? --no-toast-compression ? ? ? ? 不轉儲 ? ?TOAST 壓縮方法
? --no-unlogged-table-data ? ? ? 不轉儲沒有日志的表數據
? --on-conflict-do-nothing ? ? ? 將ON CONFLICT DO NOTHING 添加到INSERT 命令
? --quote-all-identifiers ? ? ? ?所有標識符加引號,即使不是關鍵字
? --rows-per-insert=NROWS ? ? ? ?每個插入的行數;意味著--inserts
? --section=SECTION 備份命名的節 (數據前, 數據, 及 數據后) ? ? ? ? ??
? --serializable-deferrable 等到備份 可以無 異常運行
? --snapshot=SNAPSHOT ? ? ? ? ? ?為轉儲使用給定的快照
? --strict-names ? ? ? ? ? ? ? ? 要求每個表和(或)schema 包括模式以匹配至少一個實體
? --use-set-session-authorization,使用 ? ? ? SESSION AUTHORIZATION 命令代替,ALTER OWNER 命令來設置所有權

連接選項:
? -d, --dbname=DBNAME ? ? ? ?對數據庫 ? ? ?DBNAME 備份
? -h, --host=主機名 ? ? ? ? ? ? 數據庫服務器的主機名或套接字目錄
? -p, --port=端口號 數據庫服務器的端口號 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? -U, --username=名字 以指定的數據庫用戶聯接 ? ? ? ? ? ??
? -w, --no-password ? ? ? ? ?永遠不提示輸入口令
? -W, --password ? ? ? ? ? ? 強制口令提示 ? ? ? ?(自動)
? --role=ROLENAME ? ? ? ? ? ?在轉儲前運行 ? ? ? ?SET ROLE

#案例

--導出指定庫(不含create database語句)
pg_dump -h 連接串 -U 讀寫用戶 ?庫名> dbname.sql
pg_dump -h 192.168.1.51 -U zyb?mydb > mydb-1.sql

--導出指定庫(包含create database語句)
pg_dump -h 連接串 -U 讀寫用戶 -C ?庫名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb?-C mydb > mydb-2.sql

--僅導出指定庫結構(不含create database語句)
pg_dump -h 連接串 -U 讀寫用戶 -s ?庫名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb?-s mydb > mydb -3.sql

--僅導出指定庫結構(含create database語句)
pg_dump -h 192.168.1.51 -U postgres -C -s mydb > mydb-33.sql

--導出指定庫,結果以二進制壓縮格式輸出
pg_dump -h 連接串 -U 讀寫用戶 -F c -b -v ?庫名 > dbname.backup
pg_dump -h 192.168.1.51 -U zyb?-F c -b -v mydb > mydb-4.dmp

--導出指定schema
pg_dump -h 連接串 -U 讀寫用戶 -n schemaname 庫名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb?-n public mydb > mydb-5.sql

--導出指定庫public和public2兩個schema中的所有數據,結果以二進制壓縮格式輸出
pg_dump -h 連接串 -U 讀寫用戶 -F c -b -v -n hr -n public 庫名 > hr_payroll.backup
pg_dump -h 192.168.1.51 -U zyb?-F c -b -v -n public -n public mydb > mydb-6.dmp

--導出指定庫public schema以外的所有數據,結果以二進制壓縮格式輸出
pg_dump -h 連接串 -U 讀寫用戶 -F c -b -v -N public 庫名 > all_sch_except_pub.backup
pg_dump -h 192.168.1.51 -U zyb-F c -b -v -N public mydb > mydb-7.dmp

--導出特定的表
pg_dump -h 連接串 -U 讀寫用戶 -t 表名 庫名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -t test mydb > mydb-8.sql

--導出某個db中所有以“itpux"開頭的表
pg_dump -h 連接串 -U 讀寫用戶 -t *.itpux* ?庫名 > dbname.sql
pg_dump -h 192.168.1.51 -U zyb -t *.itpux* mydb > mydb-9.sql

2 多庫備份

#導出整個cluster
pg_dumpall -h 192.168.1.51 -U postgres -f bak_alldb1.sql

#僅備份角色和表空間定義
pg_dumpall -h 192.168.1.51 -U postgres --port=5432 -f bak_roles_tbs.sql --globals-only

#僅備份交色定義 ? ? ? ? ? ? ? ? ? ? ? ?
pg_dumpall -h 192.168.1.51 -U postgres --port=5432 -f bak_roles.sql --roles-only

3 恢復

包含create database語句

psql -h 192.168.1.51 -U postgres? <?mydb-2.sql

不含create database語句

postgres#create database mydb with owner zyb;

psql -h 192.168.1.51 -U postgres mydb <?mydb-2.sql

4 copy 導入導出

#導出 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
COPY { table_name [ ( column_name [, ...] ? ) ] | ( query ) }
? ? ?TO { 'filename' | PROGRAM 'command' | STDOUT }
? ? ?[ [ WITH ] ( option [, ...] ) ]

#導入
COPY table_name [ ( column_name [, ...] ) ]
? ? ?FROM { 'filename' | PROGRAM 'command | STDIN }
? ? ?[ [ WITH ] ( option [, ...] ) ] ? ?

#案例

#把文本數據導入到表中
mydb=# \copy test from /backup/test _copy.txt ;

#表導出csv文件
mydb=#\copy test to /backup/test _copy.txt.csv with csv;

可以導出指定的列
COPY test (id, name) TO ' /backup/output.csv' WITH csv;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82070.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82070.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82070.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用 LibreOffice 實現各種文檔格式轉換(支持任何開發語言調用 和 Linux + Windows 環境)[全網首發,保姆級教程,建議收藏]

以下能幫助你可以使用任何開發語言&#xff0c;在任何平臺都能使用 LibreOffice 實現 Word、Excel、PPT 等文檔的自動轉換&#xff0c;目前展示在 ASP.NET Core 中為 PDF的實戰案例&#xff0c;其他的文檔格式轉換邏輯同理。 &#x1f4e6; 1. 安裝 LibreOffice &#x1f427;…

AWS stop/start 使實例存儲lost + 注意點

先看一下官方的說明: EC2有一個特性,當執行stop/start操作(注意,這個并不是重啟/reboot,而是先停止/stop,再啟動/start)時,該EC2會遷移到其它的底層硬件上。 對于實例存儲來說,由于實例存儲是由其所在的底層硬件來提供的,此時相當于分配到了一塊全新的空的磁盤。 但是從…

跨域問題詳解

目錄 一、什么是跨域問題&#xff1f; 二、跨域問題出現的原因 三、跨域的解決方案 四、結語 在 Web 開發的世界里&#xff0c;當我們嘗試通過 AJAX 等技術獲取不同源的資源時&#xff0c;常常會遇到 “跨域問題”。這不僅是前端開發者頻繁遭遇的技術障礙&#xff0c;也是保…

VSCode 插件 GitLens 破解方法

文章目錄 1. 安裝指定版本2. 修改插件文件3. 重啟 VSCode 1. 安裝指定版本 在 VSCode 中打開擴展&#xff08;Ctrl Shift X&#xff09;&#xff0c;搜索 GitLens&#xff0c;右鍵點擊 安裝特定版本&#xff0c;在彈出的窗口中選擇 17.0.2&#xff0c;然后等待安裝完成。 2…

JavaScript的三大核心組成:ECMAScript、DOM與BOM

JavaScript的三大核心組成&#xff1a;ECMAScript、DOM與BOM 在前端開發領域&#xff0c;JavaScript是構建動態網頁和交互式應用的核心語言。然而&#xff0c;許多人對JavaScript的組成缺乏清晰的認識。實際上&#xff0c;JavaScript并非單一的語言規范&#xff0c;而是由三個…

JC/T 2490-2019 石灰基單層裝飾砂漿檢測

石灰基單層裝飾砂漿是指由石灰等無機膠凝材料、級配砂、外加劑或無機顏料制成的具有裝飾功能的干粉飾面材料。 JC/T 2490-2019石灰基單層裝飾砂漿檢測項目&#xff1a; 測試項目 測試方法 外觀 JC/T 2490 干密度 JC/T 2490 凝結時間 JGJ/T 70 抗折強度 GB/T 17671 抗…

用算法實現 用統計的方式實現 用自然語言處理的方法實現 用大模型實現 專利精益化統計分析

我們可以從算法、統計、自然語言處理&#xff08;NLP&#xff09;和大型語言模型&#xff08;LLM&#xff09;這四個方面&#xff0c;探討如何實現對專利社區、作者重要性以及共同作者貢獻度的分析。 1. 如何體現專利的社區 (社群效應) &#x1f916; 用算法實現 網絡分析算法…

深入淺出IIC協議 - 從總線原理到FPGA實戰開發 -- 第五篇:多主仲裁與錯誤恢復

第五篇&#xff1a;多主仲裁與錯誤恢復 副標題 &#xff1a;從總線沖突到故障自愈——構建高可靠I2C系統的終極指南 1. 多主仲裁機制 1.1 仲裁原理與硬件實現 仲裁流程圖解 &#xff1a; 仲裁失敗處理 &#xff1a; 立即切換為從機模式 監測總線空閑后重試&#xff08;隨機…

146. LRU Cache

題目描述 146. LRU Cache 哈希表雙向鏈表 詳見代碼和注釋&#xff1a; class LRUCache { private:int capacity_{0};int size_{0};struct Node{int key{0};int val{0};Node* pre{nullptr};Node* next{nullptr};Node(int k,int v,Node* pr,Node* nex):key(k),val(v),pre(pr),…

docker network 自定義網絡配置與管理指南

Docker 自定義網絡配置與管理指南 1. 網絡基礎概念 Docker 網絡是容器間通信和與外部世界交互的基礎。通過自定義網絡&#xff0c;可以實現容器間的隔離、靜態 IP 分配和服務發現。 關鍵術語&#xff1a; 子網(Subnet)&#xff1a;IP 地址的邏輯分組&#xff0c;例如 172.1…

linux strace調式定位系統問題

strace 的基本功能 strace 的主要功能包括&#xff1a; 跟蹤系統調用&#xff1a;顯示進程執行時調用的系統函數及其參數和返回值。監控信號&#xff1a;記錄進程接收到的信號。性能分析&#xff1a;統計系統調用的執行時間和次數。調試支持&#xff1a;幫助定位程序崩潰、性…

告別手抖困擾:全方位健康護理指南

手抖&#xff0c;醫學上稱為震顫&#xff0c;是常見的身體癥狀&#xff0c;可能由多種原因引發&#xff0c;了解其成因并采取科學護理措施&#xff0c;對改善癥狀、維護健康至關重要。 生理性手抖往往因情緒激動、過度勞累、大量飲用咖啡或酒精等引起&#xff0c;這種手抖通常較…

華為2025年校招筆試真題手撕教程(一)

一、題目 輸入&#xff1a; 第一行為記錄的版本迭代關系個數N&#xff0c;范圍是[1&#xff0c;100000]; 第二行到第N1行&#xff1a;每行包含兩個字符串&#xff0c;第一個字符串為當前版本&#xff0c;第二個字符串為前序版本&#xff0c;用空格隔開。字符串包含字符個數為…

Qt 的多線程

Qt 中的多線程主要用于處理耗時操作&#xff0c;避免阻塞主線程&#xff08;UI 線程&#xff09;&#xff0c;從而提高程序的響應性和運行效率。以下是 Qt 多線程的相關技術總結&#xff1a; 常見的多線程實現方式 繼承 QThread 類 &#xff1a;最基礎的實現方式&#xff0c;具…

基于ITcpServer/IHttpServer框架的HTTP服務器

https://www.cnblogs.com/MuZhangyong/p/16839231.html 在基于ITcpServer/IHttpServer框架的HTTP服務器實現中,OnBody方法主要用于接收HTTP請求體數據,而觸發HTTP響應通常是在OnMessageComplete方法中完成。以下是完整的響應觸發機制說明: sequenceDiagramClient->>…

Windows 下 Qt 項目配置 FFmpeg 簡明指南

一、作用 在qt項目中配置ffmpeg庫 二、步驟 1、直接使用已經編譯好的ffmpeg庫文件&#xff0c;分為win32版本和win64版本&#xff1b; 2、win32版本下載地址&#xff1a;https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/releases/tag/latest 3、win64版本下載地址&a…

Attu下載 Mac版與Win版

通過Git地址下載 Mac 版選擇對于的架構進行安裝 其中遇到了安裝不成功&#xff0c;文件損壞等問題 一般是兩種情況導致 1.安裝版本不對 2.系統權限限制 https://www.cnblogs.com/similar/p/11280162.html打開terminal執行以下命令 sudo spctl --master-disable安裝包Git下載地…

SpringBoot3集成Oauth2.1——5資源地址配置

配置問題說明 如下所示&#xff0c;代碼配置了兩個&#xff0c;過濾器&#xff0c;一個是資源保護&#xff0c;一個是不保護。 /** Description: 配置需要保護的資源* author: 胡濤* mail: hutao_2017aliyun.com* date: 2025年5月23日 下午2:28:20*/BeanOrder(2)public Securi…

Python urllib.parse 模塊中的 urljoin 方法

Python urllib.parse 模塊中的 urljoin 方法 urljoin 是 Python 標準庫中 urllib.parse 模塊的一個方法&#xff0c;用于將基礎 URL 和相對路徑拼接成完整的 URL。它會根據傳入的基礎 URL 自動處理協議、域名以及路徑的部分匹配邏輯。 以下是關于該方法的具體說明和示例&…

AI大模型和SpringAI簡介

一、Spring AI 簡介 SpringAI整合了全球&#xff08;主要是國外&#xff09;的大多數大模型&#xff0c;而且對于大模型開發的三種技術架構都有比較好的封裝和支持&#xff0c;開發起來非常方便。 不同的模型能夠接收的輸入類型、輸出類型不一定相同。SpringAI根據模型的輸入…