Ubuntu
通過 ssh 導入遠端 postgresql 數據庫?
我有兩台機器:
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 作業來導入數據庫。
如果卡住 - 讓我知道。