日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pg_dump

發布時間:2024/3/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pg_dump 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

備份:pg_dump -h localhost -p 5432 -U tradesns -W -F c -b -v -f "/home/tradeworkwangbin/us2010.backup" us2010
恢復:pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v "/root/us2010.backup"

PS:“-d us2011 ”中的“us2011 ”數據庫需要事先建立,不然會報錯。C:\Program Files C:(x86)\PostgreSQL\9.1\bin\pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "Test" --role "openpg" --no-password ?--verbose "D:\FGA-2013-01-09.backup"

pg_dump用法【轉】

原文:http://huangro.iteye.com/blog/366035

在pg 8.3中, 可以使用多個-t來分割不同的table, 其他版本不清楚是否支持多個table導出.

例如: 我要一次性導出table1, table2, table3, 可以這么來寫:

pg_dump -t table1 -t table2 -t table3 -F c -Z 9 databasename > abc.backup

比較詭異的用法



順便把pg_dump的用法也放到這里來吧:
pg_dump
Name
pg_dump -- 將一個PostgreSQL數據庫抽出到一個腳本文件或者其它歸檔文件中
Synopsis

pg_dump [option...] [dbname]
描述

pg_dump 是一個用于備份 PostgreSQL 數據庫的工具。它甚至可以在數據庫正在并發使用的時候進行完整一致的備份。 pg_dump 并不阻塞其它用戶對數據庫的訪問(讀或者寫)。

轉 儲格式可以是一個腳本或者歸檔文件。 腳本轉儲的格式是純文本,它包含許多 SQL 命令, 這些 SQL 命令可以用于重建該數據庫并將之恢復到保存成腳本的時候的狀態。 要從這樣的腳本中恢復,使用 psql。 它們甚至可以用于在其它機器甚至是其它硬件體系的機器上重建該數據庫, 通過對腳本進行一些修改,甚至可以在其它 SQL 數據庫產品上重建該數據庫。

另外,還有候選的歸檔文件格式必須和 pg_restore 一起使用重建數據庫。 它們允許 pg_restore 對恢復什么東西進行選擇, 或者甚至是在恢復之前對需要恢復的條目進行重新排序。 歸檔文件也是設計成可以跨平臺移植的。

如 果一種候選文件格式和 pg_restore 結合,那么pg_dump就能提供一種靈活的歸檔和傳輸機制。 pg_dump 可以用于備份整個數據庫, 然后就可以使用 pg_restore 檢查這個歸檔和/或選擇要恢復的數據庫部分。 最靈活等輸出文件格式是"custom(客戶化)"格式(-Fc)。 它允許對歸檔元素進行選取和重新排列, 并且缺省時是壓縮的。 tar 格式(-Ft)不是壓縮的并且我們在裝載等時候不可能重排列, 不過它也很靈活;還有,它可以用標準 Unix 工具,比如 tar 處理。

在運行 pg_dump 的時候,我們應該檢查輸出, 看看是否有任何警告存在(在標準錯誤上打印),特別是下面列出的限制。
選項

下面的命令行參數控制輸出的內容和格式。





dbname

聲明將要轉儲的數據庫名。 如果沒有聲明這個參數,那么使用環境變量 PGDATABASE。 如果那個環境變量也沒聲明,那么用發起連接的用戶名。?
-a
--data-only

只輸出數據,不輸出模式(數據定義)。

這個選項只是對純文本格式有意義。對于歸檔格式,你可以在調用 pg_restore 的時候聲明選項。?
-c
--clean

輸出在創建數據庫創建命令之前先清理(刪除)該數據庫對象的命令。

這個選項只是對純文本格式有意義。對于歸檔格式,你可以在調用 pg_restore 的時候聲明選項。?
-C
--create

以一條創建該數據庫本身并且與這個數據庫聯接等命令開頭進行輸出。 (如果是這種形式的腳本,那么你在運行腳本之前和哪個數據庫聯接就不重要了。)

這個選項只對純文本格式有意義。對于歸檔格式,你可以在調用 pg_restore 的時候聲明該選項。?
-d
--inserts

將數據輸出為的INSERT命令(而不是 COPY)。 這樣會導致恢復非常緩慢。 這個選項主要用于制作那種可以用于其它非 PostgreSQL 數據庫的轉儲。 請注意,如果你重新排列了字段順序,那么恢復可能會完全失敗。 -D 更安全,但是也更慢。?
-D
--column-inserts
--attribute-inserts

把數據轉儲為帶有明確字段名的 INSERT 命令。 (INSERT INTO table(column, ...) VALUES ...)。 這樣會導致恢復非常緩慢,它主要用于制作那種可以用于其它非 PostgreSQL 數據庫的轉儲。?
-E encoding
--encoding=encoding

以指定的字符集編碼創建轉儲。缺省時,轉儲是按照數據庫編碼創建的。 (另外一個獲取同樣結果的方法是設置 PGCLIENTENCODING 環境變量為期望的轉儲編碼。)?
-f file
--file=file

把輸出發往指定的文件。如果忽略這些,則使用標準輸出。?
-F format
--format=format

選擇輸出的格式。format可以是下列之一:





p

輸出純文本SQL腳本文件(缺省)?
t

輸出適合輸入到 pg_restore 里的tar歸檔文件。 使用這個歸檔允許在恢復數據庫時重新排序和/或把數據庫對象排除在外。 同時也可能可以在恢復的時候限制對哪些數據進行恢復。?
c

輸出適于給 pg_restore 用的客戶化歸檔。 這是最靈活的格式,它允許對裝載的數據和對象定義進行重新排列。 這個格式缺省的時候是壓縮的。?


-i
--ignore-version

忽略在 pg_dump 和數據庫服務器之間的版本差別。

pg_dump 可以處理來自以前版本的PostgreSQL 的數據庫,但是太老的版本則不被支持了(目前是支持到 7.0)。 如果你需要跨越版本檢查時才使用這個選項( 而且如 pg_dump 失效,別說我沒警告你)。?
-n schema
--schema=schema

只轉儲 schema 的內容。 如果沒有聲明這個選項,所有目標數據庫中的非系統模式都會被轉儲出來。

注意: 在這個模式里,pg_dump 并不試圖轉儲任何其它選定模式可能依賴的數據庫對象。 因此,系統不保證單一的一個模式的轉儲就可以成功地恢復到一個干凈的數據庫中去。?

-o
--oids

作為數據的一部分,為每個表都輸出對象標識(OID)。 如果你的應用在某種程度上引用了OID字段的話,(比如,在外鍵約束中用到)。 那么使用這個選項。否則,不應該使用這個選項。?
-O
--no-owner

不把對象的所有權設置為對應源數據庫。 通常, pg_dump 發出(psql特有的) ALTER OWNER 或者 SET SESSION AUTHORIZATION 語句以設置創建的數據庫對象的所有權。 又見 -R 和 -X use-set-session-authorization 選項。 請注意 -O 并不防止所有對數據庫的重新聯接, 只是防止那些為調整權限進行的排它聯接。

這個選項只是對純文本格式有意義。對于歸檔格式,在你調用 pg_restore 的時候你可以聲明該選項。?
-R
--no-reconnect

這個選項已經過時,但是出于向下兼容的考慮,仍然接受這個選項。?
-s
--schema-only

只輸出對象定義(模式),不輸出數據。?
-S username
--superuser=username

聲明關閉觸發器時需要用到的超級用戶名。 它只有使用了 --disable-triggers 的時候才有關系。 (通常,我們最好不要輸入這個參數,而是用超級用戶啟動生成的腳本。)?
-t table
--table=table

只輸出表 table的數據。 很可能是在不同模式里面有多個同名表;如果這樣,那么所有匹配的表都將被轉儲出來。 同時聲明 --schema 和 --table 則只選擇一個表。

注意: 在這個模式里,pg_dump 并不試圖轉儲任何其它選定表可能依賴的數據庫對象。 因此,系統不保證單一的一個表的轉儲就可以成功地恢復到一個干凈的數據庫中去。?

-v
--verbose

聲明冗余模式。 這樣將令 pg_dump 輸出詳細的對象評注以及轉儲文件的啟停時間和進度信息到標準輸出上。?
-x
--no-privileges
--no-acl

避免輸出 ACL(賦予/撤消 命令)和表的所有者關系信息。?
-X disable-dollar-quoting
--disable-dollar-quoting

這個選項關閉使用美元符包圍函數體。強制它們用 SQL 標準的字串語法的引號包圍。?
-X disable-triggers
--disable-triggers

這個選項只是和創建僅有數據的轉儲相關。它告訴 pg_dump 包含在恢復數據時,臨時關閉目標表上面的觸發器的命令。 如果你在表上有參考完整性檢查或者其它觸發器,而恢復數據的時候你不想重載他們,那么你就應該使用這個選項。

目前,為 --disable-triggers 發出的命令必須用超級用戶來做。 因此,你應該同時用 -S 聲明一個超級用戶名,或者最好是用一個超級用戶的身份來啟動這個生成的腳本。

這個選項只對純文本格式有意義。對于歸檔格式,你可以在調用 pg_restore 的時候聲明這個選項。?
-X use-set-session-authorization
--use-set-session-authorization

輸出標準的 SET SESSION AUTHORIZATION 命令而不是 ALTER OWNER 命令。 這樣令轉儲更加符合標準,但是如果轉儲文件中的對象的歷史有些問題,那么可能不能正確恢復。 并且,使用 SET SESSION AUTHORIZATION 的轉儲需要數據庫超級用戶的權限才能轉儲成功, 而 ALTER OWNER 使用的權限則低得多。?
-Z 0..9
--compress=0..9

聲明在那些支持壓縮的格式中使用的壓縮級別。 (目前只有客戶化格式支持壓縮)。?



下面的命令行參數控制數據庫為聯接參數。





-h host
--host=host

聲明運行服務器的機器的主機名。 如果數值以斜杠開頭,則它被用做到 Unix 域套接字的路徑。 缺省是從 PGHOST 環境變量中取得的,如果設置了這個環境變量的話,否則,嘗試一個 Unix 域套接字連接。?
-p port
--port=port

聲明服務器正在偵聽并等待聯接的 TCP 端口或本地 Unix 主控套接字文件句柄。 缺省時使用環境變量 PGPORT 的值(如果存在),或者是編譯時的缺省值。?
-U username

以給出用戶身分聯接。?
-W

強制口令提示。如果服務器需要口令認證,那么這個動作應該自動發生。?


環境



PGDATABASE
PGHOST
PGPORT
PGUSER

缺省連接參數?

診斷

pg_dump 在內部使用 SELECT 語句。如果你運行 pg_dump 時碰到問題,確認你能夠使用象 psql 這樣的程序從數據庫選取信息。
注意

如 果你的數據庫給template1數據庫增加了任何你自己的東西, 那么請注意把 pg_dump 的輸出恢復到一個真正空的數據庫中; 否則你可能會收到因為重復定義所追加的對象而造成的錯誤信息。要制作一個沒有任何本地附屬物的數據庫, 可以從template0而不是template1拷貝,比如:

CREATE DATABASE foo WITH TEMPLATE template0;



pg_dump 有幾個限制:





*

在進行純數據轉儲時,并且使用了選項 --disable-triggers 的時候,pg_dump 發出一些查詢先關閉在用戶表上面的觸發器, 然后插入數據,數據插入完成后再發出查詢打開觸發器。 如果恢復動作在中間停止,那么系統表可能就會處于一種錯誤狀態。?



tar 歸檔的成員的大小限制于 8 GB。(這個限制是 tar 文件格式的固有限制。) 因此這個格式無法用于任何單表的大小超過這個尺寸的原文表現。 tar 歸檔和任何其它輸出格式的總大小是不受限制的,只是可能會又操作系統的限制。

pg_dump 生成的轉儲文件并不包含優化器用于查詢規劃決策的統計信息。 因此,恢復完之后,我們建議在每個已恢復的對象上運行 ANALYZE,以保證好性能。
例子

轉儲一個數據庫:

$ pg_dump mydb > db.out



重載這個數據庫:

$ psql -d database -f db.out



輸出一個叫 mydb 的數據庫到一個 tar 文件:

$ pg_dump -Ft mydb > db.tar



把這個數據庫恢復到一個現有的叫 newdb 的數據庫:

$ pg_restore -d newdb db.tar

分類:? Postgresql 綠色通道:? 好文要頂? 關注我? 收藏該文 與我聯系? Leajon First
關注 - 1
粉絲 - 1 +加關注 0 0 (請您對文章做出評價) ??博主上一篇: 開源圖標庫
??博主下一篇: valgrind簡單用法【轉】
posted @? 2012-11-07 18:21? Leajon First?閱讀(13) 評論( 0)? 編輯? 收藏 刷新評論 刷新頁面 返回頂部 注冊用戶登錄后才能發表評論,請? 登錄?或? 注冊, 訪問網站首頁。 滬江網誠聘中級/高級.NET程序員(社區方向)
機會難得!10元購買阿里云Windows云服務器
博客園首頁 博問 新聞 閃存 程序員招聘 知識庫 最新IT新聞:
·? 傳宏碁明年初推Android平板電腦 售價約99美元
·? 著名投資人馬克·庫班:Lumia 920遠勝iPhone 5
·? 美國宇航局未來宇宙飛船將于2014年首次發射
·? 微軟資深戰略高管蒙迪退居二線 擬2014年退休
·? Facebook被曝海外避稅 再給英國當局添堵
?? 更多新聞... 最新知識庫文章:
·? 致諸位新程序員:來自Chuck Jazdzewski慈父般的忠告
·? 我眼中的工程師文化
·? 剖析開源云
·? 一位臺灣碼農的心路歷程
·? 請注釋你那該死的代碼
?? 更多知識庫文章...

公告

本博客有大量轉載內容,均已給出原文鏈接以及注明轉載。 如果您不希望看到您的博文被轉載到這里,請與leajon.first#gmail.com聯系。 我將會在48小時之內刪除之! ---------------------------------------------------------- 昵稱: Leajon First
園齡: 9個月
粉絲: 1
關注: 1 +加關注

搜索

隨筆分類

  • Arch(9)
  • awk(2)
  • Bacula(2)
  • C(19)
  • C++(22)
  • CentOS(3)
  • CppUnit(2)
  • Crontab(1)
  • Django(1)
  • GCC(1)
  • GIMP(1)
  • Git(6)
  • Glade(1)
  • GNU(2)
  • Gson(1)
  • GTK(1)
  • Java(15)
  • Json(3)
  • jsoncpp(1)
  • Linux(34)
  • linux驅動(2)
  • Lua(1)
  • Makefile(2)
  • Mplayer(1)
  • POCO
  • Postgresql(8)
  • Python(10)
  • RegEx(5)
  • scons(1)
  • Screen(1)
  • Sed(1)
  • Shell(16)
  • SQL(16)
  • Ssh(4)
  • STL(8)
  • SVN(2)
  • swing(6)
  • Tclap(1)
  • Tmux(2)
  • UML(1)
  • Vim(18)
  • VPN(1)
  • windows(1)
  • yum(2)
  • 備份工具(1)
  • 代理(2)
  • 調試(8)
  • 多線程(4)
  • 工具(8)
  • 面試(2)
  • 內存(2)
  • 數據結構和算法(4)
  • 網絡(5)
  • 雜物(2)

隨筆檔案

  • 2012年12月 (11)
  • 2012年11月 (42)
  • 2012年10月 (12)
  • 2012年9月 (7)
  • 2012年8月 (10)
  • 2012年7月 (36)
  • 2012年6月 (38)
  • 2012年5月 (22)
  • 2012年4月 (8)
  • 2012年3月 (2)

links

  • CU manual
  • Django Book
  • Python教程
  • RPM Search

積分與排名

  • 積分 - 8035
  • 排名 - 12153

閱讀排行榜

  • 1. Linux后臺執行程序(639)
  • 2. libtool的作用及應用【轉載】(567)
  • 3. 備份工具: bacula安裝詳解【轉】(486)
  • 4. ARCH pacman更新錯誤:error: failed to commit transaction (conflicting files)(317)
  • 5. PostgreSQL學習手冊(PL/pgSQL過程語言)【轉】(294)
Copyright ?2012 Leajon First

轉載于:https://my.oschina.net/u/576757/blog/98013

總結

以上是生活随笔為你收集整理的pg_dump的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。