AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

壓力很大嗎?可以考慮移動下 WAL 日志目錄

來源: 責編: 時間:2024-05-09 09:28:33 158觀看
導讀每個提交的事務都會記錄 WAL,以確保持久性。這可確保您的 PostgreSQL 實例可以執行崩潰恢復,并避免丟失任何已提交的事務。當 full_page_writes 設置為 ON 時,PostgreSQL 會將每個磁盤頁面的全部內容以及行級更改寫入 WA

每個提交的事務都會記錄 WAL,以確保持久性。這可確保您的 PostgreSQL 實例可以執行崩潰恢復,并避免丟失任何已提交的事務。當 full_page_writes 設置為 ON 時,PostgreSQL 會將每個磁盤頁面的全部內容以及行級更改寫入 WAL。這對于安全的崩潰恢復非常重要。但是,這可能會將更多數據寫入 WAL。pPx28資訊網——每日最新資訊28at.com

將 WAL 寫入和包含表/索引的數據目錄相同的磁盤,可能會給繁忙的事務數據庫帶來 I/O 瓶頸。因此,如果您觀察到有大量 WAL 生成(由于大量 DML)導致服務器中的 I/O 等待,我們始終建議您將 WAL 目錄移動到一個新的磁盤。pPx28資訊網——每日最新資訊28at.com

準備工作

要將 WAL 移動到一個其他目錄,我們必須重新啟動 PostgreSQL 服務器。這可能會導致停機,因此需要適當規劃。此外,請確保在新的 pg_wal 目錄中規劃有足夠的存儲空間,用于存儲啟用復制槽時給備用數據庫應用的所有 WAL 段。我們必須這樣做,因為當使用復制槽時,尚未確認為備用數據庫已應用的 WAL 段,不會從主數據庫的 pg_wal 目錄中刪除。如果長時間未注意到這種情況,這可能會累積多個 GB 的 WAL 段。pPx28資訊網——每日最新資訊28at.com

操作步驟

以下步驟可用于將 pg_wal 移動到新位置:pPx28資訊網——每日最新資訊28at.com

1. 在新磁盤上創建一個新目錄,并將所有權分配給 Postgres:pPx28資訊網——每日最新資訊28at.com

# mkdir -p /wals# chown postgres:postgres /wals

2. 停止 PostgreSQL 實例(如果該實例已在運行):pPx28資訊網——每日最新資訊28at.com

$ pg_ctl -D $PGDATA stop -mf

3. 如果您想避免由于大量 WAL 而導致的更長停機時間,請跳過步驟 2 繼續執行步驟 3b。否則,請繼續執行步驟 3a:pPx28資訊網——每日最新資訊28at.com

3a. 將 pg_wal 中的所有現有 WAL 和 archive_status 目錄,移動到另一個磁盤上的新目錄。確保 pg_wal 為空,并且所有內容都移動到了新目錄:pPx28資訊網——每日最新資訊28at.com

$ mv $PGDATA/pg_wal/* /wals

3b. 使用 rsync 避免在將大量 WAL 段復制到其他磁盤時出現超長的停機時間:pPx28資訊網——每日最新資訊28at.com

$ rsync -avzh $PGDATA/pg_wal/ /wals$ pg_ctl -D $PGDATA stop -mf$ rsync -avzh $PGDATA/pg_wal/ /wals

4. 刪除舊的 WAL 目錄后,創建一個符號鏈接:pPx28資訊網——每日最新資訊28at.com

$ rmdir $PGDATA/pg_wal$ ln -s /wals pg_wal$ ls -alrth pg_wallrwxrwxrwx. 1 postgres postgres 5 Nov 10 00:16 pg_wal -> /wals

5. 立即啟動 PostgreSQL 實例:pPx28資訊網——每日最新資訊28at.com

$ pg_ctl -D $PGDATA start

這樣,您就成功地將 WAL 目錄移動到了另一個位置。pPx28資訊網——每日最新資訊28at.com

怎么做到的...

要移動 pg_wal,我們必須向服務器添加一個新磁盤,并創建將在其中存儲 WAL 段的新目錄。我們還需要確保為目錄授予適當的權限,如步驟 1 所示。由于這需要您關閉 Postgres 服務器以移動 WAL 目錄,因此我們可以使用類似于步驟 2 中所示的命令,來關閉 Postgres。pPx28資訊網——每日最新資訊28at.com

如果您有大量的 WAL 段,則可以通過跳過此步驟繼續執行步驟 3b,來避免更長的停機時間。如果沒有,您可以使用步驟 3a,簡單地將現有 pg_wal 目錄的所有內容移動到新的目錄。pPx28資訊網——每日最新資訊28at.com

如果您希望避免超長的停機時間,并希望跳過步驟 2 和 3a,則只需使用步驟 3b,它使用 rsync 將所有現有的 WAL 段從 pg_wal 復制到新的 WAL 目錄。完成后,我們可以簡單地關閉 Postgres,并再次使用 rsync 來復制新生成的 WAL 段。 移動完所有 WAL 段后,刪除舊的 WAL 目錄,并創建指向新目錄的符號鏈接,如步驟 4 所示。pPx28資訊網——每日最新資訊28at.com

正如我們所看到的,pg_wal 不會從數據目錄中永久刪除。相反,一個指向我們要將 WAL 移動到的新目錄的符號鏈接會創建出來。創建符號鏈接后,我們可以啟動 PostgreSQL,如步驟 5 所示,開始將新生成的 WAL 段寫入新的 WAL 目錄。pPx28資訊網——每日最新資訊28at.com

如果您有一個具有 1 個主節點和 1 個或多個備節點的高可用集群,則可以以滾動方式或一次性執行所有步驟。在復制集群的每個服務器中具有不同的位置,一直是可以的。 因此,您可以停止所有服務器并執行這些步驟,或者在一臺又一臺服務器上執行這些步驟。pPx28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-87505-0.html壓力很大嗎?可以考慮移動下 WAL 日志目錄

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 從未有過的Kubectl指南

下一篇: SeaweedFS:基于Go語言實現次世代的分布式存儲解決方案

標簽:
  • 熱門焦點
Top