環(huán)境: | windows |
數(shù)據(jù)庫: | postgresql |
1.準備腳本
- backUpDb.bat 腳本為備份腳本,雙擊運行,右鍵可以選擇編輯;
- restoreDb.bat 腳本為恢復腳本,雙擊運行,右鍵選擇編輯;
1.1 腳本介紹
如上圖所示編輯腳本文件,選擇你的備份路徑和相應的程序執(zhí)行路徑,以及要備份的數(shù)據(jù)庫名稱,登錄賬戶(此時不需要密碼),編輯好以后進行保存,然后就可以開始進行備份;
- 恢復腳本同理
- 兩個腳本所需要的exe應用程序如下:
2.開始備份
- 雙擊備份腳本
提示輸入密碼,此時輸入你當前登錄用戶的密碼回車即可(腳本里面不顯示輸入密碼明文和進度,無需擔心,輸入完成后enter即可) - 顯示下面畫面即為備份成功
- 去所選路徑查看是否含有備份的dump文件(出現(xiàn).dump文件即為備份成功)
3.進行恢復
-
1.查看備份前的數(shù)據(jù)庫
-
2.然后刪除相應數(shù)據(jù)庫
-
3.新建同名數(shù)據(jù)庫(新建數(shù)據(jù)庫只寫備份前的數(shù)據(jù)庫名稱,其他選項一概不填)
-
4.新建數(shù)據(jù)庫成功(此時可以看到數(shù)據(jù)庫無table信息)
-
5.開始運行恢復腳本
輸入密碼
密碼錯誤情況如下,此時只需要重新再次運行腳本輸入正確密碼即可
恢復成功頁面 -
6.查看恢復后的數(shù)據(jù)庫
3.單張表的備份與恢復
3.1 單張表的備份
其他參數(shù)不變,加上-t 和表名即可 注意是小t(大寫T代表除去這張表,其他表都備份)
3.2 單張表的恢復
注意:區(qū)分大小寫且備份名字和表名最好一致不然容易混淆
多張表的使用:-t[表名1] -t [表名2]文章來源:http://www.zghlxwxcb.cn/news/detail-819319.html
4.常用命令和參數(shù)
4.1 備份常用參數(shù)
-h host,指定數(shù)據(jù)庫主機名,或者IP
-p port,指定端口號
-U user,指定連接使用的用戶名
-W,按提示輸入密碼
-a,–data-only,只導出數(shù)據(jù),不導出表結構
-c,–clean,是否生成清理該數(shù)據(jù)庫對象的語句,比如drop table
-C,–create,是否輸出一條創(chuàng)建數(shù)據(jù)庫語句
-f file,–file=file,輸出到指定文件中
-n schema,–schema=schema,只轉存匹配schema的模式內(nèi)容
-N schema,–exclude-schema=schema,不轉存匹配schema的模式內(nèi)容
-O,–no-owner,不設置導出對象的所有權
-s,–schema-only,只導致對象定義模式,不導出數(shù)據(jù)
-t table,–table=table,只轉存匹配到的表,視圖,序列,可以使用多個-t匹配多個表
-T table,–exclude-table=table,不轉存匹配到的表。
-inserts,使用insert命令形式導出數(shù)據(jù),這種方式比默認的copy方式慢很多,但是可用于將數(shù)據(jù)導入到非PostgreSQL數(shù)據(jù)庫。
dbname,指定連接的數(shù)據(jù)庫名稱,實際上也是要備份的數(shù)據(jù)庫名稱。
4.2 備份常用命令
- 備份某個database,備份結果以自定義壓縮格式輸出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -f mydb.backup mydb
- 備份某個database,備份結果以SQL文本格式輸出,輸出結果要包含CREATE DATABASE 語句:
pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb
- 備份某個database中所有名稱以"pay"開頭的表,備份結果以自定義壓縮格式輸出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t *.pay* -f pay.backup mydb
- 備份某個database中hr和payroll這兩個schema中的所有數(shù)據(jù),備份結果以自定義壓縮格式輸出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -n hr -n payroll -f hr.backup mydb
- 備份某個database中除public schema中的數(shù)據(jù)以外的所有數(shù)據(jù),備份結果以自定義壓縮格式輸出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -N public -f all_sch_except_pub.backup mydb
- 將數(shù)據(jù)備份為SQL文本文件,且生成INSERT語句,該文件可以用于低版本的PostgreSQL或其它支持SQL的非PostgreSQL數(shù)據(jù)庫
pg_dump -h localhost -p 5432 -U someuser -F p --column-inserts -f select_tables.backup mydb
- 目錄備份格式:備份時會先創(chuàng)建一個新目錄,然后逐一將一個gzip格式的壓縮文件和一個列出所有包含結構的文件填充到該目錄。
pg_dump -h localhost -p 5432 -U someuser -F d -f /root/test/ mydb
- 支持使用備份選項 --jobs(-j),會啟動多個線程并行執(zhí)行當前備份操作
pg_dump -h localhost -p 5432 -U someuser -j 4 -F d -f /root/test/ mydb
- 使用
pg_dumpall
進行全庫備份
4.3 還原常用命令
-d, --dbname=名字 連接數(shù)據(jù)庫名字
-f, --file=文件名 輸出文件名
-F, --format=c|d|t backup file format (should be automatic)
-l, --list 打印歸檔文件的 TOC 概述
-v, --verbose 詳細模式
--help 顯示此幫助信息, 然后退出
--version 輸出版本信息, 然后退出恢復控制選項:
-a, --data-only 只恢復數(shù)據(jù), 不包括模式
-c, --clean 在重新創(chuàng)建數(shù)據(jù)庫對象之前需要清除(刪除)數(shù)據(jù)庫對象
-C, --create 創(chuàng)建目標數(shù)據(jù)庫
-e, --exit-on-error 發(fā)生錯誤退出, 默認為繼續(xù)
-I, --index=名稱 恢復指定名稱的索引
-j, --jobs=NUM 可以執(zhí)行多個任務并行進行恢復工作
-L, --use-list=文件名 從這個文件中使用指定的內(nèi)容表排序輸出
-n, --schema=NAME 在這個模式中只恢復對象
-O, --no-owner 忽略恢復對象所屬者
-P, --function=名字(參數(shù)) 恢復指定名字的函數(shù)
-s, --schema-only 只恢復模式, 不包括數(shù)據(jù)
-S, --superuser=NAME 使用指定的超級用戶來禁用觸發(fā)器
-t, --table=NAME 恢復指定命字的表
-T, --trigger=NAME 恢復指定命字的觸發(fā)器
-x, --no-privileges 跳過處理權限的恢復 (grant/revoke)
-1, --single-transaction 作為單個事務恢復
--disable-triggers 在只恢復數(shù)據(jù)的過程中禁用觸發(fā)器
--no-data-for-failed-tables 沒有恢復無法創(chuàng)建表的數(shù)據(jù)
--no-security-labels do not restore security labels
--no-tablespaces 不恢復表空間的分配信息
--use-set-session-authorization 使用 SESSION AUTHORIZATION 命令代替ALTER OWNER命令來設置對象所有權
聯(lián)接選項:
-h, --host=主機名 數(shù)據(jù)庫服務器的主機名或套接字目錄
-p, --port=端口號 數(shù)據(jù)庫服務器的端口號
-U, --username=名字 以指定的數(shù)據(jù)庫用戶聯(lián)接
-w, --no-password 永遠不提示輸入口令
-W, --password 強制口令提示 (自動)
--role=ROLENAME 在恢復前執(zhí)行SET ROLE操作
參考參數(shù)和命令鏈接:https://www.cnblogs.com/oumi/p/17505700.html文章來源地址http://www.zghlxwxcb.cn/news/detail-819319.html
到了這里,關于【PostgreSql】本地備份為dump文件與恢復數(shù)據(jù)庫(單表和整個數(shù)據(jù)庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!