資料庫映象簡介

2021-06-08 09:33:07 字數 4385 閱讀 4583

from:

一、資料庫映象的優點

提高資料庫的可用性:發生災難時,在具有自動故障轉移功能的高安全性模式下,自動故障轉移可快速使資料庫的備用副本聯機(而不會丟失資料)。 在其他執行模式下,資料庫管理員可以選擇強**務(可能丟失資料),以替代資料庫的備用副本。

增強資料保護功能:資料庫映象提供完整或接近完整的資料冗餘,具體取決於執行模式是高安全性還是高效能。在 sql server 2008 enterprise 或更高版本上執行的資料庫映象夥伴會自動嘗試解決某些阻止讀取資料頁的錯誤。 無法讀取頁的夥伴會向其他夥伴請求新副本。 如果此請求成功,則將以新副本替換不可讀的頁,這通常會解決該錯誤。

提高生產資料庫在公升級期間的可用性:為了儘量減少映象伺服器的停機時間,您可以按順序公升級承載故障轉移夥伴的 sql server 例項。 這樣只會導致乙個故障轉移的停機時間。 這種形式的公升級稱為「滾動公升級」。

二、資料庫映象術語和定義

自動故障轉移 (automatic failover):一種過程,當主體伺服器不可用時,該過程將導致映象伺服器接管主體伺服器的角色,並使其資料庫的副本聯機以作為主體資料庫。

故障轉移夥伴 (failover partners):充當映象資料庫的角色切換夥伴的兩個伺服器例項(主體伺服器或映象伺服器)。

強**務 (forced service):是指在負責將服務傳輸到映象資料庫(但它處於未知狀態)的主體伺服器出現故障時資料庫所有者啟動的故障轉移。

高效能模式 (high-performance mode):資料庫映象會話非同步執行並僅使用主體伺服器和映象伺服器。 唯一的角色切換形式是強**務(可能造成資料丟失)。

高安全性模式 (high-safety mode):資料庫映象會話同步執行並可以選擇使用見證伺服器、主體伺服器和映象伺服器。

手動故障轉移 (manual failover):是指在負責將服務從主體資料庫傳輸到映象資料庫(處於同步狀態)的主體伺服器仍在執行時資料庫所有者啟動的故障轉移。

映象資料庫 (mirror database):通常與主體資料庫完全同步的資料庫副本。

映象伺服器 (mirror server):在資料庫映象配置中,映象資料庫所在的伺服器例項。

映象伺服器 (mirror server):在資料庫映象配置中,映象資料庫所在的伺服器例項。

主體資料庫 (principal database):資料庫映象中的一種讀寫資料庫,其事務日誌記錄將應用到資料庫的唯讀副本(映象資料庫)。

主體伺服器 (principal server):在資料庫映象中,是指當前作為主體資料庫的資料庫所屬於的夥伴。

重做佇列 (redo queue):收到的等待映象伺服器磁碟的事務日誌記錄。

角色 (role):主體伺服器和映象伺服器擔任互補的主體角色和映象角色。 也可以由第三個伺服器例項來擔任見證伺服器角色。

角色切換 (role switching):映象接管主體角色。

傳送佇列 (send queue):在主體伺服器的日誌磁碟累積的未傳送的事務日誌記錄。

會話 (session):是指主體伺服器、映象伺服器和見證伺服器(如果存在)之間進行資料庫映象期間形成的關係。映象會話啟動或繼續後,將累積在主體伺服器上的主體資料庫日誌記錄傳送給映象伺服器的過程,此過程將這些日誌記錄盡快寫入磁碟,以便與主體伺服器保持同步。

事務安全 (transaction safety):一種映象特定的資料庫屬性,用於確定資料庫映象會話是同步執行還是非同步執行。 有兩種安全級別:full 和 off。

見證伺服器 (witness):僅用於高安全性模式,sql server 的乙個可選例項,它能使映象伺服器識別何時要啟動自動故障轉移。 與這兩個故障轉移夥伴不同的是,見證伺服器並不能用於資料庫。 見證伺服器的唯一角色是支援自動故障轉移。

三、資料庫映象概述

資料庫映象維護乙個資料庫的兩個副本,這兩個副本必須駐留在不同的 sql server 資料庫引擎 伺服器例項上。 通常,這些伺服器例項駐留在不同位置的計算機上。 啟動資料庫上的資料庫映象操作時,在這些伺服器例項之間形成一種關係,稱為「資料庫映象會話」。

其中乙個伺服器例項使資料庫服務於客戶端(「主體伺服器」), 另乙個伺服器例項則根據映象會話的配置和狀態,充當熱備用或溫備用伺服器(「映象伺服器」)。 同步資料庫映象會話時,資料庫映象提供熱備用伺服器,可支援在已提交事務不丟失資料的情況下進行快速故障轉移。 未同步會話時,映象伺服器通常用作熱備用伺服器(可能造成資料丟失)。

在「資料庫映象會話」中,主體伺服器和映象伺服器作為「夥伴」進行通訊和協作。 兩個夥伴在會話中扮演互補的角色:「主體角色」和「映象角色」。 在任何給定的時間,都是乙個夥伴扮演主體角色,另乙個夥伴扮演映象角色。 每個夥伴擁有其當前角色。 擁有主體角色的夥伴稱為「主體伺服器」,其資料庫副本為當前的主體資料庫。 擁有映象角色的夥伴稱為「映象伺服器」,其資料庫副本為當前的映象資料庫。 如果資料庫映象部署在生產環境中,則主體資料庫即為「生產資料庫」。

資料庫映象涉及盡快將對主體資料庫執行的每項插入、更新和刪除操作「重做」到映象資料庫中。 重做通過將活動事務日誌記錄的流傳送到映象伺服器來完成,這會盡快將日誌記錄按順序應用到映象資料庫中。 與邏輯級別執行的複製不同,資料庫映象在物理日誌記錄級別執行。 從 sql server 2008 開始,在事務日誌記錄的流傳送到映象伺服器之前,主體伺服器會先將其壓縮。 在所有映象會話中都會進行這種日誌壓縮。

注意:給定的伺服器例項可以參與到多個具有相同或不同夥伴的併發資料庫映象會話中。 某個伺服器例項可能在某些會話中是夥伴,而在其他會話中則是見證伺服器。 映象伺服器例項必須正在執行 sql server 的相同版本。

1、執行模式

資料庫映象會話以同步操作或非同步操作執行。 在非同步操作下,事務不需要等待映象伺服器將日誌寫入磁碟便可提交,這樣可最大程度地提高效能。 在同步操作下,事務將在夥伴雙方處提交,但會延長事務滯後時間。

有兩種映象執行模式。 一種是「高安全性模式」,它支援同步操作。 在高安全性模式下,當會話開始時,映象伺服器將使映象資料庫盡快與主體資料庫同步。 一旦同步了資料庫,事務將在夥伴雙方處提交,這會延長事務滯後時間。

第二種執行模式,即「高效能模式」,非同步執行。 映象伺服器嘗試與主體伺服器傳送的日誌記錄保持同步。 映象資料庫可能稍微滯後於主體資料庫。 但是,資料庫之間的時間間隔通常很小。 但是,如果主體伺服器的工作負荷過高或映象伺服器系統的負荷過高,則時間間隔會增大。

在高效能模式中,主體伺服器向映象伺服器傳送日誌記錄之後,會立即再向客戶端傳送一條確認訊息。 它不會等待映象伺服器的確認。 這意味著事務不需要等待映象伺服器將日誌寫入磁碟便可提交。 此非同步操作允許主體伺服器在事務滯後時間最小的條件下執行,但可能會丟失某些資料。

所有資料庫映象會話都只支援一台主體伺服器和一台映象伺服器。具有自動故障轉移功能的高安全性模式要求使用第三個伺服器例項,稱為「見證伺服器」。 與這兩個夥伴不同的是,見證伺服器並不能用於資料庫。 見證伺服器通過驗證主體伺服器是否已啟用並執行來支援自動故障轉移。 只有在映象伺服器和見證伺服器與主體伺服器斷開連線之後而保持相互連線時,映象伺服器才啟動自動故障轉移。

注意:建立新的映象會話需要所有涉及的伺服器例項執行同一版本的 sql server。 但是,當公升級到 sql server 2008 或更高版本時,所涉及的例項的版本可能會不同。 

2、事務安全與執行模式

執行模式是非同步還是同步取決於事務安全設定。 如果專門使用 sql server management studio 來配置資料庫映象,則在您選擇執行模式時,將自動配置事務安全設定。

如果使用 transact-sql 配置資料庫映象,則必須了解如何設定事務安全。 事務安全由 alter database 語句的 safety 屬性控制。 在正在映象的資料庫中,safety 為 full 或 off。如果將 safety 選項設定為 full,則在初始同步階段後,資料庫映象操作將同步執行。 如果在高安全性模式下設定見證伺服器,則會話支援自動故障轉移。如果將 safety 選項設定為 off,則資料庫映象操作將非同步執行。 會話在高效能模式下執行,並且 witness 選項也應設定為 off。

3、角色切換

在資料庫映象會話上下文中,通常可以使用乙個稱為「角色切換」的過程來互換主體角色和映象角色。 角色切換涉及將主體角色轉換給映象伺服器的操作。 在角色切換中,映象伺服器充當主體伺服器的「故障轉移夥伴」。 進行角色切換時,映象伺服器將接管主體角色,並使其資料庫的副本聯機以作為新的主體資料庫。 以前的主體伺服器(如果有)將充當映象角色,並且其資料庫將變為新的映象資料庫。 這些角色可以反覆地來回切換。

4、存在以下三種角色切換形式。

自動故障轉移:這要求使用高安全性模式並具有映象伺服器和見證伺服器。 資料庫必須已同步,並且見證伺服器必須連線到映象伺服器。見證伺服器的作用是驗證給定的夥伴伺服器是否已啟動並執行。 如果映象伺服器與主體伺服器斷開連線,但見證伺服器仍與主體伺服器保持連線,則映象伺服器無法啟動故障轉移。 有關詳細資訊,請參閱資料庫映象見證伺服器。

手動故障轉移:這要求使用高安全性模式。 夥伴雙方必須互相連線,並且資料庫必須已同步。

強**務(可能造成資料丟失):在高效能模式和不帶自動故障轉移功能的高安全性模式下,如果主體伺服器出現故障而映象伺服器可用,則可以強**務執行。

SQL Server 2005資料庫映象簡介

sql server 2005資料庫映象簡介 自從sql server 2000以來,你已經能夠通過使用複製來建立乙個備用的伺服器 傳輸日誌,以及備份和重新儲存了 但是現在微軟又引入了乙個內建的工具,它可以實現自動的錯誤恢復。資料庫映象是sql server 2005的乙個新特性,它允許你將乙個sq...

資料庫簡介

1.網型 2.層次型 3.關係型 4.物件導向的關係型 5.物件導向型 dbms 資料庫管理系統 rdbms 關係型資料庫管理系統 rodbms 物件導向的關係型資料庫管理系統 現在比較流行的大型資料庫有oracle,sqlserver,sybase,db2,都採用了sql 結構化查詢語言 作為資料...

資料庫簡介

1.關係型資料庫 sql mysql資料庫是中小型企業使用的資料。主要是使用innnodb的引擎儲存資料 orcalr資料庫是大型企業使用的資料庫 甲骨文公司 mariadb資料庫是把mysql的閉源漏洞在論壇上修復後的版本,使用時xtradb引擎 sql server是微軟設計的一種針對windo...