SQLSERVER數(shù)據(jù)庫管理.ppt
《SQLSERVER數(shù)據(jù)庫管理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《SQLSERVER數(shù)據(jù)庫管理.ppt(89頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第4章 SQLSERVER數(shù)據(jù)庫管理,本章的學(xué)習(xí)目標(biāo):,了解數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu) 理解數(shù)據(jù)庫文件和文件組的基本特征 了解SQL Server 2008 R2系統(tǒng)的數(shù)據(jù)庫 了解數(shù)據(jù)庫的物理存儲(chǔ)方式和大小估算方法 熟練掌握用Management Studio工具和T-SQL語句創(chuàng)建數(shù)據(jù)庫 熟練掌握用Management Studio工具和T-SQL語句修改數(shù)據(jù)庫 熟練掌握擴(kuò)大數(shù)據(jù)庫的原因和方法 掌握數(shù)據(jù)庫的分離和附加 掌握收縮數(shù)據(jù)庫的原因和方法 掌握數(shù)據(jù)庫的刪除 掌握數(shù)據(jù)庫的備份和還原,本章內(nèi)容,4.1 SQL SERVER數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu) 4.2 數(shù)據(jù)庫的創(chuàng)建 4.3 數(shù)據(jù)庫的修改 4.4 數(shù)據(jù)庫的分離和附加 4.5 數(shù)據(jù)庫的收縮 4.6 數(shù)據(jù)庫刪除 4.7 數(shù)據(jù)庫的備份和還原 4.8 本章小結(jié),4.1 SQL SERVER數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),,,數(shù)據(jù)庫的兩種存儲(chǔ)結(jié)構(gòu): 邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu)。 數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)表現(xiàn)為存儲(chǔ)數(shù)據(jù)的各類操作系統(tǒng)文件,SQL Server 2008 R2數(shù)據(jù)庫在磁盤上是以文件為單位存儲(chǔ)的,由數(shù)據(jù)文件和事物日志文件組成,每個(gè)數(shù)據(jù)庫至少要具有兩種操作系統(tǒng)文件:一個(gè)數(shù)據(jù)文件和一個(gè)事務(wù)日志文件。 數(shù)據(jù)庫的邏輯存儲(chǔ)結(jié)構(gòu),是指數(shù)據(jù)庫有哪些性質(zhì)的信息組成,即一個(gè)數(shù)據(jù)庫由若干用戶可視的各種數(shù)據(jù)庫對象構(gòu)成,諸如表、視圖、索引、存儲(chǔ)過程等。,4.1.1 數(shù)據(jù)庫對象,,數(shù)據(jù)庫的邏輯存儲(chǔ)結(jié)構(gòu) 數(shù)據(jù)庫的邏輯存儲(chǔ)結(jié)構(gòu),是指數(shù)據(jù)庫有哪些性質(zhì)的信息組成,即一個(gè)數(shù)據(jù)庫由若干用戶可視的各種數(shù)據(jù)庫對象構(gòu)成,諸如表、視圖、索引、存儲(chǔ)過程等。,,,,,,,SQL Server 2008 R2中常用的數(shù)據(jù)庫對象 1.表:表是數(shù)據(jù)庫中用于容納所有數(shù)據(jù)的最常用的數(shù)據(jù)庫對象,由行和列組成的二維的行列結(jié)構(gòu)。 2.視圖:視圖是用戶查看數(shù)據(jù)庫表中數(shù)據(jù)的一種方式,它其實(shí)相當(dāng)于一種虛擬表,但是可以像使用真實(shí)表一樣使用視圖。視圖又被稱為一種邏輯對象,并不占用物理空間,其作用像相當(dāng)于查詢,所包含的列和行的數(shù)據(jù)只來源于視圖所查詢的表(這種實(shí)際的表稱為視圖的基表),在引用視圖時(shí)動(dòng)態(tài)生成。 3.索引:數(shù)據(jù)庫中的索引類似于書籍中的目錄。對一個(gè)沒有索引的表進(jìn)行的查詢操作,系統(tǒng)將檢查表中的每一個(gè)數(shù)據(jù)行,這就好比在一本沒有目錄的書中查找信息。,,,4. 存儲(chǔ)過程:存儲(chǔ)過程是SQL Server 2008 R2服務(wù)器上一組預(yù)編譯的Transact-SQL 語句,它可以接受參數(shù)、返回狀態(tài)值和參數(shù)值,并且可以嵌套調(diào)用。使用服務(wù)器上存儲(chǔ)過程而不使用客戶機(jī)本地上的Transact-SQL 程序的優(yōu)點(diǎn)有:保證各個(gè)客戶端操作一致性,提供安全機(jī)制(有權(quán)限的才能操作)及減少網(wǎng)絡(luò)傳輸?shù)取?5.觸發(fā)器:觸發(fā)器是一種特殊類型的存儲(chǔ)過程,當(dāng)執(zhí)行某些操作導(dǎo)致表中的數(shù)據(jù)被修改時(shí),觸發(fā)器會(huì)自動(dòng)觸發(fā)執(zhí)行。它主要用來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)完整性。 6.函數(shù):SQL Server 2008 R2中包含有大量的函數(shù),我們用函數(shù)可以完成特定的計(jì)算功能。在SQL Server 2008 R2中除了有內(nèi)置函數(shù),還允許用戶自定義函數(shù)。,4.1.2 數(shù)據(jù)庫文件及文件組,,數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu) 數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu),表現(xiàn)為存儲(chǔ)數(shù)據(jù)的各類操作系統(tǒng)文件,SQL Server 2008 R2數(shù)據(jù)庫在磁盤上是以文件為單位存儲(chǔ)的,由數(shù)據(jù)文件和事物日志文件組成,每個(gè)數(shù)據(jù)庫至少要具有兩種操作系統(tǒng)文件:一個(gè)數(shù)據(jù)文件和一個(gè)事務(wù)日志文件。 數(shù)據(jù)文件可以隸屬于某個(gè)文件組中以便于對該文件中數(shù)據(jù)存儲(chǔ)的管理。,,,數(shù)據(jù)文件:又可以分成主數(shù)據(jù)文件和次數(shù)據(jù)文件兩種形式。主數(shù)據(jù)文件是數(shù)據(jù)庫的起點(diǎn),用來存儲(chǔ)數(shù)據(jù)庫的啟動(dòng)信息和部分或全部數(shù)據(jù),每一個(gè)數(shù)據(jù)庫都有且僅有一個(gè)主數(shù)據(jù)文件。主數(shù)據(jù)文件名稱的默認(rèn)后綴是mdf。次數(shù)據(jù)文件是可選的,它們可以存儲(chǔ)不在主數(shù)據(jù)文件中的全部數(shù)據(jù)和對象。數(shù)據(jù)庫既可能沒有次數(shù)據(jù)文件,也可能有多個(gè)次數(shù)據(jù)文件。次數(shù)據(jù)文件名稱的默認(rèn)后綴是ndf。 事務(wù)日志文件: 事務(wù)就是一個(gè)單元的工作,該單元的工作要么全部完成,要么全部不完成。SQL Server 2008 R2系統(tǒng)具有事務(wù)功能,可以保證數(shù)據(jù)庫操作的一致性和完整性。 事務(wù)日志以操作系統(tǒng)文件的形式存在,在數(shù)據(jù)庫中被稱為事務(wù)日志文件。每一個(gè)數(shù)據(jù)庫都至少有一個(gè)事務(wù)日志文件。事務(wù)日志文件名稱的后綴默認(rèn)是ldf。,,,主數(shù)據(jù)文件,次數(shù)據(jù)文件,事務(wù)日志文件,,,文件組 文件組就是文件的邏輯集合。為了方便數(shù)據(jù)的管理和分配,文件組允許對文件進(jìn)行分組以便于管理數(shù)據(jù)的分配或放置,可以把一些指定的文件組合在一起。 也就是說:當(dāng)你的數(shù)據(jù)庫中包含很多數(shù)據(jù)文件時(shí),你可以將這些數(shù)據(jù)文件存儲(chǔ)在不同的地方,然后用文件組把它們作為一個(gè)單元來管理。文件組對組內(nèi)的所有文件都使用按比例填充策略,即當(dāng)將數(shù)據(jù)寫入文件組時(shí),SQL Server 2008 R2根據(jù)文件中的可用空間量將按一定比例的數(shù)據(jù)寫入文件組的每個(gè)文件,而不是將所有的數(shù)據(jù)先寫滿第一個(gè)文件,接著再寫入下一個(gè)文件。 例如,在某個(gè)數(shù)據(jù)庫中,3個(gè)文件(data1.ndf、data2.ndf和data3.ndf)分別創(chuàng)建在3個(gè)不同的磁盤驅(qū)動(dòng)器中,然后為它們指定一個(gè)文件組fgroup1。以后,所創(chuàng)建的表可以明確指定放在文件組fgroup1上。對該表中數(shù)據(jù)的查詢將分布在這3個(gè)磁盤上,因此,可以通過執(zhí)行并行訪問而提高查詢性能。在創(chuàng)建表時(shí),不能指定將表放在某個(gè)文件上,只能指定將表放在某個(gè)文件組上。因此,如果希望將某個(gè)表放在特定的文件上,那么必須通過創(chuàng)建文件組來實(shí)現(xiàn)。,,,文件組 SQL Server 2008 R2一共有三種類型的文件組,它們分別是主文件組(primary)、用戶定義文件組,還可選中一個(gè)文件組為默認(rèn)文件組(default)。SQL Server 2008 R2至少包含一個(gè)文件組,即主文件組。主文件組包含主數(shù)據(jù)文件,存放系統(tǒng)表格等。Primary不能被更改。默認(rèn)文件組(default),用來存放任何沒有指定文件組的對象。任何時(shí)候只能有一個(gè)文件組被指定為default,默認(rèn)情況下主文件組被當(dāng)做默認(rèn)的文件組。 使用文件和文件組時(shí),應(yīng)該考慮下列因素: 一個(gè)文件或者文件組只能用于一個(gè)數(shù)據(jù)庫,不能是多個(gè)數(shù)據(jù)庫; 一個(gè)文件只能是某一個(gè)文件組的成員,不能是多個(gè)文件組的成員; 數(shù)據(jù)庫的數(shù)據(jù)信息和日志信息不能放在同一個(gè)文件中,即數(shù)據(jù)文件和日志文件總是分開的; 日志文件永遠(yuǎn)也不能是任何文件組的一部分。,4.1.3 SQL Server 2008 R2數(shù)據(jù)庫類型,,SQL Server 2008 R2中的數(shù)據(jù)庫有兩種類型: 系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。 1. 系統(tǒng)數(shù)據(jù)庫 系統(tǒng)數(shù)據(jù)庫由master、model、msdb、tempdb和隱藏的Resource數(shù)據(jù)庫組成。 (1)master數(shù)據(jù)庫:master數(shù)據(jù)庫用于記錄SQL Server 2008 R2中所有服務(wù)器級別的對象。這包括了服務(wù)器登錄帳戶、鏈接服務(wù)器定義以及端點(diǎn)。master數(shù)據(jù)庫同時(shí)還記錄服務(wù)器上其他所有數(shù)據(jù)庫的信息。SQL Server 2008 R2并不把系統(tǒng)信息存儲(chǔ)在master數(shù)據(jù)庫中,而是存儲(chǔ)在Resource數(shù)據(jù)庫中。不過在master數(shù)據(jù)庫中,系統(tǒng)信息邏輯呈現(xiàn)為sys架構(gòu)。,4.1.3 SQL Server 2008 R2數(shù)據(jù)庫類型,,(2)model數(shù)據(jù)庫:model數(shù)據(jù)庫是一個(gè)模板數(shù)據(jù)庫。每當(dāng)創(chuàng)建新的數(shù)據(jù)庫時(shí)(包括系統(tǒng)數(shù)據(jù)庫tempdb),就會(huì)創(chuàng)建model數(shù)據(jù)庫的一個(gè)副本,并以新創(chuàng)建數(shù)據(jù)庫的名稱重命名該副本。 (3)msdb數(shù)據(jù)庫 可以把msdb數(shù)據(jù)庫看作是SQL Server代理的數(shù)據(jù)庫,這是因?yàn)镾QL Server 2008 R2代理廣泛地使用msdb數(shù)據(jù)庫存儲(chǔ)自動(dòng)化作業(yè)定義、作業(yè)計(jì)劃、操作員定義以及警報(bào)定義。 (4) tempdb數(shù)據(jù)庫 SQL Server 2008 R2使用tempdb數(shù)據(jù)庫臨時(shí)性地存儲(chǔ)數(shù)據(jù)。在SQL Server 2008 R2操作中,tempdb數(shù)據(jù)庫有廣泛的運(yùn)用,因此要確保SQL Server 2008 R2數(shù)據(jù)庫有效的操作,就需要仔細(xì)計(jì)劃和評估tempdb數(shù)據(jù)庫的規(guī)模和位置。 (5) Resource數(shù)據(jù)庫 它是一個(gè)只讀數(shù)據(jù)庫,包含SQL Server 2008 R2實(shí)例使用的所有系統(tǒng)對象。,4.1.3 SQL Server 2008 R2數(shù)據(jù)庫類型,,2. 用戶數(shù)據(jù)庫 用戶數(shù)據(jù)庫就是用戶創(chuàng)建的數(shù)據(jù)庫。它們存儲(chǔ)數(shù)據(jù)應(yīng)用程序所使用的數(shù)據(jù),這也是擁有一個(gè)數(shù)據(jù)庫服務(wù)器的主要目的。,4.2 數(shù)據(jù)庫的創(chuàng)建,,,數(shù)據(jù)庫創(chuàng)建的方法: 創(chuàng)建數(shù)據(jù)庫的方法有多種:使用Management Studio工具創(chuàng)建數(shù)據(jù)庫、可以使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫 。 在創(chuàng)建數(shù)據(jù)庫之前要需估算所建數(shù)據(jù)庫的大小和增幅。 創(chuàng)建數(shù)據(jù)庫就是確定數(shù)據(jù)庫名稱、文件名稱、數(shù)據(jù)文件大小、數(shù)據(jù)庫的字符集、是否自動(dòng)增長以及如何自動(dòng)增長等信息的過程。數(shù)據(jù)庫的名稱必須滿足系統(tǒng)的標(biāo)識符規(guī)則。在命名數(shù)據(jù)庫時(shí),一定要使數(shù)據(jù)庫名稱簡短和有一定的含義。,4.2.1使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,要求:創(chuàng)建一個(gè)酒店管理系統(tǒng)所使用的數(shù)據(jù)庫,名為JdglSys。因?yàn)榫频旯芾硐到y(tǒng)中涉及到的容納數(shù)據(jù)的表大致有7個(gè),估計(jì)總數(shù)據(jù)量為20000行記錄,根據(jù)課本介紹的估算數(shù)據(jù)庫大小的方法,估算 JdglSys數(shù)據(jù)庫中的數(shù)據(jù)文件的大小為10M,日志文件為3M 。 步驟: (1)從“開始”-“程序”-“Microsoft SQL Server 2008 R2”-“SQL Server 2008 R2 Management Studio”點(diǎn)擊后,打開該工具,首先點(diǎn)擊“連接”到SQL Server 2008 R2數(shù)據(jù)庫引擎實(shí)例,詳見圖4-3連接Management Studio工具。,4.2.1使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,圖4-3 連接Management Studio工具,,4.2.1使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,(2)展開該實(shí)例后,如圖4-4 Management Studio 工具界面圖。,圖4-4 Management Studio工具界面,4.2.1使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,(3)右擊上圖中的“數(shù)據(jù)庫”,在彈出菜單中選擇“新建數(shù)據(jù)庫”,會(huì)彈出新建數(shù)據(jù)庫窗口,如圖4-5新建數(shù)據(jù)庫所示。在“數(shù)據(jù)庫名稱”項(xiàng)中輸入新數(shù)據(jù)庫的名稱JdglSys。下面數(shù)據(jù)庫文件中的邏輯名稱就會(huì)自動(dòng)設(shè)置完成,注意:此處要修改一下數(shù)據(jù)文件的大小為10M,日志文件的大小為3M,單擊“確定”按鈕即完成。,圖4-5 新建數(shù)據(jù)庫JdglSys,4.2.1 使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,(4)創(chuàng)建完成JdglSys數(shù)據(jù)庫后的Management Studio的工具界面如下:,圖4-6 Management Studio工具界面,新建的JdglSys數(shù)據(jù)庫,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,CREATE DATABASE語句的常用語法格式如下 :,CREATE DATABASE database_name ON { [ PRIMARY ] ( NAME = logical_file_name , FILENAME = os_file_name , [ , SIZE = size] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,.n ] LOG ON { ( NAME = logical_file_name , FILENAME = os_file_name , [ , SIZE = size] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,.n ],4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,Create database語句中參數(shù)說明: database_name:新數(shù)據(jù)庫的名稱。 ON :指定用來存儲(chǔ)數(shù)據(jù)庫數(shù)據(jù)部分的磁盤文件(數(shù)據(jù)文件)。 LOG ON :指定顯式定義用來存儲(chǔ)數(shù)據(jù)庫日志的磁盤文件(日志文件)。 NAME logical_file_name: 指定文件的邏輯名稱。 FILENAME :指定操作系統(tǒng)(物理)文件名稱。 SIZE :指定文件的大小。 MAXSIZE :指定文件可增大到的最大大小。 FILEGROWTH :指定文件的自動(dòng)增量。也可以指定百分比。,4.2.1 使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,【例4-1】創(chuàng)建JdglSys數(shù)據(jù)庫,其數(shù)據(jù)文件初始大小為10MB,最大值UNLIMITED,文件大小增長量為1MB,日志文件初始大小為3MB,最大大小為UMLIMITED,增量為10%。文件的位置在默認(rèn)安裝的位置。,4.2.1 使用Management Studio工具創(chuàng)建數(shù)據(jù)庫,,,具體的T-SQL語句為:,CREATE DATABASE JdglSys ON PRIMARY ( NAME = JdglSys_Data, FILENAME = C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSER VER\MSSQL\DATA\JdglSys_Data.mdf, SIZE = 10MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1) LOG ON ( NAME = JdglSys_Log, FILENAME = C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSER VER\MSSQL\DATA\JdglSys_Log.ldf, SIZE = 3MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10%) GO,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,連接上Management Studio工具,點(diǎn)擊右上角的“新建查詢”,出現(xiàn)如下圖示,在其中輸入該語句,點(diǎn)擊“執(zhí)行”即可。,4.2.3 查看數(shù)據(jù)庫的相關(guān)信息,,,SQL Server 2008 R2系統(tǒng)中,可以使用一些系統(tǒng)視圖、存儲(chǔ)過程查看有關(guān)數(shù)據(jù)庫的基本信息。 常用的有以下幾個(gè): 1. sys.databases:可以查看該服務(wù)器上所有數(shù)據(jù)庫的基本信息。,,圖4-8使用sys.databases系統(tǒng)視圖查看服務(wù)器上的數(shù)據(jù)庫,4.2.3 查看數(shù)據(jù)庫的相關(guān)信息,,,2. sp_helpdb:可以查看該服務(wù)器上所有數(shù)據(jù)庫或指定單個(gè)數(shù)據(jù)庫的基本信息。如圖4-9所示存儲(chǔ)過程查看所有數(shù)據(jù)庫。 使用sp_helpdb JdglSys命令可以查看單個(gè)數(shù)據(jù)庫的詳細(xì)信息。,,圖4-9 使用sp_helpdb存儲(chǔ)過程查看所有數(shù)據(jù)庫,4.2.3 查看數(shù)據(jù)庫的相關(guān)信息,,,使用sp_helpdb JdglSys命令可以查看單個(gè)數(shù)據(jù)庫的詳細(xì)信息。,,圖4-10 使用sp_helpdb存儲(chǔ)過程查看單個(gè)數(shù)據(jù)庫,4.2.3 查看數(shù)據(jù)庫的相關(guān)信息,,,3. sp_helpfile:顯示當(dāng)前數(shù)據(jù)庫關(guān)聯(lián)的文件的名稱及屬性。如圖4-11所示。其中,use語句用來改變當(dāng)前數(shù)據(jù)庫,把JdglSys數(shù)據(jù)庫作為當(dāng)前查詢的數(shù)據(jù)庫。,,圖4-11使用sp_helpfile查看相關(guān)數(shù)據(jù)庫的文件信息,4.2.3 查看數(shù)據(jù)庫的相關(guān)信息,,,4.sp_helpfilegroup系統(tǒng)存儲(chǔ)過程 查看JdglSys數(shù)據(jù)庫中的所有文件組或某一個(gè)文件組的信息。 如圖4-12所示。,,圖4-12使用sp_helpfilegroup查看相關(guān)數(shù)據(jù)庫的文件組信息,4.2.3 查看數(shù)據(jù)庫的相關(guān)信息,,,5.sp_spaceused系統(tǒng)存儲(chǔ)過程 顯示由整個(gè)數(shù)據(jù)庫保留和使用的磁盤空間。如圖4-13所示。,,圖4-13使用sp_spaceused查看數(shù)據(jù)庫空間使用狀況信息,4.3 數(shù)據(jù)庫的修改,,,數(shù)據(jù)庫創(chuàng)建之后,根據(jù)需要可以使用Management Studio工具或ALTER DATABASE語句對數(shù)據(jù)庫進(jìn)行修改。修改操作包括更改數(shù)據(jù)庫名稱、擴(kuò)大數(shù)據(jù)庫、修改數(shù)據(jù)庫文件、管理數(shù)據(jù)庫文件組等。 數(shù)據(jù)庫修改的方法: 修改數(shù)據(jù)庫的方法也有兩種:使用Management Studio工具修改數(shù)據(jù)庫、可以使用alter DATABASE語句創(chuàng)建數(shù)據(jù)庫 。,4.3.1使用Management Studio工具修改數(shù)據(jù)庫,,,1.重命名數(shù)據(jù)庫 數(shù)據(jù)庫創(chuàng)建之后,一般情況下不要更改數(shù)據(jù)庫的名稱,因?yàn)樵S多應(yīng)用程序都可能使用了該數(shù)據(jù)庫的名稱。數(shù)據(jù)庫名稱更改之后,需要修改相應(yīng)的應(yīng)用程序。但是,如果確實(shí)需要更改數(shù)據(jù)庫名稱,可以使用Management Studio工具修改數(shù)據(jù)庫很輕松的修改數(shù)據(jù)庫名。比如,修改數(shù)據(jù)庫JdglSys為hotel。,4.3.1使用Management Studio工具修改數(shù)據(jù)庫,,,,,“選中” 要更名的 數(shù)據(jù)庫,“右擊”?“重命名”,JdglSys可更改為hotel,4.3.1使用Management Studio工具修改數(shù)據(jù)庫,,,2.擴(kuò)大數(shù)據(jù)庫 在SQL Server 2008 R2系統(tǒng)中,如果數(shù)據(jù)庫的數(shù)據(jù)量不斷膨脹,可以根據(jù)需要擴(kuò)大數(shù)據(jù)庫的尺寸。有3種擴(kuò)大數(shù)據(jù)庫的方式。第一種方式是設(shè)置數(shù)據(jù)庫為自動(dòng)增長方式,可以在創(chuàng)建數(shù)據(jù)庫時(shí)設(shè)置。第二種方式是直接修改數(shù)據(jù)庫的數(shù)據(jù)文件或日志文件的大小,第三種方式是在數(shù)據(jù)庫中增加新的次要數(shù)據(jù)文件或日志文件。,4.3.1使用Management Studio工具修改數(shù)據(jù)庫,,,例如,JdglSys數(shù)據(jù)庫的大小是13MB,如果希望擴(kuò)大到20MB(其中,數(shù)據(jù)文件大小15M,日志文件大小5M)。 有三種方法實(shí)現(xiàn): (1)、那么可以通過在創(chuàng)建數(shù)據(jù)庫時(shí),設(shè)定文件為自動(dòng)增長的,一旦數(shù)據(jù)庫中的數(shù)據(jù)量增多,數(shù)據(jù)文件或日志文件容量不夠就會(huì)自動(dòng)擴(kuò)展增大。(此方法不再說明) (2)、還可以使用修改文件的大小把數(shù)據(jù)文件改為15M,把日志文件改為5M。(介紹該方法) (3)、還可以使用第三種方法,為該數(shù)據(jù)庫增加一個(gè)大小為5MB的數(shù)據(jù)文件、一個(gè)2M的日志文件來達(dá)到。 (介紹該方法),4.3.1 使用Management Studio工具修改數(shù)據(jù)庫,,,第二種方法: 在Management Studio工具,“右擊”JdglSys,在彈出菜單中選擇“屬性”,就會(huì)彈出 “數(shù)據(jù)庫屬性”對話框。 選擇“文件”,就 可以看到該數(shù)據(jù)庫相關(guān) 的文件,修改其中的數(shù) 據(jù)文件的初始大小為15M ,日志文件的初始大小為 5M,點(diǎn)擊“確定”即可。,,4.3.1 使用Management Studio工具修改數(shù)據(jù)庫,,,第三種方法: 在Management Studio工具,“右擊”JdglSys,就會(huì)彈出 “數(shù)據(jù)庫屬性”對話框,直接點(diǎn)擊下面的“添加”按鈕,在其中添加一行,把邏輯名稱修改為JdglSys2,初始大小設(shè)為5M,其他不做修改。再點(diǎn)擊“添加”按鈕,添加一行,把邏輯名稱修改為JdglSys_log2,文件類型點(diǎn)擊下拉菜單,修改為“日志”,初始大小設(shè)定為2M,點(diǎn)擊確定。也能夠?qū)崿F(xiàn)將數(shù)據(jù)庫擴(kuò)容為20M。,,4.3.1使用Management Studio工具修改數(shù)據(jù)庫,,,,圖4-16使用Management Studio工具增加文件來擴(kuò)大數(shù)據(jù)庫,4.3.1使用Management Studio工具修改數(shù)據(jù)庫,,,3. 添加文件組 在數(shù)據(jù)庫中可以很方便的添加新的文件組,可以在Management Studio工具,【選中】要添加文件組的數(shù)據(jù)庫,【右擊】,在彈出菜單中選中【屬性】,選擇【文件組】,點(diǎn)擊下面的【添加】按鈕,就可以添加新的文件組。 例如在數(shù)據(jù)庫JdglSys中添加文件組SECOND。,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,數(shù)據(jù)庫的修改操作還可以使用T-SQL語句中的alter database來進(jìn)行修改完成。Alter database語句的語法格式是:,ALTER DATABASE database_name {ADD FILE [,…n][TO FILEGROUP{filegroup_name}] |ADD LOG FILE [,…n] |REMOVE FILE logical_file_name [WITH DELETE] |MODIFY FILE |MODIFYname= new_database_name |ADD filegroup filegroup_name |MODIFY filegroup filegroup_name DEFAULT |REMOVE filegroup filegroup_name },4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,其中: 可以是: ( NAME = logical_file_name , FILENAME = os_file_name , [ , SIZE = size] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,.n ],4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,可以使用Alter Database命令來完成數(shù)據(jù)庫修改操作。如:重命名數(shù)據(jù)庫、擴(kuò)大數(shù)據(jù)庫、修改數(shù)據(jù)庫文件、管理數(shù)據(jù)庫文件組等。 重命名數(shù)據(jù)庫 使用ALTER DATABASE語句更改數(shù)據(jù)庫名稱的語法形式簡寫如下: ALTER DATABASE database_name Modify Name = new_database_name; 【例4-2】把demodb數(shù)據(jù)庫更名為Studentdb。 ALTER DATABASE demodb Modify Name = Studentdb;,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,修改數(shù)據(jù)庫文件 【例4-3】數(shù)據(jù)庫JdglSys的數(shù)據(jù)文件JdglSys.mdf的初始分配大小為10MB,請將其大小擴(kuò)充20MB。 ALTER DATABASE JdglSys MODIFY FILE (NAME =’JdglSys’, FILENAME=C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\JdglSys.mdf, SIZE=20MB) GO,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,添加數(shù)據(jù)庫文件 【例4-4】給數(shù)據(jù)庫JdglSys添加一個(gè)新的數(shù)據(jù)文件,邏輯名稱為JdglSys3,物理名稱及位置為:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA \JdglSys3.ndf。大小為5M,每次增長1M,最大值為15M。增加一個(gè)日志文件邏輯名稱為JdglSys_log3,物理名稱及位置:C:\Program Files\Microsoft SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\JdglSys_log3.ldf。大小為2M,每次增長1M,最大值5M。,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,ALTER DATABASE JdglSys ADD FILE (NAME=JdglSys3, FILENAME=C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\JdglSys3.ndf, SIZE = 5MB , MAXSIZE = 15MB , FILEGROWTH = 1MB ) Go ALTER DATABASE JdglSys ADD LOG FILE (NAME=JdglSys_log3, FILENAME=C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\JdglSys_log3.ldf’, SIZE = 1MB , MAXSIZE = 5MB , FILEGROWTH = 1MB ) Go,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,添加數(shù)據(jù)文件到指定的文件組 【例4-5】 給數(shù)據(jù)庫JdglSys添加一個(gè)新的數(shù)據(jù)文件到文件組SECOND,邏輯名稱為JdglSys4,物理名稱及位置為: C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA \JdglSys4.ndf。大小為2M,每次增長1M,最大值為10M。,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,alter database JdglSys add file ( NAME =JdglSys4, FILENAME =C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\JdglSys4.ndf, SIZE = 1MB , MAXSIZE = 10MB , FILEGROWTH = 1MB )to filegroup second Go;,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,管理數(shù)據(jù)庫文件組 (1)、添加新的文件組 在默認(rèn)情況下,每一個(gè)數(shù)據(jù)庫都有一個(gè)默認(rèn)的PRIMARY文件組。這個(gè)PRIMARY文件組是不能被刪除的。用戶可以定義自己的文件組。使用ALTER DATABASE新建文件組的命令如下: ALTER DATABASE database_name ADD FILEGROUP filegroup_name; 【例4-6】給JdglSys數(shù)據(jù)庫添加一個(gè)新的文件組Third。 ALTER DATABASE JdglSys ADD FILEGROUP third; (2)、修改數(shù)據(jù)庫默認(rèn)的文件組 默認(rèn)文件組是指在新增數(shù)據(jù)庫數(shù)據(jù)文件時(shí),如果沒有明確指定,那么該文件將放置在默認(rèn)文件組中。用戶可以使用ALTER DATABASE語句設(shè)置指定數(shù)據(jù)庫中的默認(rèn)文件組,其命令如下: ALTER DATABASE database_name MODIFY FILEGROUP filegroup_name DEFAULT;,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,設(shè)置默認(rèn)文件組時(shí),只能將現(xiàn)有的文件組設(shè)置為默認(rèn)文件 如圖所示。 注意,不能在新建文件組的同時(shí)設(shè)置該文件組為默認(rèn)文件組。在下圖所示的示例中,在新建FORTH文件組的同時(shí)將其設(shè)置為默認(rèn)文件組,結(jié)果操作失敗。,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,雖然用戶可以指定默認(rèn)文件組,但是系統(tǒng)表等信息總是放在 PRIMARY文件組中。如果文件組不再需要了,還可以將 該文件組刪除。需要注意的是,只有當(dāng)文件組中不再包含數(shù) 據(jù)文件時(shí),才可以將該文件組刪除。,4.3.2 使用T-SQL語言修改數(shù)據(jù)庫,,,【例4-7】刪除JdglSys數(shù)據(jù)庫的空文件組Third。 語句: ALTER DATABASE JdglSys REMOVE FILEGROUP third; 執(zhí)行結(jié)果如圖 。,4.4 數(shù)據(jù)庫的分離和附加,,,數(shù)據(jù)庫的分離 分離數(shù)據(jù)庫是指將數(shù)據(jù)庫從SQL Server 2008 R2實(shí)例中刪除,但是該數(shù)據(jù)庫的數(shù)據(jù)文件和事務(wù)日志文件依然保持不變。這樣可以將該數(shù)據(jù)庫附加到任何的SQL Server 2008 R2實(shí)例中。 數(shù)據(jù)庫的附加 當(dāng)希望將分離后的數(shù)據(jù)庫附加到某個(gè)SQL Server 2008 R2實(shí)例中時(shí),可以使用Management Studio工具、也可 以使用CREATE DATABASE語句。附加數(shù)據(jù)庫時(shí)所有的數(shù) 據(jù)文件必須都是可用的。,4.4.1 數(shù)據(jù)庫的分離,,,數(shù)據(jù)庫的分離可以使用Management Studio工具來執(zhí)行分離操作,當(dāng)然也可以使用sp_detach_db存儲(chǔ)過程來執(zhí)行數(shù)據(jù)庫分離操作。 例如,如果想分離JdglSys數(shù)據(jù)庫,使用Management Studio工具操作。步驟如下: (1)選中JdglSys數(shù)據(jù)庫,【右擊】,在彈出的菜單中選中【任務(wù)】子菜單中選擇【分離】如圖4-25,會(huì)彈出【分離數(shù)據(jù)庫】的界面。,4.4.1 數(shù)據(jù)庫的分離,,,(2)在分離數(shù)據(jù)庫頁面上,可以對要分離的數(shù)據(jù)庫做以設(shè)定,點(diǎn)擊【確定】,即可。如下圖所示。,圖4-25 分離數(shù)據(jù)庫,4.4.1 數(shù)據(jù)庫的分離,,,也可以使用sp_detach_db系統(tǒng)存儲(chǔ)過程來分離數(shù)據(jù)庫,執(zhí)行如圖4-27所示的命令。,圖4-27 使用系統(tǒng)存儲(chǔ)過程分離數(shù)據(jù)庫,4.4.2 數(shù)據(jù)庫的附加,,,如果希望將分離后的JdglSys數(shù)據(jù)庫附加到指定的SQL Server 2008 R2實(shí)例中,在Management Studio工具中操作如下: (1)在Management Studio工具中選中最上端的【數(shù)據(jù)庫】,【右擊】在彈出的菜單中選擇【附加…】,如圖:,圖4-28 使用Mangement Studio工具附加數(shù)據(jù)庫,4.4.2 數(shù)據(jù)庫的附加,,,(2)在彈出的【附加數(shù)據(jù)庫】頁面上,點(diǎn)擊【添加】按鈕,在彈出的【定位數(shù)據(jù)庫文件】對話框中,選擇JdglSys數(shù)據(jù)庫的主數(shù)據(jù)文件JdglSys.mdf,點(diǎn)擊【確定】。如圖4-29所示。,圖4-29 選中要附加數(shù)據(jù)庫的主數(shù)據(jù)文件,4.4.2 數(shù)據(jù)庫的附加,,,(3)當(dāng)選中附加數(shù)據(jù)庫的主數(shù)據(jù)文件后,其他的數(shù)據(jù)庫相關(guān)文件都已經(jīng)關(guān)聯(lián)在數(shù)據(jù)庫中,如圖4-30所示。最后,添加【確定】即可。 圖4-30 要附加數(shù)據(jù)庫的其他數(shù)據(jù)文件,4.4.2 數(shù)據(jù)庫的附加,,,CREATE DATABASE語句來附加數(shù)據(jù)庫原有的文件。 【例4-8】寫CREATE DATABASE語句附加數(shù)據(jù)庫JdglSys。 語句: CREATE DATABASE JdglSys ON ( FILENAME = C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\JdglSys_Data.mdf ) FOR ATTACH GO,4.5 數(shù)據(jù)庫的收縮,,,當(dāng)用戶數(shù)據(jù)庫的數(shù)據(jù)增長到要超過它的使用空間時(shí),必須增加用戶數(shù)據(jù)庫的容量。相反,如果指派給用戶數(shù)據(jù)庫過多的存儲(chǔ)空間,可以通過縮減或收縮數(shù)據(jù)庫來減少存儲(chǔ)空間的浪費(fèi)。 SQL Server 2008R2采取預(yù)先分配空間的方法來建立數(shù)據(jù)庫的數(shù)據(jù)文件或日志文件,比如數(shù)據(jù)文件的空間分配了100MB,而實(shí)際上只占用了50MB空間,這樣就會(huì)造成存儲(chǔ)空間的浪費(fèi)。為此,SQL Server 2008 R2提供了收縮數(shù)據(jù)庫的功能,允許對數(shù)據(jù)庫中的每個(gè)文件進(jìn)行收縮,刪除已經(jīng)分配但沒有使用的頁。但注意,不能將整個(gè)數(shù)據(jù)庫收縮到比其原始大小還要小。因此,如果數(shù)據(jù)庫創(chuàng)建時(shí)的大小為10MB,后來增長到100MB,則將該數(shù)據(jù)庫最小能夠收縮到10MB(即使假定已經(jīng)刪除該數(shù)據(jù)庫中所有的數(shù)據(jù))。數(shù)據(jù)庫的收縮可以收縮整個(gè)數(shù)據(jù)庫,也可以收縮單個(gè)文件(因日志文件收縮和數(shù)據(jù)文件差別較大,此處暫不考慮單個(gè)日志文件的收縮)。,4.5 數(shù)據(jù)庫的收縮,,,當(dāng)用數(shù)據(jù)庫的收縮可以使用Mangement Studio工具,也可以使用T-SQL語句完成。 SQL Server 2008 R2支持對數(shù)據(jù)庫實(shí)行自動(dòng)收縮和手工收縮。,4.5.1 使用Mangement Studio工具收縮用戶數(shù)據(jù)庫,,,1.自動(dòng)收縮數(shù)據(jù)庫:設(shè)定JdglSys數(shù)據(jù)庫的收縮為自動(dòng)收縮。 (1)、在Management Studio工具中選擇JdglSys數(shù)據(jù)庫,【右擊】該數(shù)據(jù)庫,在彈出的菜單中選擇【屬性】,就會(huì)彈出數(shù)據(jù)庫屬性頁面。 (2)、在彈出數(shù)據(jù)庫屬性頁面上選中“選項(xiàng)”,在其他選項(xiàng)中“自動(dòng)”的“自動(dòng)收縮”的值選定為“True”。點(diǎn)擊【確定】即可。如圖4-32 自動(dòng)收縮數(shù)據(jù)庫。,圖4-32 自動(dòng)收縮數(shù)據(jù)庫,4.5.1 使用Mangement Studio工具收縮用戶數(shù)據(jù)庫,,,2.手動(dòng)收縮數(shù)據(jù)庫:設(shè)定JdglSys數(shù)據(jù)庫的收縮為手動(dòng)收縮。 (1)、選中要收縮的數(shù)據(jù)庫,【右擊】,在彈出的快捷菜單中選擇【任務(wù)】— 【收縮】—【數(shù)據(jù)庫】。如左圖所示。 (2)、在彈出收縮數(shù)據(jù)庫界面圖上,即可設(shè)定手動(dòng)收縮數(shù)據(jù)庫。如右圖。,4.5.1 使用Mangement Studio工具收縮用戶數(shù)據(jù)庫,,,1.自動(dòng)收縮數(shù)據(jù)庫:設(shè)定JdglSys數(shù)據(jù)庫的收縮為自動(dòng)收縮。 (1)、在Management Studio工具中選擇JdglSys數(shù)據(jù)庫,【右擊】該數(shù)據(jù)庫,在彈出的菜單中選擇【屬性】,就會(huì)彈出數(shù)據(jù)庫屬性頁面。 (2)、在彈出數(shù)據(jù)庫屬性頁面上選中“選項(xiàng)”,在其他選項(xiàng)中“自動(dòng)”的“自動(dòng)收縮”的值選定為“True”。點(diǎn)擊【確定】即可。如圖4-32 自動(dòng)收縮數(shù)據(jù)庫。,圖4-32 自動(dòng)收縮數(shù)據(jù)庫,4.5.2 使用T-SQL語句收縮數(shù)據(jù)庫,,,在SQL Server 2008 R2系統(tǒng)中,使用T-SQL語句收縮數(shù)據(jù)庫也有3種方式。第1種方式是設(shè)置數(shù)據(jù)庫為自動(dòng)收縮,可以通過設(shè)置AUTO_SHRINK數(shù)據(jù)庫選項(xiàng)實(shí)現(xiàn)。第2種方式是收縮整個(gè)數(shù)據(jù)庫的容量,可以通過使用DBCC SHRINKDATABASE命令完成。第3種方式是收縮指定的數(shù)據(jù)文件,這可以使用DBCC SHRINKFILE命令實(shí)現(xiàn)。 DBCC SHRINKDATABASE的語句格式如下: DBCC SHRINKDATABASE(database_name | database_id | 0 [ , target_percent ] ) 其中:database_name | database_id | 0 :要收縮的數(shù)據(jù)庫的名稱或ID。如果指定0,則使用當(dāng)前數(shù)據(jù)庫。 target_percent :數(shù)據(jù)庫收縮后的數(shù)據(jù)庫文件中所需的剩余可用空間百分比。,4.5.2 使用T-SQL語句收縮數(shù)據(jù)庫,,,例如:將JdglSys數(shù)據(jù)庫的空間縮減至可用剩余空間為60%。 語句為: DBCC SHRINKDATABASE(JdglSys,60);,圖4-36 設(shè)定手動(dòng)收縮文件,4.6 數(shù)據(jù)庫刪除,,,當(dāng)不需要數(shù)據(jù)庫時(shí),可以刪除它,即刪除數(shù)據(jù)庫和數(shù)據(jù)庫使用的磁盤文件。刪除數(shù)據(jù)庫可以通過Management Studio工具刪除,也可以使用T-SQL語句刪除數(shù)據(jù)庫。 1.使用Management Studio工具刪除數(shù)據(jù)庫 刪除數(shù)據(jù)庫的步驟: 選中要?jiǎng)h除的數(shù)據(jù)庫,【右擊】,在彈出的菜單中選擇【刪除】,就會(huì)彈出【刪除對象】頁面,在其上就是要?jiǎng)h除的數(shù)據(jù)庫信息,點(diǎn)擊【確定】即可刪除該數(shù)據(jù)庫。如圖4-38 刪除數(shù)據(jù)庫。,,,圖4-38 刪除數(shù)據(jù)庫,4.6 數(shù)據(jù)庫刪除,,,2.使用T-SQL語言刪除數(shù)據(jù)庫 刪除數(shù)據(jù)庫也可以是用DROP DATABASE語句來刪除。 DROP DATABASE語句的語法是: DROP DATABASE database_name[,…n]; 例如:使用DROP DATABASE語句刪除數(shù)據(jù)庫Studentdb。 語句為: DROP DATABASE Studentdb;,4.7 數(shù)據(jù)庫的備份和還原,,,盡管SQL Server 2008 R2提供了內(nèi)置的安全性和數(shù)據(jù)保護(hù),但是病毒破壞、計(jì)算機(jī)硬件設(shè)備故障以及誤操作等很可能導(dǎo)致數(shù)據(jù)的丟失和破壞。為了能盡快恢復(fù)系統(tǒng)的正常工作并把損失降低到最低,必須對系統(tǒng)數(shù)據(jù)進(jìn)行備份,以便在需要時(shí)能夠及時(shí)恢復(fù)數(shù)據(jù)。 在SQL Server 2008 R2中,可以備份整個(gè)數(shù)據(jù)庫,或者備份一個(gè)或多個(gè)文件或文件組。所以,SQL Server 2008 R2支持4種備份形式:完全數(shù)據(jù)庫備份(數(shù)據(jù)庫備份)、差異數(shù)據(jù)庫備份(增量備份)、事務(wù)日志備份、文件或文件組備份,4.7 數(shù)據(jù)庫的備份和還原,,,完全數(shù)據(jù)庫備份: 數(shù)據(jù)庫備份是指對數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)庫對象、數(shù)據(jù)和事物日志中的事務(wù)。這種備份方式非常簡便易行,通常按照一個(gè)常規(guī)的時(shí)間間隔進(jìn)行。在還原數(shù)據(jù)庫時(shí),只需用簡單的操作即可完成數(shù)據(jù)庫的恢復(fù)。恢復(fù)后的數(shù)據(jù)庫與備份完成時(shí)的數(shù)據(jù)庫狀態(tài)一致。 差異數(shù)據(jù)庫備份(增量備份): 是指將最近一次完全數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化備份起來,因此差異數(shù)據(jù)庫備份實(shí)際上是一種增量數(shù)據(jù)庫備份。 對于一個(gè)經(jīng)常進(jìn)行數(shù)據(jù)操作的數(shù)據(jù)庫而言,需要在完全數(shù)據(jù)庫備份的基礎(chǔ)上,進(jìn)行差異備份。,4.7 數(shù)據(jù)庫的備份和還原,,,事務(wù)日志備份: 是對數(shù)據(jù)庫發(fā)生的事務(wù)進(jìn)行備份,包括從上次事務(wù)日志備份、差異備份和完全數(shù)據(jù)庫備份后,數(shù)據(jù)庫已經(jīng)執(zhí)行完成的所有事務(wù)。它可以在相應(yīng)的數(shù)據(jù)庫備份的基礎(chǔ)上,將數(shù)據(jù)庫恢復(fù)到特定的即時(shí)點(diǎn)或恢復(fù)到故障點(diǎn)時(shí)的狀態(tài)。 文件或文件組備份 指對數(shù)據(jù)庫文件或文件夾進(jìn)行備份,但其不像完全數(shù)據(jù)庫備份那樣同時(shí)也進(jìn)行事務(wù)日志備份。使用該方法可提高數(shù)據(jù)庫恢復(fù)的速度,因?yàn)閮H對遭到破壞的文件或文件組進(jìn)行恢復(fù)。,4.7.1 數(shù)據(jù)庫備份,,,在進(jìn)行備份之前需要先指定或創(chuàng)建備份設(shè)備。備份設(shè)備是指SQL Server 2008 R2中存儲(chǔ)數(shù)據(jù)庫、事務(wù)日志或文件及文件組備份的存儲(chǔ)介質(zhì)。當(dāng)建立一個(gè)備份設(shè)備時(shí),需要給其分配一個(gè)邏輯名和一個(gè)物理名。物理名是操作系統(tǒng)用來標(biāo)識備份設(shè)備的名稱。邏輯名是用來標(biāo)識物理備份設(shè)備的別名。邏輯名稱永久地存儲(chǔ)在SQL Server 2008 R2的系統(tǒng)表中,使用邏輯名比物理名簡單的多。 通過創(chuàng)建酒店管理數(shù)據(jù)庫JdglSys的備份來說明數(shù)據(jù)庫的備份。,4.7.1 數(shù)據(jù)庫備份,,,1.創(chuàng)建備份設(shè)備 方法有兩種:使用Mangement Studio工具和使用系統(tǒng)存儲(chǔ)存儲(chǔ)sp_addumpdevice。此處僅介紹使用Mangement Studio工具創(chuàng)建備份設(shè)備。步驟如下: (1)在“對象資源管理器”窗口中,【單擊】服務(wù)器名稱以展開服務(wù)器,找到【服務(wù)器對象】并點(diǎn)擊展開,然后,選中【備份設(shè)備】 (2)選中【備份設(shè)備】右擊,在彈出的菜單中選擇【新建備份設(shè)備】,打開【備份設(shè)備】對話框,如圖4-39所示。 (3)在對話框中,輸入要?jiǎng)?chuàng)建的設(shè)備名稱及目標(biāo)設(shè)備或文件,單擊【確定】即可。如圖4-40 定位備份設(shè)備對應(yīng)的數(shù)據(jù)庫文件所示。,4.7.1 數(shù)據(jù)庫備份,,,,,圖4-39 “備份設(shè)備”對話框,,圖4-40 定位備份設(shè)備對應(yīng)的數(shù)據(jù)庫文件,4.7.1 數(shù)據(jù)庫備份,,,2.備份操作 創(chuàng)建好某個(gè)備份設(shè)備后, 就可以將該數(shù)據(jù)庫備份到此設(shè)備上。 備份操作的方法也有兩種,可以在Management Studio工具中進(jìn)行,也可以使用BACKUP DATABASE語句來進(jìn)行備份。 (1)使用Mangement Studio工具執(zhí)行備份操作 1)在“對象資源管理器”窗口中,【單擊】服務(wù)器名稱以展開服務(wù)器,找到【數(shù)據(jù)庫】并點(diǎn)擊展開,然后,選中要備份的數(shù)據(jù)庫。 2)右擊選中的備份數(shù)據(jù)庫,在彈出的菜單中選擇【任務(wù)】,級聯(lián)菜單中選擇【備份…】,將彈出【備份數(shù)據(jù)庫】對話框。如圖4-41所示。 3)在“備份類型”列表框中,選擇類型“完整”。創(chuàng)建完整數(shù)據(jù)庫備份之后,可以創(chuàng)建差異數(shù)據(jù)庫備份。對于“備份組件”,選擇“數(shù)據(jù)庫”,也可以根據(jù)需要選擇“文件組”。在目標(biāo)部分,可以選擇添加或刪除其他備份設(shè)備。最后單擊【確定】即可。,,,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,圖4-42 “備份數(shù)據(jù)庫”成功,,圖4-41 “備份數(shù)據(jù)庫”對話框,圖4-42 “備份數(shù)據(jù)庫”成功,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,(2)使用BACKUP DATABASE語句來執(zhí)行備份操作 執(zhí)行BACKUP DATABASE語句可以創(chuàng)建完整數(shù)據(jù)庫備份,同時(shí)指定要備份的數(shù)據(jù)庫名稱和寫入完整數(shù)據(jù)庫備份的備份設(shè)備。 完整數(shù)據(jù)庫備份的語法格式如下: BACKUP DATABASE database_name TO [ ,.n ] [ WITH DIFFERENTIAL ][;] 備份事務(wù)日志的語句為: BACKUP LOG database_name TO [ ,.n ] [ WITH NO_TRUNCATE] [;],,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,其中: :指定用于備份操作的邏輯備份設(shè)備名或物理備份設(shè)備。 WITH DIFFERENTIAL:指定數(shù)據(jù)庫備份或文件備份應(yīng)該只包含上次完整備份后更改的數(shù)據(jù)庫或文件部分。 WITH NO_TRUNCATE:指定不截?cái)嗳罩尽?,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,【例4-9】完整備份數(shù)據(jù)庫JdglSys到指定的備份設(shè)備JdglSys_backup上。 語句為: backup database JdglSys to JdglSys_backup;,,圖4-43 完全備份數(shù)據(jù)庫,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,【例4-10】差異備份數(shù)據(jù)庫JdglSys到指定的備份設(shè)備JdglSys_backup上。 語句為: backup database JdglSys to JdglSys_backup with differential;,,圖4-44 差異備份數(shù)據(jù)庫,4.2.2 使用T-SQL語言創(chuàng)建數(shù)據(jù)庫,,,【例4-11】備份數(shù)據(jù)庫JdglSys的日志到備份設(shè)備JdglSys_backup,不截?cái)嗳罩荆J(rèn)為截?cái)啵?語句為: backup log JdglSys to JdglSys_backup with NO_TRUNCATE;,,圖4-45備份事務(wù)日志,4.7.2 數(shù)據(jù)庫還原,,,還原是備份的逆向操作。可以通過Mangement Studio工具和使用SQL語句兩種方法來進(jìn)行還原。此處僅介紹使用工具還原數(shù)據(jù)庫。 步驟如下: (1)在“對象資源管理器”窗口中,【單擊】服務(wù)器名稱以展開服務(wù)器,找到【數(shù)據(jù)庫】并點(diǎn)擊展開,然后,選中要還原的數(shù)據(jù)庫。 (2)右擊選中的還原數(shù)據(jù)庫,在彈出的菜單中選擇【任務(wù)】,級聯(lián)菜單中選擇【還原…】,在下一級菜單中選擇還原類型,將彈出【還原數(shù)據(jù)庫】對話框。 (3)在“選擇用于還原的備份集”中,選擇類型還原。注意:此處,必須先做一次完全數(shù)據(jù)庫備份還原,才可以進(jìn)行差異或事務(wù)日志還原。最后單擊【確定】即可。,4.8 本章小結(jié),,,本章中闡述了SQL Server 2008 R2數(shù)據(jù)庫管理,涉及到的主要內(nèi)容包括: 數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),介紹了兩方面,包括邏輯存儲(chǔ)結(jié)構(gòu)(表現(xiàn)為各種數(shù)據(jù)庫對象)和物理存儲(chǔ)結(jié)構(gòu)(指各種類型的數(shù)據(jù)庫文件)并簡單介紹SQL Server 2008 R2系統(tǒng)中的自帶數(shù)據(jù)庫。 接著介紹數(shù)據(jù)庫管理方法的常用管理,包括數(shù)據(jù)庫的創(chuàng)建、修改、分離與附加、收縮、刪除、備份和還原。每一種管理基本上是用兩種方法來管理,一是Management Studio工具、二是T-SQL語句。在數(shù)據(jù)庫創(chuàng)建的小節(jié)中除了介紹用兩種方法創(chuàng)建數(shù)據(jù)庫,還介紹了查看數(shù)據(jù)庫相關(guān)信息的方法,這些查看的方法在每做過一種管理之后,都有可能被用到去查看是否達(dá)到想要的管理效果。,4.8 本章小結(jié),,,修改數(shù)據(jù)庫涉及到了數(shù)據(jù)庫的更名、擴(kuò)大容量(3種方法:自動(dòng)增長、擴(kuò)大數(shù)據(jù)庫文件、增加數(shù)據(jù)庫文件)、添加文件組。數(shù)據(jù)庫的分離和附加在把數(shù)據(jù)庫從一個(gè)實(shí)例轉(zhuǎn)移到另一個(gè)實(shí)例時(shí)很有用。收縮數(shù)據(jù)庫可以幫助我們收回分配給數(shù)據(jù)庫的過多的空閑空間。不需要時(shí)可以刪除數(shù)據(jù)庫,注意刪除某用戶數(shù)據(jù)庫之后,要及時(shí)備份master數(shù)據(jù)庫。從安全的角度看,管理數(shù)據(jù)庫還包括數(shù)據(jù)庫的備份和還原。在備份和還原一小節(jié)中,介紹了備份和還原的基本知識和操作。,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- SQLSERVER 數(shù)據(jù)庫 管理
鏈接地址:http://zhongcaozhi.com.cn/p-2897840.html