blog.Toby

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks
          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Securities

          文章

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          恢復模式是一個數據庫配置選項,控制如何記錄事務日志、事務日志是否需要備份以及數據庫可用的還原操作。你為數據庫選擇的恢復模式,根據該恢復模式執行的或沒有執行的日志記錄,同時涉及數據恢復問題和性能問題。

          學習目標:

          n  能夠解釋各恢復模式間的區別

          n  能夠為每個SQL Server 2005數據庫選擇最佳的恢復模式

          預計課程時間:10分鐘

          恢復模式綜述

          SQL Server 2005為數據庫提供了三種恢復模式:完整、簡單和大容量日志。這些模式決定了SQL Server如何使用事務日志,如何選擇它要記錄的操作,以及是否截斷日志。截斷事務日志是刪除已執行事務并把該日志空間讓給新事務的過程。下面是每種恢復模式的定義。

          n  在完整恢復模式下,數據庫引擎把所有操作都記錄到事務日志上,并且數據庫引擎絕對不會截斷日志。完整恢復模式能使數據庫恢復到故障時間點(在SQL Server 2005 Enterprise版中,恢復到一個比這更早一些的時間點)。

          n  在簡單恢復模式下,數據庫引擎最低限度地記錄大多數操作,并在每個檢查點之后截斷事務日志。在簡單恢復模式下,不能備份或還原事務日志。此外,也不能還原單獨的數據頁。

          重要提示  簡單恢復模式
          簡單恢復模式并不適合那些無法接受丟失最新更改的數據庫。

          n  在大容量日志模式下,數據庫引擎對大容量操作(諸如SELECT INTO和BULK INSERT)進行最小記錄。在這種恢復模式下,如果一個日志備份包含任何大容量操作,就可以使數據庫恢復到日志備份的結尾,但不能恢復到某個時間點。大容量日志模式僅用于大容量操作期間。

          如何配置恢復模式

          在SSMS中的“數據庫屬性”頁上可以查看為一個給定數據庫指定的恢復模式,對此也可以通過查詢sys.database目錄視圖,其基本語法如下所示:

          SELECT name, recovery_model_desc FROM sys.databases

          要配置一個數據庫的恢復模式,可以進入SSMS中的“數據庫屬性”頁,也可以使用ALTER DATABASE語句。

          在SSMS中,通過執行下列步驟可以改變恢復模式。

          1.     在SSMS的“對象資源管理器”下展開“數據庫”節點。

          2.     右擊需要設置恢復模式的數據庫,然后選擇“屬性”。選擇“選項”頁。

          3.     這時就可以通過“恢復模式”下拉列表改變恢復模式,如圖2.3所示。

          圖2.3  通過SSMS改變恢復模式

          使用ALTER DATABASE語句配置恢復模式的基本語法如下:

          ALTER DATABASE <database_name>

          SET RECOVERY FULL | SIMPLE | BULK_LOGGED

          如前所述,在生產環境下建議對數據庫使用完整恢復模式,因為它提供了最可恢復的配置。如果通過大容量機制定期導入數據,則可以臨時將數據庫的恢復模式改變為大容量日志模式,以獲得更好的大容量負載性能。然而,在導入過程結束以后,應將數據庫恢復為完整恢復模式。

          練習:改變數據庫的恢復模式

          本練習將數據庫恢復模式改變為大容量日志,以獲得大容量日志操作的良好性能,然后恢復到完整恢復模式。

          1.     通過執行如下ALTER DATABASE語句,將AdventureWorks數據庫的數據庫恢復模式設置為大容量日志恢復模式。(在改變恢復模式前,對該數據庫作完整備份。)

          -- Note that you should create the C:"Backup folder at Operating
              System level before running this backup.

          BACKUP DATABASE AdventureWorks TO DISK='C:"Backup"
          AdventureWorks.Bak'

          GO

          --Change the Recovery Model to Bulk Logged

          ALTER DATABASE AdventureWorks

          SET RECOVERY BULK_LOGGED

          2.    在執行大容量日志操作以后,輸入并運行如下ALTER DATABASE語句,將恢復模式改回完整恢復模式,然后執行另一次完整的數據庫備份,以備份剛剛裝入的數據。

          ALTER DATABASE AdventureWorks

          SET RECOVERY FULL

          --Perform a Full database backup

          BACKUP DATABASE AdventureWorks TO DISK='C:"Backup"
          AdventureWorks.Bak'

          GO

          本課總結

          n  恢復模式允許我們控制數據庫引擎如何記錄事務日志,可以對一個特定的數據庫使用哪些還原操作。

          n  SQL Server提供了三個恢復模式:完整、簡單和大容量日志。

          n  完整恢復模式是默認的模式,而且也是推薦使用的模式,它記錄所有的操作,能使數據庫恢復到故障時間點。

          n  簡單恢復模式最低限度地記錄大多數操作,它不允許我們備份或還原事務日志。

          n  大容量日志恢復模式最低限度地記錄大容量操作,主要供大容量操作期間臨時                 使用。

          n  通過以下兩個方法可以配置一個數據庫的恢復模式:通過SSMS中的“數據庫屬性”窗口,或者使用T-SQL語句ALTER DATABASE。

          課后測試

          下列問題旨在鞏固本課介紹的關鍵內容。如果喜歡用電子版的,可以參見配套CD。

          提示  參考答案
          這些題目的參考答案以及對每個選項的具體解釋,參見本書后面的“參考答案”部分。

          1.     下列關于恢復模式的說法,哪個是正確的?

          A.    在簡單恢復模式下,大多數事務被最低限度地記錄到日志中

          B.    在完整恢復模式下,大多數事務被最低限度地記錄到日志中

          C.    在大容量日志恢復模式下,所有事務都被記錄到日志中

          D.    在簡單恢復模式下,所有事務都被記錄到日志中

          2.     下列哪種方式允許你改變數據庫恢復模式?(選擇所有正確答案)

          A.    sp_configure存儲過程

          B.    SSMS中的數據庫屬性

          C.    ALTER DATABASE

          D.    CREATE DATABASE

          3.     在簡單恢復模式下,下列哪些恢復操作是不允許的?(選擇所有正確答案)

          A.    時間點恢復

          B.    差異恢復

          C.    完整恢復

          D.    頁恢復

          posted on 2008-05-09 13:15 渠上月 閱讀(350) 評論(0)  編輯  收藏 所屬分類: other tips
          主站蜘蛛池模板: 响水县| 鹤峰县| 资溪县| 浦北县| 桐梓县| 南澳县| 读书| 九龙城区| 吉木萨尔县| 宜昌市| 通辽市| 若尔盖县| 无锡市| 封开县| 西乡县| 新沂市| 漳州市| 襄城县| 江门市| 墨竹工卡县| 五莲县| 池州市| 滦平县| 阳原县| 焉耆| 西青区| 马公市| 龙胜| 恩平市| 古田县| 民乐县| 玉溪市| 栖霞市| 化德县| 凌云县| 张家川| 肇州县| 天全县| 河间市| 章丘市| 开江县|