2016-11-22 51 views
1

我們使用Postgres(9.3)Hot Standby構建數據庫的只讀副本。我們有一個從物化視圖讀取的UI。Postgres具有熱備份的物化視圖

當我們嘗試從備用數據庫中的物化視圖讀取時,查詢掛起。

物化視圖在master數據庫中重建需要10秒鐘。我們已經等待了超過30分鐘的備用數據庫中的查詢,它似乎永遠不會完成。

值得注意的是,物化視圖確實存在於備用數據庫中。我們無法刷新它(因爲數據庫只讀)

我們無法在文檔中找到任何指示物化視圖無法用於備用數據庫的情況,但似乎是這種情況。

有沒有人得到這個工作,和/或什麼是推薦的解決方法?

+0

在9.5中適合我。什麼['pg_stat_activity.waiting'](https://www.postgresql.org/docs/9.3/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW)對你的備用查詢說?您在哪裏/何時/如何刷新您對小學的看法?你的查詢是否涉及其他表? –

+0

可能是一個鎖定問題。如果會話正在等待其他人持有的鎖,請查看「pg_locks」。 –

+0

@LaurenzAlbe是的。恢復過程中有一個獨佔鎖。這似乎是一個問題,因爲這個過程總是在運行。不知道該怎麼辦? –

回答

0

根據PostgreSQL的文檔 - Hot Standby有通過向

max_standby_archive_delay & max_standby_streaming_delay

定義在WAL應用程序中的最大允許延時分配正確的價值觀來處理查詢衝突的方式。在你的情況下,高價值可能更可取。