描述預寫記錄

已完成

在資料庫中進行變更時,例如 INSERTS 或 DELETES,這些變更會先寫入記錄,然後才寫入資料檔案。 這項作業稱為預寫記錄檔,因為變更會先寫入記錄,再將其認可至資料檔案。 如果發生問題,例如失去電源,則記錄一律會保存最新的資料,且可用來確保資料庫處於一致狀態。

第二個優點是先將變更寫入記錄,即可以批次方式寫入資料表和索引的變更,而不是個別寫入。 此程序可減少讓資料表和索引保持在最新狀態所需的磁碟寫入數目。 寫入記錄的速度很快,因為它們會循序完成。 放慢資料表和索引的寫入速度,可以安全地以批次方式完成,因為所有資料都可以從記錄復原。 針對通常涉及許多小型更新的工作負載,效能會改善。

注意

針對 PostgreSQL 的內部部署實作,記錄檔會儲存在 pg_wal 目錄中。 適用於 PostgreSQL 的 Azure 資料庫不提供檔案系統的存取權,因此您不需要擔心記錄檔的實體儲存體。

有數個伺服器參數可讓您控制預寫記錄的運作方式,並針對您的工作負載予以最佳化:

  • commit_delay - 交易認可和排清磁碟記錄之間的延遲。
  • wal_buffers - 預寫記錄 (WAL) 之共用記憶體中磁碟頁面緩衝區的數目。
  • max_wal_size - 當 WAL 成長到大小上限後,就會觸發自動檢查點。
  • wal_writer_delay - WAL 寫入器所執行 WAL 排清之間的時間間隔。
  • wal_compression - 是否壓縮 WAL 檔案中的全頁寫入。
  • wal_level - 決定將多少資訊寫入 WAL。 允許的值是 REPLICA 或 LOGICAL。

還原時間點

預寫記錄檔 (WAL) 的主要用途是確保發生損毀時的資料庫一致性和持久性。 PostgreSQL 的內部部署版本允許使用記錄作為封存,讓您使用組態設定 archive_modearchive_command 來還原到某個時間點。

適用於 PostgreSQL 的 Azure 資料庫是一項受管理的服務,不允許存取基礎檔案系統。 不過,它確實包含涵蓋所有資料庫之伺服器的自動完整備份。 此備份可讓您將資料重新建立至某個時間點。 備份會自動排程,每天完成一次。 如果您需要還原,則最多可以還原您指定保留備份的天數,最多 35 天。 若要指定應保留備份的時間長度:

  1. 在 Azure 入口網站中,瀏覽至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器。
  2. 從 [概觀] 區段中,選取您的 [設定]
  3. 在 [備份] 下,尋找 [備份保留期間 (天)]。 滑動軸可讓您選取要保留備份的天數。
  4. 選取 [儲存] 以保留變更。