標籤:postgresql命令列不輸入密碼 postgresqlDatabase Backup postgresql資料庫基本操作 postgresql資料庫匯出 postgresql營運教程
對於PostgreSQL資料庫的備份按照官方手冊的方法之一就是採用“SQL Dump”的方式(另一種方式是直接備份檔案系統中的檔案,可參考官方手冊)。
基本用法如下:
pg_dump dbname > outfile
首先,正如命令列所展示的,pg_dump是將命令結果輸出到標準輸出中。
其次,pg_dump並不影響資料庫工作過程中的其他動作(主要是關心pg_dump會不會產生讀寫鎖(read lock、write lock)),但也有例外,那就是哪些需要使用互斥鎖(exclusive lock)的操作,如ALTER TABLE。
由於對於營運而言,通常需要使用指令碼來執行Database Backup,而不是每天手動執行命令列並輸入密碼備份,因此特地查了一下文檔,根據文檔“31.15. The Password File”節的說明,可以在使用者目錄下建一個設定檔,提前將密碼寫入這個設定檔中,設定檔的格式如下:
hostname:port:database:username:password
需要將此檔案放在執行pg_dump命令的使用者目錄下,儲存成.pgpass 檔案,並且許可權為600,否則PostgreSQL就會報
WARNING: password file "/root/.pgpass" has group or world access; permissions should be u=rw (0600) or less
注意:如果PostgreSQL資料庫的資料庫表結構(database schema)依賴OIDs(例如外鍵),則pg_dump需要加-o選項。
PostgreSQL資料庫的匯出速度還是比較快的,匯出3萬多行不到1s。
PostgreSQL匯出資料庫命令列執行個體:
pg_dump -U confluence -d confluence -h 127.0.0.1 -o >/tmp/tmp_confluence_postgresql.sql
其中,
-U表示執行使用者
-d表示資料庫
-h表示主機
-o表示支援OLDs
註:如果不想使用.pgpass 檔案,則可以在命令列中添加-W選項,意思是輸入密碼再執行。
附錄:PostgreSQL資料庫一些適合營運的基本操作
登入PostgreSQL資料庫:
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
如果也不想輸入密碼,則可以執行:
psql "host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=yourloginname password=yoursecret"
列出資料庫:
\l
退出資料庫console:
\q
tag:PostgreSQLDatabase Backup,PostgreSQL命令列不輸入密碼,PostgreSQL資料庫基本操作,PostgreSQL資料庫匯出,PostgreSQL營運教程
--end--
本文出自 “通訊,我的最愛” 部落格,請務必保留此出處http://dgd2010.blog.51cto.com/1539422/1685968
PostgreSQL資料庫pg_dump命令列不輸入密碼的方法