sql server 備份與恢復系列一 必備知識

来源:https://www.cnblogs.com/MrHSR/archive/2018/08/06/9427272.html
-Advertisement-
Play Games

一.備份概述 數據安全是資料庫的生命,資料庫在使用過程中難免會遇到如:使用者的誤操作或是被惡意修改,硬體故障導致數據文件無法被訪問,自然災害導致機房在物理上的損毀。本章從備份與恢復的功能作為解決問題的切入點。在實際工作中會遇到:使用什麼樣的備份策略(比如完整備份,文件備份,差異備份,日誌備份),如何 ...


一.備份概述

  數據安全是資料庫的生命,資料庫在使用過程中難免會遇到如:使用者的誤操作或是被惡意修改,硬體故障導致數據文件無法被訪問,自然災害導致機房在物理上的損毀。本章從備份與恢復的功能作為解決問題的切入點。在實際工作中會遇到:使用什麼樣的備份策略(比如完整備份,文件備份,差異備份,日誌備份),如何減少備份恢復時間(比如儘快恢覆上線),如何將資料庫恢復到想要的時間點(比如恢復到誤操作以前),如何遷移資料庫系統到一臺新機器(比如用戶賬號,密碼,任務腳本備份還原)。

  1.備份類型

     在sql server資料庫里包括數據文件和日誌文件,相應包括數據備份和日誌備份。數據備份可以是完整資料庫備份,文件備份,差異備份也叫增量備份。日誌備份也叫事務日誌備份。

完整備份

   會記錄資料庫里的所有信息,可以將資料庫數據恢復到某個時間點的狀態。但一個大的資料庫備份可能

需要很長時間。假如每天或每小時只用完整備份類型就需要發費大量存儲空間和備份恢復時間,僅完整備份不能滿足用戶需求。

文件備份

   備份一個或多個文件或文件組的所有數據,多數針對大型資料庫。文件備份+日誌備份=完整備份。如果是一個文件損壞,只需還原該文件,從而加快恢復速度。

差異備份                              要求資料庫之前做過一次完整備份稱為基準。它是完整備份以後,發生更改的數據. 便於頻繁備份,降低數據丟失的風險。
日誌備份   要求資料庫之前做過一次完整備份,自從上次完整備份或日誌備份以後寫入的日誌記錄。連續不斷的日誌鏈可以將資料庫還原到任意時間點。 所以在備份策略中扮演重要角色。

   2.  備份策略

    (1)資料庫最多能容忍多長時間的數據丟失。
    (2)投入多少人力物力做資料庫備份和恢復策略。每次備份都會有時間間隔,數據丟失容易發生在最近一次備份之後的所有資料庫操作,之後如文件損壞資料庫需要恢復,備份尾日誌肯定不成功,數據也會丟失, 為了保證數據不丟失需要引用鏡像等技術。
    (3) 備份文件越多,資料庫恢復的文件也越多,要建立一個合適的備份管理制度。備份雖然不會阻塞資料庫的正常操作,但會產生一系列的磁碟讀寫,這時要避免在伺服器I/O繁忙時。備份越多,失敗的概述也會越大,需要管理員及時處理錯誤,將備份任務恢復常態。

  3. 常用的備份方法

分級 數據備份 日誌備份
資料庫級 完整資料庫備份 差異資料庫備份 日誌備份
文件級 完整文件備份 差異文件備份

 

二. 資料庫恢復模式下的備份類型

    上面說了備份涉及的幾種類型,這裡就得說資料庫恢復模式對備份類型的支持及特點。sql server有三種資料庫恢復模式設置包括:簡單恢復模式,完整恢復模式,大容量恢復模式。

  2.1  簡單恢復模式
    在簡單恢復模式下,不能做日誌備份,只支持最簡單的備份和還原方式,容易管理,資料庫最後一次備份之後做的數據修改將全部丟失。為了降低風險,可以引入差異備份。差異備份的開銷一般都比完整備份低,可以經常運行。如果資料庫比較龐大或者不允許長時間的數據丟失,那這種簡單恢復模式就不適合。在總結下:

    優點:

    (1)日誌文件占用物理空間少日誌增長慢。

    (2)對SQL執行性能優,能最小化日誌。

    缺點:

    (1)不支持日誌備份.

    (2)無法實現零丟失,恢復時間點至上一次備份時。

    (3)切換到其它恢復模式時,日誌鏈中斷。

  2.2 大容量恢復模式

    又叫大批量恢復模式,可以使用日誌備份,它能夠對某些大批量操作提供最佳的性能和最小的日誌使用空間,這些大批量包括bulk insert, bcp,create index, select into, writetext , updatetext。也就是說這些操作有數據丟失風險,相對完全恢復模式,這些操作都是完全記錄的。總結下:

     優點:

         (1)日誌文件占用物理空間少(日誌增長慢)。

         (2)對SQL執行性能優(最小化日誌)。

         (3)支持切換到完整模式不中斷日誌鏈。

    缺點:

         (1)還原大批量操作,數據有丟失風險如bulk insert, select into等。

  2.3 完整恢復模式

    也可以叫完全恢復模式,在此模式下,所有操作都會被完整記錄下來,如insert每新增的一行,delete每刪除的一行,還包括大批理操作如bulk insert等,都會記錄到事務日誌中。 包括create index操作也會被完全記錄,在日誌恢復時不必要重建索引,恢復會很快。使用日誌備份,可以定義一種很頻繁的頻率,5份鐘甚至更短時間來做備份,以防止出現故障數據丟失。但是備份數量越多,恢復時需要嚴格按備份產生的順序依次恢復,中間不能有任何備份缺失。

    優點:

    (1) 使用了日誌備份可以實現零丟失(如果能進行尾日誌備份,能還原到任意時間點)。

    (2)支持切換到大容量模式不中斷日誌鏈。

    缺點:

    (1)日誌文件空間占用大必須定期日誌備份,達到日誌空間重用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. innodb 行鎖是基於索引實現的,如果不通過索引訪問數據,innodb會使用表鎖。 http://www.cnblogs.com/MrHSR/p/9376086.html 2. Innodb 間隙鎖(Next-key)機制,以及innodb使用間隙鎖的原因 http://www.cnblog ...
  • 1.mongodb安裝包下載(mongodb-win32-x86_64-v3.4-latest.zip),解壓到D:\mongodb文件夾下(解壓前創建目錄即可),創建data、logs文件夾【創建mongodb.log文件】 鏈接:https://pan.baidu.com/s/1K7g36CA_ ...
  • 轉自: http://www.maomao365.com/?p=6208 摘要: GROUPING 用於區分列是否由 ROLLUP、CUBE 或 GROUPING SETS 聚合而產生的行 如果是原生態的行聚合,則返回0 ,新增的行數據就返回1 grouping 語法簡介 : GROUPING (< ...
  • 1.1 日誌文件與數據文件一致性 在上一章備份與恢復里瞭解到事務日誌的重要性,這篇重點來瞭解事務日誌。 事務日誌記錄了資料庫所有的改變,能恢復該資料庫到改變之前的任意狀態。在sql server實例每次啟動時都會去檢查數據文件與日誌文件的一致性。 包括日誌記錄的任何已提交的數據必須體現在數據文件上, ...
  • 問題來源:最近有同事需要執行批量刪除語句。根據他提供的業務需求,推薦他使用“TRUNCATE TABLE”語句。但使用該語句需要 ALTER許可權,這與執行用戶的角色不符。 解決辦法:使用EXECUTE AS語句修改執行許可權。代碼如下: 通過列印出來的loginame可以看出,執行用戶信息已經被修改。 ...
  • /*其實我也搞不懂為什麼要用SQL來創建,明明SQL Server有圖形化創建資料庫多省事啊!*/USE master;​DECLARE @sqlstr nvarchar(max)/*定義一個變數*/DECLARE @database_name nvarchar(20) = 'MyDB';/*這裡輸 ...
  • 最近在MySQL中遇到分組排序查詢時,突然發現MySQL中沒有row_number() over(partition by colname)這樣的分組排序。並且由於MySQL中沒有類似於SQL Server中的row_number()、rank()、dense_rank()等排名函數,所有找到以下實 ...
  • 前言: 想把單行函數進行一個比較全面的總結,並分享給有需要的人,有不明之處還請多多指教。 SQL函數:Oracle的內置函數,包括了單行函數和多行函數,本文重點講解單行函數。單行函數又可以分為許多類,本人將常用的分為5大類: 字元函數(7個),數值函數(7個),日期函數(7個),轉換函數(3個),通 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...