自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)庫系統(tǒng)中何時使用預寫式日志和邏輯復制

數(shù)據(jù)庫 其他數(shù)據(jù)庫
預寫日志 (WAL) 和邏輯復制在實現(xiàn)數(shù)據(jù)庫系統(tǒng)中的可用性、災難恢復和可擴展性方面發(fā)揮著作用。WAL非常適合優(yōu)先考慮數(shù)據(jù)一致性且對性能有影響的場景,例如災難恢復設置。另一方面,邏輯復制提供了對復制行為的靈活性與控制,使其非常適合具有不同需求的復雜環(huán)境。

建議將預寫日志 (WAL) 與復制結(jié)合在混合一致性模型中,以實現(xiàn)需要容錯能力的彈性系統(tǒng)。

譯自Here’s When To Use Write-Ahead Log and Logical Replication in Database Systems,作者 Raja Chattopadhyay。

在數(shù)據(jù)庫復制方面,兩種廣泛使用的方法是預寫式日志 (WAL) 和邏輯復制。這些技術對于維護數(shù)據(jù)可用性、促進災難恢復和擴展數(shù)據(jù)庫系統(tǒng)至關重要。由于結(jié)構(gòu)、功能和實際應用的不同,需要不同的策略來掌握它們的優(yōu)點和局限性。

預寫式日志 (WAL)

預寫式日志 (WAL) 這種方法通常用于數(shù)據(jù)庫系統(tǒng)中,例如PostgreSQL。它涉及利用存儲在 WAL 文件中的修改流,將數(shù)據(jù)從數(shù)據(jù)庫復制到一個或多個輔助副本。以下是它的分解方式:

在 WAL 中,主數(shù)據(jù)庫通過在數(shù)據(jù)文件中最終確定所有更改之前將其記錄到其預寫式日志 (WAL) 文件中來保證持久性。然后,輔助副本從服務器獲取這些 WAL 文件,并按順序?qū)⑵鋺玫剿鼈冏约旱臄?shù)據(jù)文件中。這種復制技術需要輔助服務器之間的異步通信,以維護整個系統(tǒng)中數(shù)據(jù)的一致性和可靠性。

WAL 通過從數(shù)據(jù)庫的事務日志中復制更改來維護數(shù)據(jù)完整性和一致性。此過程確保復制的數(shù)據(jù)與數(shù)據(jù)保持同步,從而確保整個過程的完整性。此外,WAL 支持時間點恢復,允許備用服務器重放特定時間段的 WAL 文件,從而在發(fā)生故障或數(shù)據(jù)損壞時實現(xiàn)恢復。在主服務器不可用的故障轉(zhuǎn)移事件中,WAL 通過使用最新的 WAL 文件提升備用服務器成為新的主服務器,從而實現(xiàn)轉(zhuǎn)換,以持續(xù)運行。

WAL 通過復制主數(shù)據(jù)庫事務日志中的更改來維護數(shù)據(jù)完整性和一致性,從而在復制期間保持數(shù)據(jù)完整性。此方法還會影響數(shù)據(jù)庫的性能,因為更改首先記錄在 WAL 文件中,然后才應用到數(shù)據(jù)文件中。這種方法允許主數(shù)據(jù)庫高效運行并在負載下寫入。此外,WAL 非常適合災難恢復場景,因為備用服務器會不斷更新數(shù)據(jù)庫中的更改,確保它們是最新的,并準備好在服務器故障時接管。確保數(shù)據(jù)庫系統(tǒng)的可靠備份計劃可保證災難恢復措施。

在使用 WAL 時,為了使復制有效,必須意識到一些缺點。有時,由于網(wǎng)絡延遲或高活動級別,備用副本落后于服務器時,可能會發(fā)生復制滯后。此滯后會導致備用服務器上的數(shù)據(jù)出現(xiàn)差異,從而影響數(shù)據(jù)一致性。此外,在某些情況下,可能需要手動步驟將服務器指定為新的主服務器。此手動過程可能會導致延遲。它需要參與,可能會延長恢復操作所需的時間。

邏輯復制

另一方面,邏輯復制是一種用于 PostgreSQL、MySQL 和MongoDB等數(shù)據(jù)庫系統(tǒng)中的技術。它在復制 SQL 語句或數(shù)據(jù)修改的級別上運行。與在字節(jié)級別復制更改的 WAL 不同,邏輯復制提供了一種同步數(shù)據(jù)的方法。此方法由于其設計和功能而具有不同的優(yōu)點和挑戰(zhàn)。

在復制中,主數(shù)據(jù)庫將一組更改(可能包括 SQL 語句或行修改)發(fā)送到副本服務器。這些更改集通常通過副本服務器之間的復制連接傳輸。在收到這些更改集后,副本服務器通過執(zhí)行 SQL 語句或應用修改將其實現(xiàn)到它們的數(shù)據(jù)集中。此方法允許備份服務器通過鏡像其數(shù)據(jù)集中的更改來保持與數(shù)據(jù)庫的更新。邏輯復制通常在發(fā)布者向訂閱者分發(fā)更改的模型上運行,從而實現(xiàn)復制設置和可擴展性選項。

與 WAL 等方法相比,邏輯復制提供了優(yōu)勢。首先,它提供復制的優(yōu)勢,允許復制表或數(shù)據(jù)庫,而不是所有更改,從而提高了靈活性和效率。其次,它啟用復制,便于跨數(shù)據(jù)庫類型進行同步,這在擁有不同系統(tǒng)的環(huán)境中特別有用。此外,邏輯復制授予對復制行為的控制,包括沖突解決和數(shù)據(jù)轉(zhuǎn)換,從而實現(xiàn)準確的數(shù)據(jù)同步管理。根據(jù)設置的不同,邏輯復制可以異步或同步地運行,從而提供根據(jù)要求優(yōu)先考慮性能或數(shù)據(jù)一致性的選項。這些功能使復制成為在分布式系統(tǒng)中維護同步數(shù)據(jù)的有力工具。

邏輯復制通過允許管理員選擇要復制哪些數(shù)據(jù)以便進行有針對性的同步,為管理員提供了靈活性。此功能通過復制數(shù)據(jù)表或數(shù)據(jù)庫并減少不必要的工作負載來簡化此過程。此外,它對復制的支持促進了數(shù)據(jù)庫類型之間的同步——促進了組織內(nèi)各種系統(tǒng)之間無縫的數(shù)據(jù)遷移和集成。此外,通過復制過程中的數(shù)據(jù)轉(zhuǎn)換,邏輯復制允許在必要時進行格式調(diào)整或數(shù)據(jù)清理。此功能可確保信息在系統(tǒng)中保持統(tǒng)一和兼容,從而提高數(shù)據(jù)質(zhì)量和可用性。

雖然邏輯復制提供了好處,它也帶來了它的挑戰(zhàn)。首先,它通常需要與 WAL 等方法相比的資源。解析和執(zhí)行 SQL 命令的過程可能會給系統(tǒng)性能帶來壓力。此外,如果復制過程因事務負載或網(wǎng)絡延遲而落后,則存在數(shù)據(jù)不一致的可能性,這可能導致主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間出現(xiàn)差異。配置和管理復制設置可能比使用 WAL 等方法更復雜。這種復雜性需要進行規(guī)劃和監(jiān)視,以確保復制系統(tǒng)運行。

比較 WAL 和邏輯復制

WAL 通常由于其成本而更受青睞,因為它以字節(jié)級復制更改,這更有效率。另一方面,邏輯復制在處理大量數(shù)據(jù)量或復雜 SQL 命令時可能會導致費用。這種成本的增加可歸因于分析和處理 SQL 命令的必要性,在進行大量數(shù)據(jù)修改或使用復雜查詢的情況下,這會消耗資源。

數(shù)據(jù)一致性

WAL 通過復制事務日志中的更改來保證數(shù)據(jù)一致性,確保副本與主數(shù)據(jù)庫保持同步。相比之下,邏輯復制可能會出現(xiàn)一致性問題,主要是由于復制來自數(shù)據(jù)庫的更改時有延遲。這可能會導致主數(shù)據(jù)庫上更改的時間與副本上反映更改的時間之間存在時間差,從而可能導致兩個數(shù)據(jù)庫之間出現(xiàn)差異。即便如此,一旦復制趕上,數(shù)據(jù)一致性將重新建立。

靈活度

邏輯復制以其適應性和靈活性而聞名,它能夠選擇復制哪些數(shù)據(jù)并支持環(huán)境類型。通過復制,管理員可以根據(jù)自己的要求選擇表或數(shù)據(jù)庫進行復制,自定義同步。此外,它允許在數(shù)據(jù)庫類型之間進行復制,簡化了跨平臺的數(shù)據(jù)遷移和系統(tǒng)集成的過程。另一方面,WAL 遵循數(shù)據(jù)復制方法。它以字節(jié)級別復制所有更改,而無法選擇性地復制數(shù)據(jù)元素。此外,它需要在備用服務器上使用數(shù)據(jù)庫引擎,這限制了它在混合數(shù)據(jù)庫技術環(huán)境中的效率。

AWS RDS PostgreSQL 的主動-主動復制擴展

Amazon RDS 上適用于 PostgreSQL 的 PGActive Active Active 復制擴展允許多個 RDS 實例同時處理讀寫操作,通過復制和沖突解決技術確保數(shù)據(jù)一致性。此擴展允許管理員選擇性地復制數(shù)據(jù)和支持環(huán)境,以及針對 Amazon RDS 上 PostgreSQL 數(shù)據(jù)庫的可用性和可擴展性,提供自動故障轉(zhuǎn)移和負載均衡功能。

結(jié)論

預寫日志 (WAL) 和邏輯復制在實現(xiàn)數(shù)據(jù)庫系統(tǒng)中的可用性、災難恢復和可擴展性方面發(fā)揮著作用。WAL非常適合優(yōu)先考慮數(shù)據(jù)一致性且對性能有影響的場景,例如災難恢復設置。另一方面,邏輯復制提供了對復制行為的靈活性與控制,使其非常適合具有不同需求的復雜環(huán)境。

架構(gòu)師和管理員必須了解差異,才能設計出有彈性的數(shù)據(jù)庫復制設置。建議將預寫日志 (WAL) 與復制結(jié)合起來,在混合一致性模型中,這適用于需要容錯的高彈性系統(tǒng)。

責任編輯:武曉燕 來源: 云云眾生s
相關推薦

2022-04-05 13:46:21

日志數(shù)據(jù)庫系統(tǒng)

2011-02-28 17:12:20

Oracle數(shù)據(jù)庫

2011-03-21 14:27:15

數(shù)據(jù)庫優(yōu)化業(yè)務邏輯設計

2022-08-01 18:33:45

關系型數(shù)據(jù)庫大數(shù)據(jù)

2011-05-19 09:18:48

分布式數(shù)據(jù)庫

2011-03-24 17:15:06

分布式數(shù)據(jù)庫系統(tǒng)

2021-10-26 00:33:00

分布式數(shù)據(jù)庫系統(tǒng)

2011-04-13 15:25:12

數(shù)據(jù)庫系統(tǒng)設計

2011-04-13 15:07:30

數(shù)據(jù)庫系統(tǒng)設計

2010-08-30 14:31:43

Cache

2010-02-24 16:02:45

PerstSilverlight

2011-05-12 11:14:08

數(shù)據(jù)庫SQL設計編程誤區(qū)

2011-04-13 15:17:09

數(shù)據(jù)庫系統(tǒng)設計

2011-06-07 17:01:44

2019-03-01 18:27:09

MySQL安裝數(shù)據(jù)庫

2011-02-25 13:49:12

2010-04-22 11:34:21

Oracle數(shù)據(jù)庫

2011-07-26 14:56:03

數(shù)據(jù)庫發(fā)展

2010-07-11 18:42:17

CassandraTwitter

2023-12-20 16:12:37

數(shù)據(jù)庫復制延遲
點贊
收藏

51CTO技術棧公眾號