簡體   English   中英

pg_restore 運行時如何鎖定數據庫

[英]How to lock Data Base when pg_restore runs

在運行 pg_restore 時,我們會遇到來自其他一些程序的一些(意外)執行,從而導致還原錯誤。

有沒有辦法在恢復時鎖定數據庫以確保不進行任何修改?

這是執行的命令:

pg_restore --clean --verbose --no-owner /home/postgres/backup/bkp --if-exists -j 7 -d restdb01 -p 5432

pg_restore的 PostgreSQL 文檔不提供此類功能的任何信息。

根據wiki postgresql 不支持數據庫鎖定。

我建議使用權限機制來防止任何連接到數據庫的人被恢復:

  1. 創建一個新的數據庫。
  2. 將對該數據庫的 CONNECT 權限授予 pg_restore 命令中使用的單個用戶 (--username=db-admin)。
  3. 恢復。
  4. 將所有必需的權限添加到數據庫。

除非您有應用程序以超級用戶身份連接到服務器,否則將阻止應用程序讀取或更改

  • 撤銷數據庫的連接權限或拒絕pg_hba.conf中的連接(請記住,默認情況下, PUBLIC可以連接到數據庫)

  • 使用pg_terminate_backend取消所有現有的連接

  • 以仍然可以連接到數據庫的用戶身份運行pg_restore

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM