最近需要將postgres導出數據文件,用pgAdmin倒騰了半天還是沒有成功,最終用postgre的命令來實現了導出sql文件,操作如下:
進入postgres安裝目錄的bin目錄下
如我的是windows:
C:\Program Files\PostgreSQL\10\bin
開始執行pg_dump命令:
用法: pg_dump [選項]... [數據庫名字]
一般選項:
-f, --file=FILENAME 輸出文件或目錄名
-F, --format=c|d|t|p 輸出文件格式 (定製, 目錄, tar)
明文 (默認值))
-v, --verbose 詳細模式
-V, --version 輸出版本信息,然後退出
-Z, --compress=0-9 被壓縮格式的壓縮級別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時後操作失敗
-?, --help 顯示此幫助, 然後退出
控制輸出內容選項:
-a, --data-only 只轉儲數據,不包括模式
-b, --blobs 在轉儲中包括大對象
-c, --clean 在重新創建之前,先清除(刪除)數據庫對象
-C, --create 在轉儲中包括命令,以便創建數據庫
-E, --encoding=ENCODING 轉儲以ENCODING形式編碼的數據
-n, --schema=SCHEMA 只轉儲指定名稱的模式
-N, --exclude-schema=SCHEMA 不轉儲已命名的模式
-o, --oids 在轉儲中包括 OID
-O, --no-owner 在明文格式中, 忽略恢復對象所屬者
-s, --schema-only 只轉儲模式, 不包括數據
-S, --superuser=NAME 在明文格式中使用指定的超級用戶名
-t, --table=TABLE 只轉儲指定名稱的表
-T, --exclude-table=TABLE 不轉儲指定名稱的表
-x, --no-privileges 不要轉儲權限 (grant/revoke)
--binary-upgrade 只能由升級工具使用
--column-inserts 以帶有列名的INSERT命令形式轉儲數據
--disable-dollar-quoting 取消美元 (符號) 引號, 使用 SQL 標準引號
--disable-triggers 在只恢復數據的過程中禁用觸發器
--exclude-table-data=TABLE 不轉儲指定名稱的表中的數據
--inserts 以INSERT命令,而不是COPY命令的形式轉儲數據
--no-security-labels 不轉儲安全標籤的分配
--no-tablespaces 不轉儲表空間分配信息
--no-unlogged-table-data 不轉儲沒有日誌的表數據
--quote-all-identifiers 所有標識符加引號,即使不是關鍵字
--section=SECTION 備份命名的節 (數據前, 數據, 及 數據後)
--serializable-deferrable 等到備份可以無異常運行
--use-set-session-authorization
使用 SESSION AUTHORIZATION 命令代替
ALTER OWNER 命令來設置所有權
聯接選項:
-h, --host=主機名 數據庫服務器的主機名或套接字目錄
-p, --port=端口號 數據庫服務器的端口號
-U, --username=名字 以指定的數據庫用戶聯接
-w, --no-password 永遠不提示輸入口令
-W, --password 強制口令提示 (自動)
--role=ROLENAME 在轉儲前運行SET ROLE
作者:不用加班的程序員
鏈接:https://www.jianshu.com/p/6b064c2ccf91
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。
導入導出sql數據
一.導出數據庫及具體表
1.導出數據庫:方式一:pg_dump -U postgres -f c:\db.sql postgis
方式二:pg_dump -U postgres postgis > c:\db.sql
2.導入數據庫:方式一:psql -d postgis -f c:\db.sql postgres
3.導出具體表:方式一:pg_dump -Upostgres -t mytable -f dump.sql postgres
4.導入具體表:方式一:psql -d postgis -f c:\ dump.sql postgres
參數:
postgres:用戶
postgis:數據庫名稱
mytable:表名稱
-f, --file=文件名: 輸出文件名
-U, --username=名字:以指定的數據庫用戶聯接
二.導出數據格式詳解
用法:
pg_dump [選項]... [數據庫名字]
一般選項:
-f, --file=文件名 輸出文件名
-F, --format=c|t|p 輸出文件格式 (定製,tar, 明文)
-v, --verbose 詳細模式
-Z, --compress=0-9 被壓縮格式的壓縮級別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時後操作失敗
--help 顯示此幫助信息,然後退出
--versoin 輸出版本信息,然後退出
控制輸出內容選項:
-a, --data-only 只轉儲數據,不包括模式
-b, --blobs 在轉儲中包括大對象
-c, --clean 在重新創建之前,先清除(刪除)數據庫對象
-C, --create 在轉儲中包括命令,以便創建數據庫
-E, --encoding=ENCODING 轉儲以ENCODING形式編碼的數據
-n, --schema=SCHEMA 只轉儲指定名稱的模式
-N,--exclude-schema=SCHEMA 不轉儲已命名的模式
-o, --oids 在轉儲中包括OID
-O, --no-owner 在明文格式中,忽略恢復對象所屬者
-s, --schema-only 只轉儲模式,不包括數據
-S, --superuser=NAME 在轉儲中, 指定的超級用戶名
-t, --table=TABLE 只轉儲指定名稱的表
-T, --exclude-table=TABLE 只轉儲指定名稱的表
-x, --no-privileges 不要轉儲權限 (grant/revoke)
--binary-upgrade 只能由升級工具使用
--inserts 以INSERT命令,而不是COPY命令的形式轉儲數據
--column-inserts 以帶有列名的INSERT命令形式轉儲數據
--disable-dollar-quoting 取消美元 (符號)引號, 使用 SQL 標準引號
--disable-triggers 在只恢復數據的過程中禁用觸發器
--no-tablespaces 不轉儲表空間分配信息
--role=ROLENAME 在轉儲前運行SETROLE
--use-set-session-authorization
使用 SESSION AUTHORIZATION 命令代替
ALTER OWNER 命令來設置所有權
聯接選項:
-h, --host=主機名 數據庫服務器的主機名或套接字目錄
-p, --port=端口號 數據庫服務器的端口號
-U, --username=名字 以指定的數據庫用戶聯接
-w, --no-password 永遠不提示輸入口令
-W, --password 強制口令提示 (自動)