Sql-Server

我應該將我的 SQL Server 備份解除安裝到輔助副本嗎?

  • February 28, 2022

我的生產伺服器沒有足夠的馬力在本地執行備份而不會對生產造成影響。我想將它們解除安裝到我的次要副本,以釋放我的主要資源。

我的一般問題和疑慮是:

  1. 我可以對我的次要副本進行哪些類型的備份?
  2. 我今天進行差異備份,這將如何工作?
  3. 這將如何影響我的 RPO/RTO?
  4. 如何配置備份首選項?
  5. 我已經配置了備份首選項,但沒有得到遵守。我做錯什麼了?
  6. 完整性檢查呢?我不應該把那些我備份的地方拿走嗎?
  7. 我會破壞我的日誌鏈嗎?
  8. 我是否應該考慮解除安裝我的備份,還是應該考慮其他替代方案?

您可以對次要副本進行的備份類型

您可以進行僅複製完整備份和日誌備份。您不能在輔助副本上進行傳統的完整備份,因為數據庫是只讀的,並且 SQL Server 無法清除差異點陣圖示誌。

仍想進行差異備份

您必須在您的主副本以及完整備份上執行此操作。請記住,您只能在輔助副本上進行僅複製完整備份。為了能夠重置差異點陣圖示誌,您必須在主伺服器上執行此操作。

對 RPO/RTO 的影響

根據您進行備份的位置,您的 RPO/RTO 可能會受到很大影響。輔助副本的同步化可能會落後。當您的備份作業應該正在執行時,可以重新啟動輔助複製,以及這些備份可能變得不可靠的六個其他原因中的任何一個。沒有什麼比計劃一個 15 分鐘的 RPO 更糟糕的了,只是發現您的次要副本比上次執行事務日誌備份時晚了 30 分鐘。

配置備份首選項

這在可用性組嚮導中很容易設置。你有幾個選擇。

  1. 首選輔助 - 如果您希望將備份解除安裝到輔助副本,這是最常見的設置。
  2. 僅次要 - 請注意,如果您選擇此設置並且在執行備份作業時沒有可用的次要副本,它們將不會在該時間段內執行。
  3. Primary - 這是一個非常安全的設置。如果您沒有線上主節點並且可以進行備份,那麼您需要處理的問題比備份首選項要大。
  4. 任何副本 - 我會避免這個。您要麼希望備份在主節點或輔助節點上執行。想要你不想要的是它們在兩者之間隨機翻轉。

設置首選項後,您需要設置優先級。這是一個 (0-100),0 是最低的,100 是最高的。此設置有助於避免同時在所有次要副本上執行備份,每個次要副本都認為它們是最高優先級。通常,您會將一個副本設置為 100,並酌情減少其他副本。

我已經配置了備份首選項,但沒有得到遵守。我做錯什麼了?

僅設置備份首選項和優先級並不足以確保您的備份在您認為的位置執行。您的備份作業必須了解此設置。本質上,根據您的可用性配置這些值只會通過名為**sys.fn_hadr_backup_is_preferred_replica (‘dbname’)**的系統函式公開這些設置。在嘗試對任何數據庫進行備份之前,您需要確保備份作業正在檢查此函式的結果。

完整性檢查呢?我不應該把那些我備份的地方拿走嗎?

是的,您確實希望在進行備份的地方執行完整性檢查,以便您知道您有可以恢復的有效備份。但是,在可用性組中,您實際上需要確保對所有副本執行完整性檢查,而不管您將備份放在哪裡。僅在輔助副本上執行完整性檢查和備份並不能保證主副本上沒有損壞。您的輔助副本僅從主副本獲取事務日誌詳細資訊。他們不知道主數據庫是否有損壞的頁面位於磁碟上。如果您還沒有在主節點上執行完整性檢查,它可能會在數週、數月或更長時間內未被檢測到。直到您不再有要恢復到的有效備份時,您才可能發現。

您可能會說,“好吧,我將故障轉移到我的輔助副本”。這可能會奏效。但我不認為這是我防止腐敗的主要保護措施。我希望盡快收到警報,並且仍然有有效的備份可以返回,以防萬一。

日誌鏈呢

在可用性組上進行日誌備份時要小心使用日誌鏈。無論您從可用性組上的哪個節點進行日誌備份,該日誌鏈都會在所有節點上持續存在。如果您在多個節點上執行日誌備份,無論出於何種原因,如果您需要恢復到某個時間點,您將需要所有這些備份。在這裡保持簡單,將所有日誌備份限製到同一個節點。

結論

我的偏好是讓我的所有備份都在我的主副本上執行。如果同步落後,無論出於何種原因,我知道我仍然可以依靠我的備份來獲得我可以獲得的最新副本。如果發生腐敗,我會迅速收到通知並做出反應。我還可以依賴輔助副本的一個自動頁面修復。如果我遇到在我的主副本上執行備份的問題,我會質疑伺服器是否有足夠的資源,或者是否需要查詢或索引調整來幫助伺服器更好地執行。我不希望通過將備份解除安裝到另一台伺服器來限制我正確恢復數據庫的能力。

更多資訊可在此處此處獲得。

引用自:https://dba.stackexchange.com/questions/308085