PostgreSQL 資料庫的備份

來源:互聯網
上載者:User

標籤:sql   postgre   資料庫   


PostgreSQL 資料庫的備份


一、建立資料庫連接


命令: psql -h IP地址 -p 連接埠 -U 資料庫使用者名稱 -d 資料庫名

    psql -h 127.0.0.1 -p 5432 -U postgres -d postgres

psql命令串連選項

Connection options:

  -h, --host=HOSTNAME     主機   預設local

  -p, --port=PORT         連接埠   預設5432

  -U, --username=USERNAME 使用者名稱 預設postgres

  -w, --no-password       從不提示密碼

  -W, --password          強制 psql 提示輸入密碼,即使沒有密碼也會提示。

  -d                 指定要串連的庫名


=============================================


二、資料備份還原

     pg_restore可以恢複由pg_dump備份的檔案,它會重建包括資料在內的所有使用者定義的類型、函數、表、索引的所有別要的命令

使用-d選項執行資料庫的名稱,-C指定備份檔案的路徑

 

     pg_restore -d testdb -U postgres -C /home/postgres/testdb.sql


     psql是一個PostgreSQL的終端,它可以運行使用者輸入的語句,輸入的語句還可以來自一個檔案,

     所以對於備份的包含create、insert語句的文字檔,可以使用psql恢複到資料中。

 

     psql -d  testdb -U postgres -f /home/postgres/testdb.sql 

 


   1.pg_dump備份資料庫

   命令:pg_dump -h IP地址 -p 連接埠 -U 資料庫使用者名稱 -f 目標隱藏檔及路徑 目標資料庫名


     備份testdb資料庫到/home/postgres/testdb.sql檔案

     pg_dump  -U postgres -f /home/postgres/testdb.sql testdb

 

     恢複

      psql  -U postgres -d testdb -f /home/postgres/testdb.sql 

 

 

     備份testdb庫中的pmp_login_log表

      pg_dump -U postgres -t pmp_login_log -f /home/postgres/login_log.sql testdb

 

     恢複

     psql  -U postgres -d testdb -f /home/postgres/login_log.sql

 


   2.pg_dumpall備份資料庫


    使用pg_dumpall備份整個伺服器的資料庫 

     備份

     pg_dumpall -U postgres -f /home/postgres/postgres.sql

     恢複

     psql -U postgres -f /home/postgres/postgres.sql

 

 

三、PostgreSQL 無須手動輸入密碼

     PostgreSQL裡沒有加入密碼選項,一般備份命令需要手動輸入密碼,所以會給自動備份帶來一定的不便。

查看了官方文檔,(英文不好,全程都翻譯/(ㄒoㄒ)/~~)

 

PGPASSWORD behaves the same as the password connection parameter. Use of this environment variable is not recommended for security reasons, as some operating systems allow non-root users to see process environment variables via ps; instead consider using the ~/.pgpass file (see Section 32.15).


PGPASSFILE specifies the name of the password file to use for lookups. If not set, it defaults to ~/.pgpass (see Section 32.15).

 

On Unix systems, the permissions on.pgpassmust disallow any access to world or group; achieve this by the command chmod 0600 ~/.pgpass. If the permissions are less strict than this, the file will be ignored. 

 

文檔中提到兩種方法;

    第一種方法:通過PostgreSQL的環境變數參數來實現儲存密碼。

      export PGPASSWORD="123456"

 

    第二種方法:建立 ~/.pgpass 檔案來儲存密碼

     密碼檔案的格式: hostname:port:database:username:password 

     cat ~/.pgpass 

     localhost:5432:testdb:postgres:123456

 

注意:根據官方文檔的說明,因為安全的原因,不推薦環境變數的方式,

      推薦使用~/.pgpass 來儲存密碼,此檔案必須設定0600許可權,如果許可權不那麼嚴格,則該檔案將被忽略。

      chmod 0600 ~/.pgpass







本文出自 “Linux營運-小墨” 部落格,請務必保留此出處http://xmomo.blog.51cto.com/5994484/1977529

PostgreSQL 資料庫的備份

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.