MS SQL Server - 高可用性技術



高可用性 (HA) 是一種解決方案/流程/技術,用於使應用程式/資料庫在計劃內或計劃外中斷期間保持 24x7 全天候可用。

在 MS SQL Server 中,主要有五種方法可以實現資料庫的高可用性解決方案。

複製

源資料將透過複製代理(作業)複製到目標。物件級技術。

術語

  • 釋出伺服器是源伺服器。
  • 分發伺服器是可選的,它為訂閱伺服器儲存複製的資料。
  • 訂閱伺服器是目標伺服器。

日誌傳送

源資料將透過事務日誌備份作業複製到目標。資料庫級技術。

術語

  • 主伺服器是源伺服器。
  • 輔助伺服器是目標伺服器。
  • 監控伺服器是可選的,將監控日誌傳送狀態。

映象

主要資料將透過網路事務,藉助映象端點和埠號複製到輔助伺服器。資料庫級技術。

術語

  • 主伺服器是源伺服器。
  • 映象伺服器是目標伺服器。
  • 見證伺服器是可選的,用於實現自動故障轉移。

叢集

資料將儲存在共享位置,該位置由主伺服器和輔助伺服器根據伺服器的可用性使用。例項級技術。需要使用共享儲存的 Windows 叢集設定。

術語

  • 活動節點是 SQL 服務正在執行的節點。
  • 被動節點是 SQL 服務未執行的節點。

AlwaysOn 可用性組

主要資料將透過網路事務複製到輔助伺服器。資料庫級技術組。需要不使用共享儲存的 Windows 叢集設定。

術語

  • 主副本是源伺服器。
  • 輔助副本是目標伺服器。

以下是配置 HA 技術(映象和日誌傳送)的步驟,叢集、AlwaysOn 可用性組和複製除外。

步驟 1 - 對源資料庫進行一次完全備份和一次事務日誌備份。

示例

要為“TESTINSTANCE”中的資料庫“TestDB”配置映象/日誌傳送,並將“TESTINSTANCE”作為主伺服器,“DEVINSTANCE”作為輔助 SQL Server,請編寫以下查詢以在源(TESTINSTANCE)伺服器上進行完全備份和事務日誌備份。

連線到“TESTINSTANCE”SQL Server 並開啟新的查詢,編寫以下程式碼並執行,如下面的螢幕截圖所示。

Backup database TestDB to disk = 'D:\testdb_full.bak'
GO
Backup log TestDB to disk = 'D:\testdb_log.trn'

HA Technologies

步驟 2 - 將備份檔案複製到目標伺服器。

在本例中,我們只有一個物理伺服器和兩個已安裝的 SQL Server 例項,因此無需複製,但如果兩個 SQL Server 例項位於不同的物理伺服器上,我們需要將以下兩個檔案複製到安裝了“DEVINSTANCE”例項的輔助伺服器的任何位置。

HA Technologies

步驟 3 - 使用“norecovery”選項在目標伺服器上使用備份檔案還原資料庫。

示例

連線到“DEVINSTANCE”SQL Server 並開啟新的查詢。編寫以下程式碼以還原名為“TestDB”的資料庫,該資料庫與主資料庫(“TestDB”)的名稱相同,用於資料庫映象。但是,我們可以為日誌傳送配置提供不同的名稱。在本例中,讓我們使用“TestDB”資料庫名稱。對兩次(完全備份和事務日誌備份檔案)還原使用“norecovery”選項。

Restore database TestDB from disk = 'D:\TestDB_full.bak'
with move 'TestDB' to 'D:\DATA\TestDB_DR.mdf',
move 'TestDB_log' to 'D:\DATA\TestDB_log_DR.ldf',
norecovery
GO
Restore database TestDB from disk = 'D:\TestDB_log.trn' with norecovery

HA Technologies

重新整理“DEVINSTANCE”伺服器中的資料庫資料夾,檢視已還原的資料庫“TestDB”,其還原狀態如下面的快照所示。

HA Technologies

步驟 4 - 根據您的需求配置 HA(日誌傳送、映象),如下面的快照所示。

示例

右鍵單擊作為主伺服器的“TESTINSTANCE”SQL Server 的“TestDB”資料庫,然後單擊“屬性”。將出現以下螢幕。

HA Technologies

步驟 5 - 選擇名為“映象”或“事務日誌傳送”的選項(如上圖紅色框中所示),根據您的需求,然後按照系統本身引導的嚮導步驟完成配置。

廣告