邏輯複製從拷貝發布者資料庫上的資料庫快照開始。拷貝一旦完成,發布者上的更改會在它們發生時實時傳送給訂閱者。訂閱者按照資料在發布者上被提交的順序應用資料,這樣任意單一訂閱中的publication的事務一致性才能得到保證。
訂閱者資料庫上的應用程序總是將session_replication_role
設定為replica執行,這會產生觸發器和約束上通常的效果。
邏輯複製應用程序當前僅會引發行觸發器,而不會引發語句觸發器。不過,初始的表同步是以類似乙個copy命令的方式實現的,因此會引發insert的行觸發器和語句觸發器。
已有的被訂閱表中的初始資料會被快照並且以一種特殊型別的應用程序的並行例項進行拷貝。這種程序將建立自己的臨時複製槽並且拷貝現有的資料。一旦現有的資料被拷貝完,工作者會進入到同步模式,主應用程序會流式傳遞在使用標準邏輯複製拷貝初始資料期間發生的任意改變,這會確保表被帶到一種已同步的狀態。一旦同步完成,該錶的複製的控制權會被交回給主應用程序,其中複製會照常繼續。
資料庫PostrageSQL 啟動資料庫伺服器
在任何人可以訪問資料庫前,你必須啟動資料庫伺服器。資料庫伺服器程式是postgres,它必須知道在 能找到它要用的資料。這是用 d選項實現的。因此,啟動伺服器最簡單的方法是 postgres d usr local pgsql data這將把伺服器放在前台執行。這個步驟同樣必須以postgresql...
資料庫PostrageSQL 鎖管理
deadlock timeout integer 這是進行死鎖檢測之前在乙個鎖上等待的總時間 以毫秒計 死鎖檢測相對昂貴,因此伺服器不會在每次等待鎖時都執行這個它。我們樂觀地假設在生產應用中死鎖是不常出現的,並且只在開始檢測死鎖之前等待一會兒。增加這個值就減少了浪費在無用的死鎖檢測上的時間,但是減慢...
資料庫PostrageSQL 預置選項
下列 引數 是唯讀的,它們是在編譯或安裝postgresql時決定的。同樣,它們被排除在postgresql.conf檔案例子之外。這些選項報告特定應用可能感興趣的多種postgresql行為,特別是管理前端相關的行為。block size integer 報告乙個磁碟塊的大小。它由編譯伺服器時bl...