您好,登錄后才能下訂單哦!
最近需要將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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
一.導出數據庫及具體表
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 強制口令提示 (自動)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。