Postgresql

更改副本上的角色

  • June 9, 2021

我有一個主伺服器,有一個輔助伺服器複製它。

我想將角色從 LOGIN 更改為 NOLOGIN。

我可以在主伺服器上輕鬆完成此操作,但更改不會復製到輔助伺服器,我無法在輔助伺服器上更改它:

postgres=# ALTER ROLE myrolename WITH NOLOGIN;
ERROR:  cannot execute ALTER ROLE in a read-only transaction

有一個簡單的解決方案嗎?

如果複製正常,它肯定會複製。但是必須等待所有 WAL 才能重播,它不能插隊。但是來自使用者的現有連接不會被切斷,只會阻止新的連接。

您還可以編輯副本的 pg_hba 以專門阻止該使用者,這根本不依賴於主伺服器。

此更改肯定會復製到備用數據庫。如果沒有,這意味著複製被破壞或滯後。有關更多資訊,請參閱備用伺服器上的日誌。

引用自:https://dba.stackexchange.com/questions/294000