第4章創(chuàng)建和維護數(shù)據(jù)庫_第1頁
第4章創(chuàng)建和維護數(shù)據(jù)庫_第2頁
第4章創(chuàng)建和維護數(shù)據(jù)庫_第3頁
第4章創(chuàng)建和維護數(shù)據(jù)庫_第4頁
第4章創(chuàng)建和維護數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1

第4章創(chuàng)建和維護數(shù)據(jù)庫第4章創(chuàng)建和維護數(shù)據(jù)庫

4.1數(shù)據(jù)庫的存儲結(jié)構(gòu)4.2創(chuàng)建、修改和刪除數(shù)據(jù)庫4.3備份和還原數(shù)據(jù)庫3

SQLServer2005的數(shù)據(jù)及所有與數(shù)據(jù)處理操作相關(guān)的信息都存儲在數(shù)據(jù)庫中,而數(shù)據(jù)庫的存儲分為邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)。其中,邏輯存儲結(jié)構(gòu)是指用戶可以看到的數(shù)據(jù)庫對象,包括表、視圖、索引、存儲過程等;物理存儲結(jié)構(gòu)是指用戶看不到的存儲在磁盤上的數(shù)據(jù)庫文件。數(shù)據(jù)庫在磁盤上是以文件為單位存儲的,由數(shù)據(jù)庫文件和事務(wù)日志文件組成。一個數(shù)據(jù)庫至少應(yīng)該包含一個數(shù)據(jù)庫文件和一個事務(wù)日志文件,如圖4-1所示。4.1數(shù)據(jù)庫的存儲結(jié)構(gòu)4圖4-1數(shù)據(jù)庫的存儲結(jié)構(gòu)54.1.1數(shù)據(jù)庫文件在物理層面上,SQLServer數(shù)據(jù)庫是由多個操作系統(tǒng)文件組成的,數(shù)據(jù)庫所有的數(shù)據(jù)、對象和數(shù)據(jù)庫操作日志均存儲在這些操作系統(tǒng)文件中,根據(jù)這些文件的作用不同,可以將它們分為三種文件:主要數(shù)據(jù)文件(PrimaryDatabaseFile)、次要數(shù)據(jù)文件(SecondaryDatabaseFile)和事務(wù)日志文件。61.主要數(shù)據(jù)文件數(shù)據(jù)庫文件是存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件,一個SQLServer數(shù)據(jù)庫在磁盤上可以有一個或多個數(shù)據(jù)庫文件,當(dāng)有多個數(shù)據(jù)庫文件時,有一個數(shù)據(jù)庫文件被定義為主要數(shù)據(jù)文件,其擴展名為.mdf。主要數(shù)據(jù)文件是用來存儲數(shù)據(jù)庫的啟動信息和部分數(shù)據(jù)或全部數(shù)據(jù),它指向數(shù)據(jù)庫中文件的其它部分,每個數(shù)據(jù)庫只有一個主要數(shù)據(jù)文件。72.次要數(shù)據(jù)文件次要數(shù)據(jù)文件是主要數(shù)據(jù)文件的輔助文件,擴展名為.ndf。次要數(shù)據(jù)文件用于存儲主要數(shù)據(jù)文件沒有存儲的剩余數(shù)據(jù)和剩余數(shù)據(jù)庫對象。一個數(shù)據(jù)庫可以沒有次要數(shù)據(jù)文件,也可以同時擁有多個次要數(shù)據(jù)文件。使用次要數(shù)據(jù)文件的好處在于可以在不同的物理磁盤上創(chuàng)建次要數(shù)據(jù)文件,并將數(shù)據(jù)存儲在文件中,這樣可以有效地提高數(shù)據(jù)的處理效率;另外,當(dāng)數(shù)據(jù)龐大時,主要數(shù)據(jù)文件的大小超過操作系統(tǒng)對單一文件大小的限制時,就必須使用次要數(shù)據(jù)文件來存儲數(shù)據(jù)。83.事務(wù)日志文件SQLServer每個數(shù)據(jù)庫至少有一個事務(wù)日志文件,擴展名為.ldf。事務(wù)日志文件用于存儲數(shù)據(jù)庫的更新情況等事務(wù)日志信息,所有使用INSERT、DELETE、UPDATE等SQL命令對數(shù)據(jù)庫進行修改操作都要記錄在事務(wù)日志文件中。事務(wù)日志文件非常重要,當(dāng)數(shù)據(jù)庫遭到破壞時,管理員可以使用事務(wù)日志文件恢復(fù)數(shù)據(jù)庫。SQLServer2005的文件擁有邏輯文件名和物理文件名兩種名稱,當(dāng)使用T-SQL語句訪問某一個文件時,必須使用該文件的邏輯文件名,邏輯文件名必須符合SQLServer的命名規(guī)則,并且不允許有相同的邏輯文件名。物理文件名是文件實際存儲在磁盤上的文件名,可包括完整的磁盤目錄路徑。例如,系統(tǒng)的master數(shù)據(jù)庫,其邏輯文件名是master,物理文件名是master.mdf,日志文件名是master.ldf。94.1.2數(shù)據(jù)庫文件組為了便于分配和管理SQLServer2005,允許將多個數(shù)據(jù)庫文件歸為一個組,并賦予一個組名,這就是數(shù)據(jù)庫文件組。一個數(shù)據(jù)庫文件只能存于一個文件組,一個文件組也只能被一個數(shù)據(jù)庫使用;日志文件是獨立的,它不能存入任何文件組,也就是說,數(shù)據(jù)庫的數(shù)據(jù)和日志內(nèi)容不能存入相同的文件組中,日志空間和數(shù)據(jù)空間分開管理。

10一些系統(tǒng)可以通過控制在特定磁盤驅(qū)動器上放置的數(shù)據(jù)和索引來提高自身的性能,文件組可以對此進程提供幫助。系統(tǒng)管理員可以為每個磁盤驅(qū)動器創(chuàng)建文件組,然后將特定的表、索引、或表中的text、ntext

或image數(shù)據(jù)指派給特定的文件組。SQLServer2005提供了三種文件組類型,分別是主要文件組、用戶定義文件組和默認文件組。主要文件組包含主要數(shù)據(jù)文件和所有沒有被包含在其它文件組里的文件。數(shù)據(jù)庫的系統(tǒng)表都包含在主要文件組里。11用戶定義文件組包括所有在使用CREATEDATABASE或ALTERDATABASE命令時使用FILEGROUP關(guān)鍵字進行約束的文件。默認文件組容納所有在創(chuàng)建時沒有指定文件組的表、索引以及text、ntext

或image數(shù)據(jù)類型的數(shù)據(jù)。每個數(shù)據(jù)庫中都有一個文件組作為默認文件組運行,任何時候,只能有一個文件組被指定為默認文件組。默認情況下,主要文件組是默認文件組。124.2創(chuàng)建、修改和刪除數(shù)據(jù)庫4.2.1創(chuàng)建數(shù)據(jù)庫4.2.2查看數(shù)據(jù)庫4.2.3修改數(shù)據(jù)庫4.2.4刪除數(shù)據(jù)庫134.2.1創(chuàng)建數(shù)據(jù)庫

SQLServer2005每個數(shù)據(jù)庫都由以下幾個部分的數(shù)據(jù)庫對象組成:關(guān)系圖、表、視圖、存儲過程、用戶、角色、規(guī)則、默認、用戶自定義的數(shù)據(jù)類型和用戶自定義的函數(shù),如圖4-2所示。SQLServer2005允許每個服務(wù)器中最多可以創(chuàng)建32767個數(shù)據(jù)庫,每個數(shù)據(jù)庫的庫名必須符合系統(tǒng)標識符的命名規(guī)則,應(yīng)該使用易于記憶并有一定意義的名稱命名數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫的過程實際是設(shè)計數(shù)據(jù)庫的名稱、設(shè)計數(shù)據(jù)庫所占用的存儲空間和存放文件的位置的過程。數(shù)據(jù)庫的基本信息存儲在系統(tǒng)的Master數(shù)據(jù)庫中的sysdatabases系統(tǒng)表中,可以使用SELECT語句來查詢數(shù)據(jù)庫的信息。14圖4-2數(shù)據(jù)庫的對象15創(chuàng)建數(shù)據(jù)庫可以使用SQLServerManagementStudio管理控制臺(以下稱企業(yè)管理器)或在查詢分析器中使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫。以下介紹這兩種方法的創(chuàng)建過程。1.使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫的操作步驟如下:⑴啟動SQLServerManagementStudio管理控制臺,在“對象資源管理器”中右擊“數(shù)據(jù)庫”結(jié)點,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”選項,如圖4-3所示。⑵單擊“新建數(shù)據(jù)庫”命令后將彈出“新建數(shù)據(jù)庫”對話框,該對話框有三個頁面:“常規(guī)”、“選項”和“文件組”,其中“常規(guī)”頁面如圖4-4所示。16圖4-3創(chuàng)建數(shù)據(jù)庫17圖4-4創(chuàng)建數(shù)據(jù)庫對話框中的常規(guī)選項18⑶在“新建數(shù)據(jù)庫”對話框的“常規(guī)”頁面可以設(shè)置新建數(shù)據(jù)庫的屬性,也可以查看或修改已建數(shù)據(jù)庫的屬性??梢赃M行以下操作:① 輸入所要創(chuàng)建的數(shù)據(jù)庫的名稱,選擇或指定數(shù)據(jù)庫的所有者以及是否使用全文索引;例如,新建“學(xué)生成績管理”數(shù)據(jù)庫,可在“數(shù)據(jù)庫名稱”文本框內(nèi)輸入:學(xué)生成績管理;在“所有者”文本框可以選系統(tǒng)“默認值”,也可以單擊右側(cè)的【…】按鈕選擇數(shù)據(jù)庫的所有者。在此選擇系統(tǒng)“默認值”;不選擇全文索引。②設(shè)置數(shù)據(jù)庫的“數(shù)據(jù)文件”的屬性,包括邏輯名稱、文件類型、文件組、初始大小、自動增長方式和路徑。19例如,新建的“學(xué)生成績管理”數(shù)據(jù)庫的數(shù)據(jù)文件的邏輯名系統(tǒng)自動確定為:學(xué)生成績管理;文件類型是:數(shù)據(jù);文件組是:PRIMARY;初始大小,系統(tǒng)預(yù)置為3MB,也可以通過“微調(diào)按鈕”選擇其它值,在此選擇3MB;自動增長,系統(tǒng)預(yù)置增長量為1MB,不限制增長,在此,也可以單擊【…】按鈕更改自動增長設(shè)置,如圖4-4所示。③設(shè)置數(shù)據(jù)庫的“事務(wù)日志”的屬性,包括邏輯名稱、文件類型、文件組、初始大小、自動增長方式和路徑。設(shè)置方法同“數(shù)據(jù)文件”的設(shè)置,不再贅述。完成上述操作后,單擊【確定】按鈕完成“學(xué)生成績管理”數(shù)據(jù)庫的創(chuàng)建。這時在“對象資源管理器”的“數(shù)據(jù)庫”文件夾內(nèi)便出現(xiàn)新建的數(shù)據(jù)庫“學(xué)生成績管理”,如圖4-5所示。20圖4-5新創(chuàng)建的學(xué)生成績管理數(shù)據(jù)庫新建的數(shù)據(jù)庫212.在查詢分析器中使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫的命令是:CREATEDATABASE其基本語法格式:CREATEDATABASEdatabase_name[ON[PRIMARY][<filespec>[,…n][,<filegroupspec>[,…n]]][LOGON{<filespec>[,…n]}]<filespec>::=([NAME=logical_file_name,]FILENAME=‘os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,F(xiàn)ILEGROWTH=growth_increment])22主要參數(shù)說明:①database_name:表示新建數(shù)據(jù)庫的名稱,數(shù)據(jù)庫名必須符合標識符的命名規(guī)則,數(shù)據(jù)庫名最長為128個字符。②ON:表示存放數(shù)據(jù)庫的數(shù)據(jù)文件將在后面分別給出定義;PRIMARY:該選項是定義數(shù)據(jù)庫的主要文件組中的文件。主文件組不僅包含數(shù)據(jù)庫系統(tǒng)表中的全部內(nèi)容,而且還包含用戶文件組中沒有包含的全部對象。一個數(shù)據(jù)庫只能有一個主文件,默認情況下,如果不指定PRIMARY關(guān)鍵字,則在命令中列出的第一個文件將被默認為主文件。③LOGON:定義數(shù)據(jù)庫的事務(wù)日志文件。如果沒有LOGON選項,系統(tǒng)會自動產(chǎn)生一個文件名前綴與數(shù)據(jù)庫名相同,容量為數(shù)據(jù)庫文件大小1/4的事務(wù)日志文件。④NAME:指定數(shù)據(jù)庫的邏輯名稱,這是在SQLServer系統(tǒng)中使用的名稱,是數(shù)據(jù)庫在SQLServer中的標識符。⑤FILENAME:定義數(shù)據(jù)庫所在文件的操作系統(tǒng)文件名稱和路徑,該操作系統(tǒng)文件名和NAME的邏輯名稱一一對應(yīng)。24⑥SIZE:指定數(shù)據(jù)庫的初始容量大小。如果沒有指明主文件的大小,則SQLServer默認其與模板數(shù)據(jù)庫中主文件的大小一致,其它數(shù)據(jù)庫文件和事務(wù)日志默認為1MB。SIZE最小值是512KB,默認值為1MB。⑦MAXSIZE:指定數(shù)據(jù)庫文件可以增長到的最大尺寸。如果沒有指定值,則文件可以不斷增長直到充滿磁盤。⑧FILEGROWTH:指定文件每次增加容量的大小,當(dāng)指定數(shù)據(jù)為0時,表示文件不增長。如果沒有指定值,則默認按10%的比例增長,每次擴容的最小值為64KB。25【例4.1】用Transact-SQL命令創(chuàng)建一個圖書管理數(shù)據(jù)庫TSGL1,該數(shù)據(jù)庫的主數(shù)據(jù)文件邏輯名稱為TSGL1_data,物理文件名為TSGL1.mdf,初始大小為10MB,最大尺寸為無限大,增長速度為10%;數(shù)據(jù)庫的日志文件邏輯名稱為TSGL1_log,物理文件名為TSGL1.ldf,初始大小為1MB,最大尺寸為5MB,增長速度為1MB。程序代碼見教材P65在“查詢分析器”的“查詢腳本編輯器”內(nèi)輸入并運行以上程序代碼,將創(chuàng)建TSGL1數(shù)據(jù)庫。在“對象資源管理器”中用鼠標右鍵點擊新建的TSGL1數(shù)據(jù)庫,從彈出的菜單中選取“屬性”項,將彈出“數(shù)據(jù)庫屬性-TSGL1”對話框,從這個對話框的“常規(guī)”選擇頁和“文件”選擇頁可以查看新建數(shù)據(jù)庫TSGL1的數(shù)據(jù)文件和日志文件的相關(guān)參數(shù)。26【例4.2】用Transact-SQL命令創(chuàng)建一個含有多個數(shù)據(jù)文件和日志文件的數(shù)據(jù)庫。該數(shù)據(jù)庫名稱為TSGL2,有1個10MB和1個20MB的數(shù)據(jù)文件和2個10MB的事務(wù)日志文件。數(shù)據(jù)文件邏輯名稱為TSGL21_data和TSGL22_data,物理文件名為TSGL21.mdf和TSGL22.mdf。主文件是TSGL21,由primary指定,兩個數(shù)據(jù)文件的最大尺寸分別為無限大和100MB,增長速度分別為10%和1MB。事務(wù)日志文件的邏輯名為TSGL21_log和TSGL22_log,物理文件名為TSGL21.ldf和TSGL22.ldf,最大尺寸均為50MB,文件增長速度為1MB。27程序代碼見教材P66在“查詢分析器”的“查詢腳本編輯器”內(nèi)輸入并運行以上程序代碼,將創(chuàng)建TSGL2數(shù)據(jù)庫。在“對象資源管理器”中用鼠標右鍵點擊新建的TSGL2數(shù)據(jù)庫,從彈出的菜單中選取“屬性”項,將彈出“數(shù)據(jù)庫屬性-TSGL2”對話框,從這個對話框的“常規(guī)”選擇頁和“文件”選擇頁可以審核新建數(shù)據(jù)庫TSGL2的數(shù)據(jù)文件和日志文件的相關(guān)參數(shù)是否符合設(shè)計要求,如圖4-6所示。28圖4-6新建數(shù)據(jù)庫TSGL2的屬性對話框294.2.2查看數(shù)據(jù)庫

一個數(shù)據(jù)庫創(chuàng)建以后,可以使用SQLServerManagementStudio管理控制臺(企業(yè)管理器)查看已建立的數(shù)據(jù)庫的基本信息。在管理控制臺的“對象資源管理器”內(nèi)的樹形目錄中找到要查看的數(shù)據(jù)庫,如查看數(shù)據(jù)庫TSGL的屬性,可以用鼠標右擊該數(shù)據(jù)庫名,由彈出的菜單中選擇“屬性”項,如圖4-7所示,這時將出現(xiàn)“數(shù)據(jù)庫屬性-TSGL”對話框。該對話框內(nèi)含有“常規(guī)”、“文件”、“文件組”、“選項”、“權(quán)限”、“擴展屬性”、“鏡像”和“事務(wù)日志傳送”共8個選擇頁,其中“文件”選擇頁顯示了TSGL數(shù)據(jù)庫文件的邏輯名稱、文件類型、文件組、初始大小、自動增長等信息。點擊其它選擇頁,還可以查看其它相關(guān)信息,可參見圖4-6。30圖4-7查看數(shù)據(jù)庫屬性314.2.3修改數(shù)據(jù)庫當(dāng)需要對所建數(shù)據(jù)庫的屬性進行修改時,可以使用SQLServerManagementStudio管理控制臺(企業(yè)管理器)或在查詢分析器中使用Transact-SQL語言進行數(shù)據(jù)庫屬性的修改。1.使用企業(yè)管理器修改數(shù)據(jù)庫啟動SQLServerManagementStudio管理控制臺,在“對象資源管理器”中展開指定的服務(wù)器和數(shù)據(jù)庫,右擊需要修改的數(shù)據(jù)庫(如修改TSGL數(shù)據(jù)庫),從彈出的快捷菜單中選擇并單擊“屬性”選項,將出現(xiàn)數(shù)據(jù)庫屬性對話框(可以參見圖4-6),對話框內(nèi)含有“常規(guī)”、“文件”、“文件組”、“選項”、“權(quán)限”、“擴展屬性”、“鏡像”和“事務(wù)日志傳送”共8個選擇頁。32①在“常規(guī)”選擇頁中顯示當(dāng)前數(shù)據(jù)庫的名稱、狀態(tài)、所有者、創(chuàng)建日期、大小、可用空間、用戶數(shù)以及數(shù)據(jù)庫上次備份日期和維護規(guī)則等信息;可對相關(guān)信息進行修改。②在“文件”選擇頁中可以重新修改數(shù)據(jù)文件和事務(wù)日志文件的邏輯名稱、文件類型、文件組、初始大?。∕B)、自動增長等信息。③在“文件組”選擇頁中可以添加或刪除文件組。④在“選項”選擇頁中可以對數(shù)據(jù)庫的排序規(guī)則、恢復(fù)模式、兼容級別以及恢復(fù)、游標、雜項、狀態(tài)、自動等屬性進行修改。其中有關(guān)參數(shù)說明如下:a.ANSINULL默認設(shè)置:允許在數(shù)據(jù)庫表的列(字段)中輸入空(NULL)值。33b.遞歸觸發(fā)器已啟用:允許觸發(fā)器遞歸調(diào)用。SQLServer設(shè)定的觸發(fā)器遞歸調(diào)用的層數(shù)最多為32層。c.自動創(chuàng)建統(tǒng)計信息:在優(yōu)化查詢時,根據(jù)需要自動創(chuàng)建統(tǒng)計信息。d.自動更新統(tǒng)計信息:允許使用SELECTINTO或BCP、WRITETEXT、UPDATETEXT命令向表中大量插入數(shù)據(jù)。e.自動關(guān)閉:當(dāng)數(shù)據(jù)庫中無用戶時,自動關(guān)閉該數(shù)據(jù)庫,并將所占用的資源交還給操作系統(tǒng)。f.自動收縮:允許定期對數(shù)據(jù)庫進行檢查,當(dāng)數(shù)據(jù)庫文件或日志文件的未用空間超過其大小的25%時,系統(tǒng)將會自動縮減文件使其未用空間等于25%。⑤在“權(quán)限”選擇頁中可以設(shè)置用戶對數(shù)據(jù)庫的使用權(quán)限。342.在查詢分析器中使用Transact-SQL語言修改數(shù)據(jù)庫使用Transact-SQL語言修改數(shù)據(jù)庫的命令是:ALTERDATABASE其基本語法格式:ALTERDATABASEdatabasename{addfile<filespec>[,…n][tofilegroup

filegroupname]|addlogfile<filespec>[,…n]|removefilelogical_file_name[withdelete]|modifyfile<filespec>|modifyname=new_databasename|addfilegroup

filegroup_name|removefilegroup

filegroup_name|modifyfilegroup

filegroup_name{filegroup_property|name=new_filegroup_name}}使用ALTERDATABASE語句可以增加或刪除數(shù)據(jù)庫中的文件,也可以修改數(shù)據(jù)庫文件的屬性。35主要參數(shù)說明:①語句中addfile,removefile和modifyfile三個子句分別指定創(chuàng)建、刪除和修改已有的文件。②tofilegroup:使用該選項把新文件賦給已有的文件組。③addlogfile:使用該子句可以創(chuàng)建新的事務(wù)日志并將其添加到已有的數(shù)據(jù)庫事務(wù)日志中。④addfilegroup:使用該選項可以創(chuàng)建新的文件組。⑤removefilegroup:使用該選項可以從系統(tǒng)中刪除文件組。⑥<filespec>[,…n]:表示文件說明36【例4.3】用Transact-SQL命令添加一個含有兩個數(shù)據(jù)文件的文件組和一個事務(wù)日志文件到TSGL1數(shù)據(jù)庫。程序代碼見教材P68在“查詢分析器”的“查詢腳本編輯器”內(nèi)輸入并運行以上程序代碼,將在TSGL1數(shù)據(jù)庫中添加含有兩個數(shù)據(jù)文件的文件組DATA1和一個事務(wù)日志文件。在“對象資源管理器”中用鼠標右鍵點擊TSGL1數(shù)據(jù)庫,從彈出的菜單中選取“屬性”項,將彈出“數(shù)據(jù)庫屬性-TSGL1”對話框,從這個對話框的“常規(guī)”選擇頁和“文件”選擇頁可以審核修改后的數(shù)據(jù)庫TSGL1的數(shù)據(jù)文件和日志文件的相關(guān)參數(shù)是否符合修改要求。374.2.4刪除數(shù)據(jù)庫對于不再使用的數(shù)據(jù)庫應(yīng)該刪除它以釋放數(shù)據(jù)庫所占用的存儲空間。刪除數(shù)據(jù)庫也有兩種方法,即使用SQLServerManagementStudio管理控制臺(企業(yè)管理器)或在查詢分析器中使用Transact-SQL語言刪除數(shù)據(jù)庫。1.使用企業(yè)管理器刪除數(shù)據(jù)庫啟動SQLServerManagementStudio管理控制臺,在“對象資源管理器”中,用鼠標右擊所要刪除的數(shù)據(jù)庫,從彈出的快捷菜單中選擇“刪除”選項,便可刪除指定的數(shù)據(jù)庫。382.在查詢分析器中使用Transact-SQL語言刪除數(shù)據(jù)庫使用Transact-SQL語言刪除數(shù)據(jù)庫的命令是:DROP其基本語法格式:DROPdatabasedatabase_name[,…n]DROP語句可以從SQLServer中一次刪除一個或多個數(shù)據(jù)庫?!纠?.4】刪除所創(chuàng)建的數(shù)據(jù)庫TSGL1。程序代碼如下:DROPdatabaseTSGL1394.3備份和還原數(shù)據(jù)庫4.3.1概述4.3.2備份數(shù)據(jù)庫的操作4.3.3還原數(shù)據(jù)庫404.3.1概述

SQLServer2005提供了一套功能強大的數(shù)據(jù)庫備份和還原的功能,這為存儲在SQLServer數(shù)據(jù)庫中的關(guān)鍵數(shù)據(jù)提供了重要的保護手段。通過正確的設(shè)計可以從多種故障中恢復(fù)數(shù)據(jù)庫,這些故障包括:存儲媒體故障、用戶的錯誤操作或服務(wù)器的徹底崩潰等。另外,也可以出于其它需要的備份和還原數(shù)據(jù)庫,如將數(shù)據(jù)庫從一臺服務(wù)器復(fù)制到另一臺服務(wù)器等。數(shù)據(jù)庫備份就是對SQLServer數(shù)據(jù)庫或事務(wù)日志進行備份。數(shù)據(jù)庫備份記錄了在進行備份這一操作時數(shù)據(jù)庫中所有數(shù)據(jù)的狀態(tài),以便在數(shù)據(jù)庫遭到破壞時能夠及時地將其還原。數(shù)據(jù)庫備份是動態(tài)的,即備份時允許其它用戶繼續(xù)對數(shù)據(jù)庫進行操作。41SQLServer2005提供了四種不同的備份方式:1.完全數(shù)據(jù)庫備份完全數(shù)據(jù)庫備份是對所有數(shù)據(jù)庫操作和事務(wù)日志中的事務(wù)進行備份,這種備份方式可用作系統(tǒng)崩潰時恢復(fù)數(shù)據(jù)庫的基礎(chǔ)。完全數(shù)據(jù)庫備份過程中需要花費的時間和空間最多,不宜頻繁使用。2.差異備份或稱增量備份差異備份是對最后一次數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化進行備份。對于一個經(jīng)常進行數(shù)據(jù)操作的數(shù)據(jù)庫進行備份,需要在完全數(shù)據(jù)庫備份的基礎(chǔ)上進行差異備份,差異備份的優(yōu)點是速度快。通過增加差異備份的備份次數(shù)可以降低丟失數(shù)據(jù)的風(fēng)險。423.事務(wù)日志備份事務(wù)日志備份是對數(shù)據(jù)庫發(fā)生的事務(wù)進行備份,包括從上次進行事務(wù)日志備份、差異備份和數(shù)據(jù)庫完全備份之后,所有已經(jīng)完成的事務(wù),它可以在相應(yīng)的數(shù)據(jù)庫備份的基礎(chǔ)上,盡可能地恢復(fù)最新的數(shù)據(jù)庫記錄。由于它僅對數(shù)據(jù)庫事務(wù)日志進行備份,所以它需要的磁盤空間和備份時間都比數(shù)據(jù)庫備份少得多。差異備份和事務(wù)日志備份的速度快,但它們之間的主要差異是事務(wù)日志備份含有自上次備份以來的所有修改,而差異備份只含有最后一次的修改。4.?dāng)?shù)據(jù)庫文件和文件組備份當(dāng)數(shù)據(jù)庫非常大時,可以進行數(shù)據(jù)庫文件或文件組的備份,文件組包含了一個或多個數(shù)據(jù)庫文件。當(dāng)SQLServer系統(tǒng)備份文件或文件組時,最多可以指定16個文件或文件組。434.3.2備份數(shù)據(jù)庫的操作備份數(shù)據(jù)庫可以使用SQLServerManagementStudio管理控制臺(企業(yè)管理器)或使用Transact-SQL語句來完成備份數(shù)據(jù)庫的操作。1.使用企業(yè)管理器備份數(shù)據(jù)庫使用企業(yè)管理器備份數(shù)據(jù)庫可以按以下操作步驟進行:⑴啟動SQLServerManagementStudio管理控制臺,在“對象資源管理器”內(nèi)展開指定的服務(wù)器。⑵展開“數(shù)據(jù)庫”文件夾,右擊需要備份的數(shù)據(jù)庫(譬如備份TSGL數(shù)據(jù)庫),從彈出的快捷菜單中選擇“任務(wù)”菜項的“備份”命令,如圖4-8所示。44圖4-8選擇備份數(shù)據(jù)庫的命令45⑶指定備份源:執(zhí)行“備份”命令后,將彈出“備份數(shù)據(jù)庫”對話框,如圖4-9所示。在該對話框的“常規(guī)”選擇頁內(nèi)“源”區(qū)域內(nèi)確定備份源的相關(guān)參數(shù)。①在“備份類型”下拉列表框內(nèi)確定數(shù)據(jù)庫的備份類型:若執(zhí)行完整數(shù)據(jù)庫備份,則選擇“完整”選項;若執(zhí)行差異數(shù)據(jù)庫備份,則選擇“差異”選項;若要備份事務(wù)日志,則選擇“事務(wù)日志”選項。②“備份組件”:若只想備份數(shù)據(jù)庫中的某個文件和文件組,則單擊“文件和文件組”單選按鈕,并選擇相應(yīng)的文件或文件組;否則,單擊“數(shù)據(jù)庫”單選按鈕。⑷備份集時間設(shè)置:如果需要對備份集的過期時間進行設(shè)置,可以通過“備份集”區(qū)域內(nèi)“備份集過期時間”的單選按鈕選擇和確定過期時間。46圖4-9備份數(shù)據(jù)庫的操作47⑸指定備份的目的地:在“目標”區(qū)域內(nèi)可以將備份數(shù)據(jù)庫按系統(tǒng)默認的路徑和文件名備份;也可以單擊“添加按鈕”在彈出的“選擇備份目標”對話框中指定一個備份文件的文件名及路徑或備份設(shè)備,如圖4-10所示。在一次備份操作中可以指定多個目標設(shè)備或文件,這樣可以將一個數(shù)據(jù)庫備份到多個文件或設(shè)備中。⑹如果對備份數(shù)據(jù)庫的“覆蓋媒體”、“可靠性”、“事務(wù)日志”等方面有所要求,可以單擊“備份數(shù)據(jù)庫”對話框中“選擇”選擇頁進行必要的設(shè)置,否則可以單擊“備份數(shù)據(jù)庫”對話框的【確定】按鈕結(jié)束備份數(shù)據(jù)庫的操作。備份數(shù)據(jù)庫文件的擴展名是:.BAK48圖4-10選擇數(shù)據(jù)庫的備份目標492.在查詢分析器中使用Transact-SQL語言備份數(shù)據(jù)庫在SQLServer2005管理控制臺的查詢分析器中可以通過執(zhí)行有關(guān)的系統(tǒng)存儲過程或語句來完成數(shù)據(jù)庫的備份操作。⑴執(zhí)行系統(tǒng)存儲過程備份數(shù)據(jù)庫:使用系統(tǒng)存儲過程sp_addumpdevice可以完成備份數(shù)據(jù)庫的操作,其語法格式為:EXECsp_addumpdevice‘設(shè)備類型’,‘邏輯名稱’,‘物理名稱’50其中參數(shù)‘設(shè)備類型’用于指定備份設(shè)備的類型,備份設(shè)備是用來存放備份數(shù)據(jù)的物理設(shè)備,包括磁盤和磁帶,分別用disk和tape表示。建立一個備份設(shè)備時,要給該設(shè)備一個‘邏輯備份名稱’和一個‘物理備份名稱’,物理備份名稱是計算機操作系統(tǒng)所能識別的設(shè)備名稱,如果是磁盤設(shè)備,則物理名稱是備份設(shè)備存儲在本地或網(wǎng)絡(luò)上的物理名稱,例如“C:\TSGL.BAK”;邏輯名稱是物理設(shè)備名稱的一個別名,便于SQLServer管理備份設(shè)備。51【例4.5】使用系統(tǒng)存儲過程在本地磁盤上備份數(shù)據(jù)庫TSGL,其邏輯名稱為‘TSGLBACKUP’,物理名稱為‘C:\TSGL.BAK’。程序代碼如下:

EXECsp_addumpdevice‘disk’,‘TSGLBACKUP’,‘C:\TSGL.BAK’在查詢分析器的“查詢腳本編輯器”內(nèi)輸入并運行以上程序代碼,如圖4-11所示,將在C盤上備份TSGL數(shù)據(jù)庫。52圖4-11使用系統(tǒng)存儲過程備份數(shù)據(jù)庫的操作53⑵執(zhí)行備份命令備份數(shù)據(jù)庫:Transact-SQL語言備份數(shù)據(jù)庫的命令是BACKUP語句,該語句可以對數(shù)據(jù)庫進行全庫備份、差異備份、日志備份或文件和文件組備份。①全庫備份:全庫備份是制作數(shù)據(jù)庫中所有內(nèi)容的一個副本,可實現(xiàn)整個數(shù)據(jù)庫的恢復(fù)。其語法格式為:BACKUPDATABASE數(shù)據(jù)庫名TO備份設(shè)備名[WITH[NAME=‘備份名稱’][,INIT|NOINIT]]主要參數(shù)說明如下:備份設(shè)備名采用“備份設(shè)備類型=設(shè)備名稱”的形式;INIT參數(shù)表示新備份的數(shù)據(jù)覆蓋當(dāng)前備份設(shè)備上的每一項內(nèi)容,即設(shè)備上的原信息被覆蓋;NOINIT參數(shù)表示保留備份設(shè)備上原有的信息,新備份的數(shù)據(jù)添加到原有信息的后面。54②差異備份:差異備份是將最近一次全庫備份結(jié)束以來所有改變的數(shù)據(jù)備份到數(shù)據(jù)庫。當(dāng)數(shù)據(jù)庫從上次備份以來數(shù)據(jù)發(fā)生很少變化時適合使用差異備份。其語法格式為:BACKUPDATABASE數(shù)據(jù)庫名TO備份設(shè)備名WITHDIFFERENTIAL[,NAME=‘備份名稱’][,INIT|NOINIT]主要參數(shù)說明如下:DIFFERENTIAL子句的作用是通過它可以指定只對在創(chuàng)建最新的數(shù)據(jù)庫備份后數(shù)據(jù)庫中發(fā)生變化的部分進行備份。55③日志備份:日志備份是將最近一次日志備份以來所有事務(wù)日志備份到備份設(shè)備,通常情況下日志備份經(jīng)常與全庫備份和差異備份結(jié)合使用。其語法格式為:BACKUPLOG數(shù)據(jù)庫名TO備份設(shè)備名[WITH[NAME=‘備份名稱’][,INIT|NOINIT]]該語法格式中的參數(shù)與全庫備份語法格式中的參數(shù)相同。④文件和文件組備份:當(dāng)一個數(shù)據(jù)庫的數(shù)據(jù)很大時,對整個數(shù)據(jù)庫進行備份可能要花費很多時間,這時可以采用文件和文件組備份方式,即對數(shù)據(jù)庫中的部分文件或文件組進行備份。其語法格式為:BACKUPDATABASE數(shù)據(jù)庫名FILE=‘文件的邏輯名稱’|FILEGROUP=‘文件組的邏輯名稱’TO備份設(shè)備名[WITH[NAME=‘備份名稱’][,INIT|NOINIT]]564.3.3還原數(shù)據(jù)庫數(shù)據(jù)庫備份后,一旦執(zhí)行了錯誤的數(shù)據(jù)庫操作或系統(tǒng)發(fā)生崩潰時,就要將備份的數(shù)據(jù)庫還原,數(shù)據(jù)庫還原是指將已有的數(shù)據(jù)庫備份加載到系統(tǒng)中的過程。系統(tǒng)在還原數(shù)據(jù)庫的過程中,自動執(zhí)行安全性檢查、重建數(shù)據(jù)庫結(jié)構(gòu)以及完整數(shù)據(jù)庫內(nèi)容。還原數(shù)據(jù)庫可以使用SQLServerManagementStudio管理控制臺(企業(yè)管理器),也可以在查詢分析器中使用Transact-SQL語言還原數(shù)據(jù)庫。⒈使用企業(yè)管理器還原數(shù)據(jù)庫若“對象資源管理器”中的TSGL數(shù)據(jù)庫已被破環(huán),需要將備份數(shù)據(jù)庫TSGL.BAK還原,可以按下列步驟進行操作。57⑴啟動SQLServerManagementStudio管理控制臺,在“對象資源管理器”中展開指定的服務(wù)器。⑵右擊“數(shù)據(jù)庫”文件夾,從彈出的快捷菜單中選擇并單擊“還原數(shù)據(jù)庫”命令,如圖4-12所示,將彈出“還原數(shù)據(jù)庫-TSGL”對話框。⑶在“還原數(shù)據(jù)庫-TSGL”對話框內(nèi),“還原的目標”區(qū)域要求為還原操作選擇現(xiàn)有數(shù)據(jù)庫的名稱或鍵入新數(shù)據(jù)庫名稱。為此在“目標數(shù)據(jù)庫”下拉列表框中輸入要還原的目標數(shù)據(jù)庫TSGL;“目標時間點”是明確在指定的時間點后停止還原事務(wù)日志條目。在此可以選擇“最近狀態(tài)”或通過右側(cè)的【…】按鈕指定具體日期和時間,如圖4-13所示。58圖4-12使用SQLServer管理控制臺還原數(shù)據(jù)庫的操作59圖4-13SQLServer還原數(shù)據(jù)庫對話框60⑷在“還原數(shù)據(jù)庫-TSGL”對話框內(nèi),“還原的源”區(qū)域要求指定用于還原的備份集的源和位置,這時可以有“源數(shù)據(jù)庫”和“源設(shè)備”兩種選擇方式。選擇第一種方式可以很方便地還原數(shù)據(jù)庫,但這種方式要求要還原的備份數(shù)據(jù)庫必須在msdb數(shù)據(jù)庫中保存了備份歷史記錄,在其它服務(wù)器上創(chuàng)建的備份在msdb數(shù)據(jù)庫中沒有記錄,因此不能使用這種方式,只能使用“源設(shè)備”方式。因此單擊“源設(shè)備”單選按鈕,參見圖4-13,再單擊右側(cè)的【…】按鈕,將彈

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論