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