SQL Server 資料庫定時自動備份

来源:http://www.cnblogs.com/lonel-yboy/archive/2017/03/24/6610304.html
-Advertisement-
Play Games

本文來源於轉載:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html 前提:在使用下麵的備份方式之前需要確保你的Sqlserver Agent服務啟動,切設置為自動啟動。否則當你伺服器重啟了但是Agent服務沒有啟動,那麼自 ...


本文來源於轉載:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html

前提:在使用下麵的備份方式之前需要確保你的Sqlserver Agent服務啟動,切設置為自動啟動。否則當你伺服器重啟了但是Agent服務沒有啟動,那麼自動備份任務就不會執行

(一)使用TSql代碼自動備份

在SQL Server中出於數據安全的考慮,所以需要定期的備份資料庫。而備份資料庫一般又是在凌晨時間基本沒有資料庫操作的時候進行,所以我們不可能要求管理員每天守到晚上1點去備份資料庫。要實現資料庫的定時自動備份,最常用的方式就是使用SQL Server代理中的作業。

(1)啟動SQL Server Agent服務(確保SQL Server Agent服務以經啟動)。

(2)在SSMS的對象資源管理中“SqlServer 管理”節點下麵選擇作業。然後在其中新建作業

(3)為作業添加1個備份步驟,類型是T-SQL腳本,然後在命令中輸入如下SQL語句,該語句實現了對資料庫TestDB1的完整備份,備份文件在C盤Backup文件夾中,文件名就是TestDB1+當時備份的日期字元串.bak。

declare@namevarchar(250) 
set@name='C:\Backup\TestDB1_'+ 
convert(varchar(50),getdate(),112)+'.bak' 
BACKUPDATABASE[TestDB1]TO  
DISK=@name 
WITH NOFORMAT, NOINIT,  
NAME = N'TestDB1-完整 資料庫 備份', 
SKIP, NOREWIND, NOUNLOAD

(4)創建好步驟以後,接下來就是創建計劃。創建計劃比較簡單,按照你的需求選擇執行周期和時間間隔,按照創建計劃頁面來設置就行

 

(二)界面操作自動備份

使用SQL作業中執行SQL腳本進行備份的方法雖然已經很簡單了,但是至少還是要去寫BACKUP腳本,這點有些人覺得不爽,那有沒有更簡單,更懶的方法來實現資料庫的自動定時備份呢?有,那就是“維護計劃”。

“維護計劃”是在SSMS的對象資源管理中“管理”節點下麵。使用維護計劃可以通過可視化的操作,只點點滑鼠就可以創建資料庫維護的SSIS包,然後仍然是通過SQL Server作業的方式來運行。維護計劃與前面說到的備份方法本質的不同就是:維護計劃是SSIS包,上面的是T-SQL腳本。

假設我們現在有一個生產系統的資料庫需要進行備份,由於資料庫中的數據很多,數據文件很大,如果每次都進行完整備份那麼硬碟占用了很大空間,而且備份時間很長,維護起來也很麻煩。對此我們可以採用完整備份+差異備份的方式,每周日進行一次完整備份,每天晚上進行一次差異備份。使用差異備份可以減小備份文件的大小,同時還可以提高備份的速度,不過缺點就是必須使用上一次完整備份的文件和差異備份的文件才能還原差異備份時刻的資料庫,單獨只有差異備份文件是沒有意義。

下麵我來講一下如何通過維護計劃來實現完整備份+差異備份:

(1)在SSMS的對象資源管理器中右擊“維護計劃”,選擇“維護計劃嚮導”,系統將彈出嚮導視窗,如圖:

這裡嚮導已經告訴我們維護計划到底能夠乾什麼了,其中最後一項“執行資料庫備份”正是我們所需要的。

(2)點擊“下一步”按鈕,進入選擇計劃屬性視窗,輸入計劃的名稱,由於我們的計劃包括2部分:完整備份和差異備份,這2部分的執行計劃是不一樣的,一個是一周執行一次,另一個是一天執行一次,所以要選擇“每項任務單獨計劃”,如圖:

(3)單擊“下一步”按鈕,選擇維護任務,這裡就是可以在維護計劃中執行的任務,如果你想執行的任務在這裡沒有,那就還是不用維護計劃來做,自己寫SSIS包或者SQL語句吧。我們要執行的任務都在這裡,選中這2個任務,如圖:

(4)單擊“下一步”進入選擇維護任務順序的界面,這裡我們可以看到選中的任務出現在列表中,但是我們並不能調整其順序,那是因為在步驟2中我們選擇的是每項任務單獨計劃,所以這2個任務是獨立的,沒有先後順序可言。如果當時選擇的是另一個選項,那麼這裡就可以調整順序了。

(5)選中“備份資料庫(完整)”然後單擊“下一步”按鈕,系統將轉到定義完整備份任務的界面,如圖:

這個界面實在太長了,我把任務欄隱藏了都顯示不完,出現了滾動條,這裡我們選擇要進行備份的資料庫,選擇為每個資料庫創建備份文件,文件保存在C盤Backup目錄下,擴展名是bak,出於安全起見,我們可以選中“驗證備份完整性”,當然也可以不選。在SQL2008中提供了壓縮備份的新特性,使得備份文件更小,備份速度更快,這裡我們就是由壓縮備份。最後是選擇執行計劃,我這裡選的是每周日晚上0點的時候執行。

(6)單擊“下一步”按鈕,進入差異備份任務的設置界面,和上一步的界面是一樣的,操作也是一樣的,計劃這裡我們可以選擇除了周日以外的每天進行差異備份,如圖:

(7)單擊“下一步”按鈕,進入選擇報告選項,這裡我們可以將這個維護計劃的執行報告寫入文本文件中,也可以講報告通過電子郵件發送給管理員。如果要發送郵件的話,那麼需要配置SQL Server的資料庫郵件,另外還要設置SQL Server代理中的操作員,關於郵件通知操作員的配置網上也講的比較多,我這裡就不詳述了。

(8)單擊“下一步”按鈕,進入“完成該嚮導”的界面,系統列出了嚮導要完成的工作,如圖:

(9)單擊“完成”按鈕,嚮導將創建對應的SSIS包和SQL作業:

(10)完成後,我們再刷新下對象資源管理器,我們可以看到對應的維護計劃和該計劃對應的作業:

現在維護計劃是創建好了,急著想看看執行後的效果如何,不需要等到晚上12點去了,在“作業”下麵,右擊DbBackupPlan.Subplan_1,選擇“作業開始步驟”系統便立即執行該作業,系統運行完成後,我們便可在C:\Backup文件夾下麵有我們做的完整備份的備份文件。

以上的操作可以是純粹的無鍵盤操作,不用寫任何腳本,只需要點點滑鼠即可。

這裡需要註意的是,我們如果不是周日制定的該維護計劃,那麼制定該維護計劃前一定要做個完整備份,而且該備份至少要保留到下周,不然到時候出了問題,發現只有這幾個工作日的差異備份,而上一次的完整備份又被刪了,那就鬱悶了。

除了使用維護計劃嚮導以外,我們還可以直接新建維護計劃,也可以修改意見創建的維護計劃。我們就以修改維護計劃為例。對於前面創建好的完整備份+ 差異備份維護計劃,現在我們需要每周對資料庫備份進行一次清理,在完整備份完成後,要將1個月前的備份刪除掉。那麼我們只需要修改一下維護計劃即可,具體操作如下:

(1)右擊我們的維護計劃,在彈出式菜單中選擇“修改”選項,系統將新建一個選項卡來顯示當前的維護計劃。如圖:

左下角是可用的維護計劃組件,右下麵板是維護計劃的流程設置面板,其上面就是該計劃的子計劃列表。

(2)選中Subplan_1子計劃,也就是每周完整備份的子計劃,將“清除歷史記錄”任務從工具箱中拖拽到計劃面板中,然後在面板中單擊“備份資料庫(完整)”組件,系統將顯示一個綠色的箭頭,將綠色箭頭拖拽到“清除歷史記錄”組件上,如圖:

也就是說在成功完整備份了資料庫後,接下來才執行清除歷史記錄任務。

(3)右擊“清除歷史記錄”任務,在彈出式菜單中選擇“編輯”選項,系統將彈出清除歷史記錄任務設置視窗,如圖:

這裡既可以清除歷史記錄日誌,也可以刪除硬碟上的歷史數據。這裡我們要刪除4周前的歷史備份數據,單擊“確定”回到計劃面板,我們可以看到原本“清除歷史記錄”任務上的小紅叉不見了。單擊“保存”按鈕,該計劃便保存起來。(說明:我在SQL2008中文版虛擬機裡面做的時候一旦修改維護計劃,保存的時候就報錯災難性故障,不過我本機的英文版是正常的,不知道是我虛擬機的問題還是中文版的Bug,反正在英文版裡面是對的。)

這樣修改後,以後我們都不用手動去刪除那些很久以前的資料庫備份了,系統在執行完備份後就會刪除那些滿足條件的備份數據。

 


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

-Advertisement-
Play Games
更多相關文章
  • Spark SQL支持兩種RDDs轉換為DataFrames的方式 使用反射獲取RDD內的Schema 當已知類的Schema的時候,使用這種基於反射的方法會讓代碼更加簡潔而且效果也很好。 通過編程介面指定Schema 通過Spark SQL的介面創建RDD的Schema,這種方式會讓代碼比較冗長。 ...
  • 外鍵加索引!外鍵加索引!外鍵加索引! 重要的事情說三遍。 最近在.Net開發中通過Remoting向服務端發送一個請求後,就開始在資料庫里通過存儲過程來進行大量的DML操作,其中大量數據來源於DBLINK,建立物化視圖後效率提升了不少。但是用戶還是會抱怨速度太慢,經常還會蹦出一個異常,如下圖: 起初 ...
  • SaaS是Software-as-a-Service(軟體即服務)的簡稱,這邊具體的解釋不介紹。 多租戶的系統可以應用這種模式的思想,將思想融入到系統的設計之中。 一、多租戶的系統,目前在資料庫存儲上,一般有三種解決方案: 1.獨立資料庫 2.共用資料庫,隔離數據架構 3.共用資料庫,共用數據架構 ...
  • 1.MapReduce(一個分散式運算框架)將數據分為數據塊,發送到不同的節點,並行方式處理。 2.NodeManager和DataNode在一個節點上,程式與數據在一個節點。 3.內容分為兩個部分 1) Map 讀取文件,將數據分塊,輸入輸出都是<key,value> 2) Reduce 輸入輸出 ...
  • comment on column 表名.欄位名 is '註釋內容'; comment on table 表名 is '註釋內容'; ...
  • public class SqlHelper { public static string connstr= ConfigurationManager.ConnectionStrings["Connstr"].ConnectionString; /// <summary> /// 執行增刪改 /// ...
  • 二進位日誌簡單介紹 MySQL的二進位日誌(binary log)是一個二進位文件,主要用於記錄修改數據或有可能引起數據變更的MySQL語句。二進位日誌(binary log)中記錄了對MySQL資料庫執行更改的所有操作,並且記錄了語句發生時間、執行時長、操作數據等其它額外信息,但是它不記錄SELE... ...
  • 一.索引的作用 一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現性能問題,遇到最多的,也是最容易出問題的,還是一些複雜的查詢操作,所以查詢語句的優化顯然是重中之重。 在數據量和訪問量不大的情況下,mysql訪問是非常快的,是否加索引對訪問影響不大。但是當數據量和訪問量劇增 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...