Ubuntu

通過 ssh 導入遠端 postgresql 數據庫?

  • November 16, 2010

我有兩台機器:

  • Remote, Ubuntu 伺服器, example.com, 數據庫: staging(owner user2, pass2), user1 (sudoer) 通過 ssh 無密碼登錄
  • Local, Ubuntu, localhost, 數據庫: local(所有者 user3, pass3)

問題是:

  • 如何在一個命令/腳本中將數據和staging數據庫結構導入local(反之亦然)?
  • 如何設置權限?

這些不是生產數據庫,所以我不需要實時同步。我只需要自動執行psql任務(通常通過轉到 phppgadmin 來完成,將數據導出到文件,通過 導入文件中的數據psql,全部來自Local機器)。

最好的解決方案是獨立於數據庫所有者/密碼,因為我有幾對這樣的數據庫。我在兩台機器上都有 root 訪問權限,我可以安裝任何其他所需的使用者帳戶/軟體。

可能很簡單,只需編寫數據庫轉儲腳本,然後將文件傳輸到其他數據庫伺服器,然後恢復:

數據庫管理員可以使用 PostgreSQL 伺服器中的“pg_dump”實用程序將數據庫的轉儲或備份放入文件中。pg_dump 的語法是:

pg_dump 數據庫名 -f 輸出文件 -i -x -O -R -S 使用者名

我不完全是這個腳本的粉絲http://www.wisdombay.com/articles/pg_dmp.sh 但它應該適合你。

我謹慎的原因是 - 因為它包含您的登錄名/密碼

現在只需 scp 到備份伺服器並執行 cron 作業來導入數據庫。

如果卡住 - 讓我知道。

引用自:https://serverfault.com/questions/202560