版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫原理與應用主講:林祥果通訊系電子教研室(09民航運輸信息管理)第8章
數(shù)據(jù)庫的創(chuàng)建和管理學習要點:SQLServer數(shù)據(jù)庫的存儲結構事務日志的概念數(shù)據(jù)庫的創(chuàng)建、刪除、管理主要內容8.1數(shù)據(jù)庫的存儲結構8.2創(chuàng)建和管理數(shù)據(jù)庫8.3備份和還原數(shù)據(jù)庫8.4數(shù)據(jù)的導入導出數(shù)據(jù)庫的存儲結構是指數(shù)據(jù)庫文件在磁盤上如何存儲。SQLServer中每個數(shù)據(jù)庫由一組操作系統(tǒng)文件組成。數(shù)據(jù)庫中的所有數(shù)據(jù)、對象和數(shù)據(jù)庫操作日志都存儲在這些文件中。8.1數(shù)據(jù)庫的存儲結構8.1.1數(shù)據(jù)庫文件數(shù)據(jù)庫文件可以分為三類:主數(shù)據(jù)庫文件次數(shù)據(jù)庫文件事務日志文件1.主數(shù)據(jù)庫文件(PrimaryDatabasefile)每個數(shù)據(jù)庫有且僅有一個主數(shù)據(jù)庫文件,主數(shù)據(jù)庫文件用來存儲數(shù)據(jù)庫的啟動信息和部分或全部數(shù)據(jù)。一個數(shù)據(jù)庫可以有1到多個數(shù)據(jù)庫文件,其中只有一個文件為主數(shù)據(jù)庫文件。主數(shù)據(jù)庫文件的文件擴展名為mdf。8.1.1數(shù)據(jù)庫文件2.次數(shù)據(jù)庫文件(SecondaryDatabaseFile)用于存儲主數(shù)據(jù)庫文件中未存儲的剩余數(shù)據(jù)和數(shù)據(jù)庫對象。一個數(shù)據(jù)庫可以沒有次數(shù)據(jù)庫文件,也可以有多個次數(shù)據(jù)庫文件。次數(shù)據(jù)庫文件的文件擴展名為ndf。3.事務日志文件(TranscationLogFile)用于存儲數(shù)據(jù)庫的更新情況等事務日志信息。當數(shù)據(jù)庫損壞時,可以使用事務日志文件恢復數(shù)據(jù)庫。一個數(shù)據(jù)庫可以有1到多個事務日志文件。事務日志文件的擴展名為ldf。8.1.1數(shù)據(jù)庫文件1.邏輯文件名邏輯文件名是在所有Transact-SQL語句中引用文件時所使用的名稱。邏輯文件名必須遵守SQLServer標識符的命名規(guī)則,且對數(shù)據(jù)庫必須是唯一的。2.物理文件名數(shù)據(jù)庫文件在物理磁盤上的存儲路徑及文件名稱構成數(shù)據(jù)庫文件的物理名稱,物理文件名必須遵從操作系統(tǒng)文件名的命名規(guī)則。8.1.1數(shù)據(jù)庫文件例如:邏輯文件名物理文件名My_Dbfile1e:\sql_data\pri_file1.mdfMy_Dbfile2e:\sql_data\pri_file2.ndfMy_Dbfile3e:\sql_data\pri_file3.ndfMy_Logfile1e:\sql_log\log_file1.ldfMy_Logfile2e:\sql_log\log_file2.ldf8.1.2數(shù)據(jù)庫文件組為了便于分配和管理,SQLServer允許將多個文件歸納為同一組,并賦予此組一個名稱,這就是文件組。1.主文件組(PrimaryFileGroup)所有數(shù)據(jù)庫都至少包含一個主文件組,主文件組中包含了所有的系統(tǒng)表,當建立數(shù)據(jù)庫時,主文件組包括主數(shù)據(jù)庫文件和未指定組的其他文件。
2.次文件組(SecondaryFileGroup)數(shù)據(jù)庫還可以包含用戶定義的文件組,也稱次文件組。8.1.2數(shù)據(jù)庫文件組3.默認文件組每個數(shù)據(jù)庫中都有一個文件組作為默認文件組運行。當SQLServer給創(chuàng)建時沒有為其指定文件組的表或索引分配頁時,將從默認文件組中進行分配。一次只能有一個文件組作為默認文件組。默認文件組可以由用戶來指定。如果沒有指定默認文件組,則主文件組是默認文件組。8.1.2數(shù)據(jù)庫文件組文件組中的每個文件通常建立在不同的硬盤驅動器上,這樣可減輕單個磁盤驅動器的存儲負載,提高數(shù)據(jù)庫的存儲效率,從而提高系統(tǒng)性能。SQLServer2000在沒有文件組時也能有效地工作,因此許多系統(tǒng)不需要指定次文件組。在這種情況下,所有文件都包含在主文件組中。事務日志文件是獨立的,不能作為任何文件組的成員。數(shù)據(jù)庫文件和文件組的關系數(shù)據(jù)庫數(shù)據(jù)文件日志文件主文件組(1個)次文件組(0~多個)邏輯文件名1邏輯文件名2邏輯文件名n物理文件名1物理文件名2物理文件名n……邏輯文件名1邏輯文件名2邏輯文件名n物理文件名1物理文件名2物理文件名n……主數(shù)據(jù)文件8.2創(chuàng)建和管理數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫查看數(shù)據(jù)庫修改數(shù)據(jù)庫刪除數(shù)據(jù)庫8.2.1創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫的過程實際上是確定數(shù)據(jù)庫的名稱、設計數(shù)據(jù)庫所占用的存儲空間和文件的存放位置。每個新創(chuàng)建的數(shù)據(jù)庫都包含以下數(shù)據(jù)庫對象:關系圖、表、視圖、存儲過程、用戶、角色、規(guī)則、默認、用戶定義的數(shù)據(jù)類型和用戶定義的函數(shù)。創(chuàng)建數(shù)據(jù)庫的途徑:兩個途徑企業(yè)管理器Transact-SQL語句“數(shù)據(jù)庫屬性”對話框向導一.
使用向導創(chuàng)建數(shù)據(jù)庫菜單:工具→向導→創(chuàng)建數(shù)據(jù)庫向導→……工具欄:一.
使用向導創(chuàng)建數(shù)據(jù)庫一.
使用向導創(chuàng)建數(shù)據(jù)庫一.
使用向導創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫文件初始大小數(shù)據(jù)庫文件邏輯名稱物理文件名將默認為:邏輯文件名.MDF一.
使用向導創(chuàng)建數(shù)據(jù)庫按百分比增長:發(fā)生增長時文件大小百分比一.
使用向導創(chuàng)建數(shù)據(jù)庫事務日志文件初始大小事務日志文件邏輯名稱物理文件名將默認為:邏輯文件名.LDF一.
使用向導創(chuàng)建數(shù)據(jù)庫一.
使用向導創(chuàng)建數(shù)據(jù)庫二.使用“數(shù)據(jù)庫屬性”對話框創(chuàng)建數(shù)據(jù)庫菜單操作:右擊數(shù)據(jù)庫文件夾或在其下屬任一數(shù)據(jù)庫圖標,選擇“新建數(shù)據(jù)庫”選項。工具欄操作:二.
使用“數(shù)據(jù)庫屬性”創(chuàng)建數(shù)據(jù)庫單擊數(shù)據(jù)文件選項卡,設置其中的選項。在這里可以直接定義新的文件組二.
使用“數(shù)據(jù)庫屬性”創(chuàng)建數(shù)據(jù)庫單擊事務日志選項卡,設置其中的選項。三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫格式:CREATEDATABASE數(shù)據(jù)庫名稱[ON[<文件說明>[,...n]][,<文件組>[,...n]]][LOGON{<文件說明>[,...n]}]參數(shù)說明:數(shù)據(jù)庫名稱:新數(shù)據(jù)庫的名稱。ON關鍵字:其后的參數(shù)指定用來存儲數(shù)據(jù)庫數(shù)據(jù)的磁盤文件(數(shù)據(jù)文件)。<文件說明>:定義主文件組的數(shù)據(jù)文件。<文件組>:定義用戶文件組及其文件。LOGON:指定日志文件。其后的<文件說明>用以定義日志文件。如果沒有指定LOGON,將自動創(chuàng)建一個日志文件,該文件使用系統(tǒng)生成的名稱,大小為數(shù)據(jù)庫中所有數(shù)據(jù)文件總大小的25%。三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫<文件說明>和<文件組>進一步定義如下:<文件說明>::= [PRIMARY] ([NAME=邏輯文件名,] FILENAME='物理文件名' [,SIZE=初始大小] [,MAXSIZE={最大限制|UNLIMITED}] [,FILEGROWTH=增長量])[,...n] <文件組>::= FILEGROUP文件組名稱<文件說明>[,...n]三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASEdatabase_name[ON[PRIMARY] [(NAME=logical_file_name,] FILENAME=‘os_file_name' [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment])[,…n] [,<filegroupspec>[,…n]][LOGON{(NAME=logical_file_name,] FILENAME=‘os_file_name' [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment])[,…n]}]【例8-1】設已經(jīng)在e盤建立了兩個文件夾:e:\sql_data和e:\sql_log,分別用來存放數(shù)據(jù)庫文件和事務日志文件,使用CREATEDATABASE語句創(chuàng)建一個company數(shù)據(jù)庫:三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASEcompany--創(chuàng)建數(shù)據(jù)庫ONPRIMARY--定義在主文件組上的文件( NAME=company_data,--邏輯名稱
FILENAME='e:\sql_data\company.mdf',--物理名稱
SIZE=10,--初始大小為10MB MAXSIZE=unlimited,--最大限制為無限大
FILEGROWTH=10%--增長速度為10%)LOGON--定義事務日志文件( NAME=company_log,--邏輯名稱
FILENAME='e:\sql_log\company.ldf',--物理名稱
SIZE=1,--初始大小為1MB MAXSIZE=5,--最大限制為5MB FILEGROWTH=1--增長速度為1MB)三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫練習8-1創(chuàng)建一個數(shù)據(jù)庫sample。主文件為sample_dat.mdf,邏輯文件名為sample_dat,大小為5MB,最大值50MB,按10%增長。CREATEDATABASEsampleONPRIMARY(NAME=sample_dat,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sample_data.mdf',SIZE=5,MAXSIZE=50,FILEGROWTH=10)【例8-2】創(chuàng)建一個雇員信息數(shù)據(jù)庫,包含兩個數(shù)據(jù)文件和兩個事務日志文件。三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASEemployeesONPRIMARY--定義在主文件組上的文件( NAME=employee1,--主數(shù)據(jù)文件邏輯名稱
FILENAME='e:\sql_data\employee1.mdf',--物理名稱
SIZE=10,--主數(shù)據(jù)文件初始大小為10MB MAXSIZE=unlimited,--最大限制為無限大
FILEGROWTH=10%--增長速度為10%),( NAME=employee2,--次數(shù)據(jù)文件邏輯名稱
FILENAME='e:\sql_data\employee2.ndf',--物理名稱
SIZE=20,--次數(shù)據(jù)文件初始大小為20MB MAXSIZE=100,--次數(shù)據(jù)文件最大限制為100MB FILEGROWTH=1--次數(shù)據(jù)文件增長速度為1MB)三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫LOGON--定義事務日志文件( NAME=employeelog1,--事務日志文件邏輯名文件
FILENAME='e:\sql_log\employeelog1.ldf',--物理名稱
SIZE=10,--初始大小為50MB MAXSIZE=50,--最大限制為50MB FILEGROWTH=1--增長速度為1MB),( NAME=employeelog2,--事務日志邏輯文件名
FILENAME='e:\sql_log\employeelog2.ldf',--物理名稱
SIZE=10,--初始大小為10MB MAXSIZE=50,--最大限制為50MB FILEGROWTH=1--增長速度為1MB)三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫練習8-2創(chuàng)建一個只包含一個數(shù)據(jù)文件和一個日志文件的數(shù)據(jù)庫。該數(shù)據(jù)庫名為Sales,數(shù)據(jù)文件的邏輯名為Sales_data,數(shù)據(jù)文件的操作系統(tǒng)名為sales_data.mdf,初始大小為10MB,最大可增加至500MB,增幅為10%;日志文件的邏輯名為Sales_log,操作系統(tǒng)名為sales_log.ldf,初始大小為5MB,最大值為100MB,日志文件大小以2MB增幅增加。
CREATEDATABASESales
ON
(NAME=Sales_data,
FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sales_data.mdf',
SIZE=10MB,
MAXSIZE=500MB,
FILEGROWTH=10%)LOGON(NAME=Sales_log,
FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sales_log.ldf',
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=2MB)【例8-3】創(chuàng)建test數(shù)據(jù)庫,包含一個主文件組和兩個次文件組,每個文件組包含兩個文件。三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASEtestONPRIMARY--定義在主文件組上的文件( NAME=pri_file1, FILENAME='e:\sql_data\pri_file1.mdf', SIZE=10,MAXSIZE=50,FILEGROWTH=15%),( NAME=pri_file2, FILENAME='e:\sql_data\pri_file2.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=15%),三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫FILEGROUPGrp1--定義在次文件組Grp1上的文件( NAME=Grp1_file1, FILENAME='e:\sql_data\Grp1_file1.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=5),( NAME=Grp1_file2, FILENAME='e:\sql_data\Grp1_file2.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=5),三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫FILEGROUPGrp2--定義在次文件組Grp2上的文件( NAME=Grp2_file1, FILENAME='e:\sql_data\Grp2_file1.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=5),( NAME=Grp2_file2, FILENAME='e:\sql_data\Grp2_file2.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON--定義事務日志文件( NAME='test_log', FILENAME='e:\sql_log\test_log.ldf', SIZE=5,MAXSIZE=25,FILEGROWTH=5)三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫練習2-3創(chuàng)建一個包含多個數(shù)據(jù)文件和日志文件的數(shù)據(jù)庫。該數(shù)據(jù)庫名為student,含有三個初始大小為10MB的數(shù)據(jù)文件和兩個8MB的日志文件。
CREATEDATABASEstudentONPRIMARY(NAME=std_dat1,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\student1.mdf',SIZE=10MB,MAXSIZE=200MB,FILEGROWTH=20),(NAME=std_dat2,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\student2.ndf',SIZE=10MB,MAXSIZE=200MB,FILEGROWTH=20),(NAME=std_dat3,
FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\student3.ndf',
SIZE=10MB,
MAXSIZE=200MB,
FILEGROWTH=20)
LOGON
(NAME=std_log1,
FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\stdlog1.ldf',
SIZE=8MB,
MAXSIZE=100MB,
FILEGROWTH=10MB),
(NAME=std_log2,
FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\stdlog2.ldf',
SIZE=8MB,
MAXSIZE=100MB,
FILEGROWTH=10MB)練習8-4創(chuàng)建一個包含兩個文件組的數(shù)據(jù)庫。該數(shù)據(jù)庫名為business,主文件組包含business_dat1和business_dat2兩個數(shù)據(jù)文件。文件組business_group包含文件數(shù)據(jù)文件business_dat3。該數(shù)據(jù)庫還包含一個日志文件business_log。
CREATEDATABASEbusinessONPRIMARY(NAME=business_dat1,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\businessdat1.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10),(NAME=business_dat2,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\businessdat2.ndf',SIZE=10MB,MAXSIZE=500MB,FILEGROWTH=10),FILEGROUPbusiness_group(NAME=business_dat3,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\businessdat3.ndf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOGON(NAME=business_log,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\businesslog.ldf',SIZE=8MB,MAXSIZE=100MB,FILEGROWTH=10MB)創(chuàng)建數(shù)據(jù)庫需要注意以下幾點:每個數(shù)據(jù)庫都有一個所有者,可以在該數(shù)據(jù)庫中執(zhí)行某些特殊的活動,數(shù)據(jù)庫被創(chuàng)建之后,創(chuàng)建數(shù)據(jù)庫的用戶自動成為該數(shù)據(jù)庫的所有者。默認情況下,只有系統(tǒng)管理員和數(shù)據(jù)庫所有者可以創(chuàng)建數(shù)據(jù)庫,也可以授權其他用戶創(chuàng)建數(shù)據(jù)庫。在每個SQLServer實例下,最多只能創(chuàng)建32767個數(shù)據(jù)庫。所創(chuàng)建的數(shù)據(jù)庫名稱必須符合標識符的命名規(guī)則。要讓日志文件能夠發(fā)揮作用,通常將數(shù)據(jù)文件和日志文件存儲在不同的物理磁盤上。三.使用T-SQL語句創(chuàng)建數(shù)據(jù)庫執(zhí)行CREATEDATABASE語句后,可以在企業(yè)管理器中查看創(chuàng)建數(shù)據(jù)庫的結果。方法是:
展開數(shù)據(jù)庫文件夾→右擊的數(shù)據(jù)庫→選擇“屬性”,打開數(shù)據(jù)庫屬性對話框,從各選項卡上可以查看所創(chuàng)建數(shù)據(jù)庫的各種屬性。8.2.2查看數(shù)據(jù)庫例如,test數(shù)據(jù)庫的屬性對話框:8.2.2查看數(shù)據(jù)庫用T-SQL語句查看數(shù)據(jù)庫的屬性使用系統(tǒng)存儲過程sp_helpdb可以查看某個數(shù)據(jù)庫或所有數(shù)據(jù)庫的屬性。格式:sp_helpdb
database_name
該存儲過程顯示了Sales數(shù)據(jù)庫的名稱、大小、所有者、創(chuàng)建日期以及數(shù)據(jù)文件和日志文件等屬性。例8-4查看數(shù)據(jù)庫Sales的屬性。
sp_helpdbSales例8-5查看所有數(shù)據(jù)庫的屬性
sp_helpdb
8.2.3修改數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫之后,可以在企業(yè)管理器中利用數(shù)據(jù)庫屬性對話框直接修改創(chuàng)建時的某些設置,或修改創(chuàng)建時無法設置的屬性,也可以使用Transcat-SQL語言的ALTERDATABASE語句修改數(shù)據(jù)庫。一.使用企業(yè)管理器修改數(shù)據(jù)庫展開數(shù)據(jù)庫文件夾→右擊數(shù)據(jù)庫名稱→選擇“屬性”命令,打開數(shù)據(jù)庫屬性對話框。在該對話框上有多個選項卡,可以在各選項卡上查看或修改數(shù)據(jù)庫文件及其他屬性。一.使用企業(yè)管理器修改數(shù)據(jù)庫“數(shù)據(jù)庫屬性”對話框各選項說明如下:限制訪問:指定只有db_owner、dbcreator
或sysadmin
的成員的用戶才可以訪數(shù)據(jù)庫。單用戶:指定一次只能有一個用戶訪問數(shù)據(jù)庫。模型:指定數(shù)據(jù)庫的恢復模型類型。以確定如何備份數(shù)據(jù)以及能承受何種程度的數(shù)據(jù)丟失ANSINULL默認設置:指定將數(shù)據(jù)表列默認定義為NULL還是NOTNULL。當選擇此選項時,在CREATETABLE或ALTERTABLE語句過程中,沒有顯式定義為NOTNULL的列都將默認為允許空值。一.使用企業(yè)管理器修改數(shù)據(jù)庫遞歸觸發(fā)器:允許觸發(fā)器遞歸調用。SQLServer設定的觸發(fā)器遞歸調用的層數(shù)最多為32層。自動更新統(tǒng)計信息:指定在優(yōu)化期間自動生成查詢優(yōu)化所需的過時統(tǒng)計信息。殘缺頁檢測:允許自動檢測有損壞的頁。自動關閉:當數(shù)據(jù)庫中無用戶時,自動關閉該數(shù)據(jù)庫,并將所占用的資源交還給操作系統(tǒng)。自動收縮:允許定期對數(shù)據(jù)庫進行檢查,當數(shù)據(jù)庫文件或日志文件的未用空間超過其大小的25%時,系統(tǒng)將會自動縮減文件使其未用空間等于25%。一.使用企業(yè)管理器修改數(shù)據(jù)庫自動創(chuàng)建統(tǒng)計信息:指定在優(yōu)化期間自動生成優(yōu)化查詢所需的任何缺少的統(tǒng)計信息。使用被引用的標識符:指定SQLServer將強制執(zhí)行關于引號的ANSI規(guī)則。選擇此選項指定雙引號只能用于標識符,比如列和表的名稱。字符串必須包含在單引號內。格式:ALTERDATABASE數(shù)據(jù)庫名稱{ADDFILE<文件說明>[,...n][TOFILEGROUP文件組名稱]|ADDLOGFILE<文件說明>[,...n]|REMOVEFILE邏輯文件名|ADDFILEGROUP文件組名稱|REMOVEFILEGROUP文件組名稱|MODIFYFILE<文件說明>|MODIFYNAME=新數(shù)據(jù)庫名|MODIFYFILEGROUP文件組名稱{文件組屬性|NAME=新文件組名稱}二.使用T-SQL語句修改數(shù)據(jù)庫參數(shù)說明:數(shù)據(jù)庫名稱:是要更改的數(shù)據(jù)庫的名稱。ADDFILE:指定要添加文件。該文件由后面的<文件說明>指定。<文件說明>定義如下:
<文件說明>::=(NAME=邏輯文件名
[,NEWNAME=新邏輯文件名][,FILENAME='物理文件名'][,SIZE=大小][,MAXSIZE={最大限制|UNLIMITED}][,FILEGROWTH=增長量])二.使用T-SQL語句修改數(shù)據(jù)庫TOFILEGROUP:表示要將指定的文件添加到其后指定的的文件組中。ADDLOGFILE:表示要將其后指定的日志文件添加到指定的數(shù)據(jù)庫中。REMOVEFILE:從數(shù)據(jù)庫系統(tǒng)表中刪除文件描述并刪除物理文件。ADDFILEGROUP:指定要添加文件組。REMOVEFILEGROUP:從數(shù)據(jù)庫中刪除文件組。只有當文件組為空時才能將其刪除。二.使用T-SQL語句修改數(shù)據(jù)庫MODIFYFILE:表示要更改指定的文件,可以更改文件名稱、大小、增長情況和最大限制。一次只能更改一種屬性。如果指定了SIZE,那么新的大小必須比文件當前大小還大。MODIFYNAME=新數(shù)據(jù)庫名:表示要重命名數(shù)據(jù)庫。MODIFYFILEGROUP文件組名稱{文件組屬性|NAME=新文件組名稱}:指定要修改的文件組和所需的改動。如果指定“文件組名稱”和“NAME=新文件組名稱”,則將此文件組的名稱改為新文件組名稱。如果指定“文件組名稱”和“文件組屬性”,則表示修改文件組的屬性。二.使用T-SQL語句修改數(shù)據(jù)庫“文件組屬性”的值有:READONLY——指定文件組為只讀。不允許更新其中的對象。主文件組不能設置為只讀。READWRITE——指定文件組為讀寫屬性。允許更新文件組中的對象。只有具有排它數(shù)據(jù)庫訪問權限的用戶才能將文件組標記為讀/寫。DEFAULT——將文件組指定為默認數(shù)據(jù)庫文件組。只能有一個數(shù)據(jù)庫文件組是默認的。二.使用T-SQL語句修改數(shù)據(jù)庫二.使用T-SQL語句修改數(shù)據(jù)庫【例8-6】添加一個事務日志文件到employees數(shù)據(jù)庫中。ALTERDATABASEemployeesADDLOGFILE--添加日志文件(NAME=employeelog3,FILENAME='e:\sql_log\employeelog3.ldf',SIZE=1,MAXSIZE=50,FILEGROWTH=1)二.使用T-SQL語句修改數(shù)據(jù)庫【例8-7】添加一個包含兩個數(shù)據(jù)文件的文件組到employees數(shù)據(jù)庫中。二.使用T-SQL語句修改數(shù)據(jù)庫
ALTERDATABASEemployees ADDFILEGROUPdata1--添加文件組data1ALTERDATABASEemployeesADDFILE--添加數(shù)據(jù)文件
(NAME=employee3,FILENAME='e:\sql_data\employee3.ndf',SIZE=1,MAXSIZE=50,FILEGROWTH=1),
(NAME=employee4,FILENAME='e:\sql_data\employee4.ndf',SIZE=2,MAXSIZE=50,FILEGROWTH=10%)TOFILEGROUPdata1--將以上兩個文件添加到data1文件組MODIFYFILEGROUPfilegroup_name{filegroup_property
|NAME=new_filegroup_name}:修改某一文件組的屬性。練習8-7為數(shù)據(jù)庫sample添加一個數(shù)據(jù)文件sample_dat2和一個日志文件sample_log2。ALTERDATABASEsampleADDFILE(NAME=sample_dat2,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sample_dat2.ndf',SIZE=4,MAXSIZE=10,FILEGROWTH=1)ALTERDATABASEsampleADDLOGFILE(NAME=sample_log2,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sample_log2.ldf',SIZE=4,MAXSIZE=10,FILEGROWTH=1)練習8-8為數(shù)據(jù)庫sample添加一個文件組USER1,并向該文件組添加一個二個數(shù)據(jù)文件sampuser_dat1和sampuser_dat2。
ALTERDATABASEsampleADDFILEGROUPUSER1
ALTERDATABASEsampleADDFILE(NAME=sampuser_dat1,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sampuser_dat1.ndf',SIZE=4,MAXSIZE=10,FILEGROWTH=1),(NAME=sampuser_dat2,FILENAME='d:\programfiles\microsoft
sqlserver\mssql\data\sampuser_dat2.ndf',SIZE=4,MAXSIZE=10,FILEGROWTH=1)TOFILEGROUPUSER1【例8-8】刪除例8-4中添加到數(shù)據(jù)庫employees中的一個數(shù)據(jù)文件employee4。
ALTERDATABASEemployees REMOVEFILEemployee4二.使用T-SQL語句修改數(shù)據(jù)庫練習8-9從數(shù)據(jù)庫sample中刪除文件sampuser_dat2。ALTERDATABASEsampleREMOVEFILEsampuser_dat2練習8-10刪除數(shù)據(jù)庫sample中的文件組USER1。ALTERDATABASEsampleREMOVEFILEsampuser_dat1ALTERDATABASEsampleREMOVEFILEGROUPUSER1注意:在刪除文件組時必須先刪除文件組中所包含的文件。
【例8-9】給添加到數(shù)據(jù)庫employees中的文件。employee3增加大小。
ALTERDATABASEemployees MODIFYFILE (NAME=employee3, SIZE=5MB)二.使用T-SQL語句修改數(shù)據(jù)庫練習8-11修改數(shù)據(jù)庫sample中數(shù)據(jù)文件sample_dat2的屬性,將其初始大小改為10MB,最大容量改為80MB,增長幅度改為5MB。ALTERDATABASEsampleMODIFFILE(NAME=sample_dat2,SIZE=10,MAXSIZE=80,FILEGROWTH=5)【例8-10】將數(shù)據(jù)庫文件名employees修改成MyEmployeesALTERDATABASEemployeesMODIFYNAME=MyEmployees二.使用T-SQL語句修改數(shù)據(jù)庫練習8-12修改數(shù)據(jù)庫business中文件組business_group的屬性,將其改名為group1,并設置為DEFAULT屬性(即該文件組為默認文件組)。ALTERDATABASEbusinessMODIFYFILEGROUPbusiness_groupNAME=group1ALTERDATABASEbusinessMODIFYFILEGROUPgroup1DEFAULT練習8-13將數(shù)據(jù)庫student改名為stud_teacher。ALTERDATABASEstudentMODIFYNAME=stud_teacher
重命名數(shù)據(jù)庫語法形式為:sp_renamedb‘old_name’,’new_name’old_name:數(shù)據(jù)庫的當前名稱;new_name是數(shù)據(jù)庫的新名稱。練習8-14將數(shù)據(jù)庫business更名為company。
sp_renamedb'business','company
8.2.4刪除數(shù)據(jù)庫對于不再使用的數(shù)據(jù)庫,可以刪除它們以釋放所占用的磁盤空間??梢栽谄髽I(yè)管理器中刪除數(shù)據(jù)庫,也可以使用DROPDATABASE語句刪除數(shù)據(jù)庫。一.使用企業(yè)管理器刪除數(shù)據(jù)庫快捷菜單操作:右擊所要數(shù)據(jù)庫名稱→選擇“刪除”命令工具欄操作:單擊數(shù)據(jù)庫名稱→使用按鈕彈出對話框如下圖。二.使用T-SQL語句刪除數(shù)據(jù)庫格式:
DROPDATABASE數(shù)據(jù)庫名稱[,…n]【例8-11】刪除創(chuàng)建的數(shù)據(jù)庫company。
DROPDATABASEcompany顯示結果為:
正在刪除數(shù)據(jù)庫文件'e:\sql_log\company.ldf'。正在刪除數(shù)據(jù)庫文件'e:\sql_data\company.mdf'。注意:如果數(shù)據(jù)庫當前正在使用,則無法刪除該數(shù)據(jù)庫。8.3備份數(shù)據(jù)庫在數(shù)據(jù)庫的使用過程中,難免會由于病毒、人為失誤、機器故障等原因造成數(shù)據(jù)的丟失或損壞。數(shù)據(jù)對于一個企業(yè)、政府部門來說往往是非常重要的,一旦出現(xiàn)問題,造成的損失是巨大的。為了保證數(shù)據(jù)庫的安全性,防止數(shù)據(jù)庫中數(shù)據(jù)的意外丟失,應經(jīng)常對數(shù)據(jù)庫中的數(shù)據(jù)進行備份,以便在數(shù)據(jù)庫出故障的時候進行及時有效的恢復。4.3.1備份概述備份內容系統(tǒng)數(shù)據(jù)庫用戶數(shù)據(jù)庫事務日志備份方式(備份類型)完全數(shù)據(jù)庫備份差異數(shù)據(jù)庫備份事務日志備份數(shù)據(jù)庫文件和文件組備份8.3.1備份概述1.完全數(shù)據(jù)庫備份
備份數(shù)據(jù)庫的所有表的數(shù)據(jù)及模式,以及對應的文件結構,包括對事務日志中的事務進行備份。2.差異數(shù)據(jù)庫備份
只記錄自上次完全數(shù)據(jù)庫備份后發(fā)生更改的數(shù)據(jù)。差異備份的數(shù)據(jù)量比完全備份小而且備份速度快,因此可以更經(jīng)常地備份,經(jīng)常備份將減少丟失數(shù)據(jù)的危險。8.3.1備份概述3.事務日志備份
事務日志是自上次備份事務日志后對數(shù)據(jù)庫執(zhí)行的所有事務的一系列記錄。事務日志備份只考慮在日志中所記錄的變化,是基于邏輯操作的備份??梢允褂檬聞杖罩緜浞輰?shù)據(jù)庫恢復到特定的即時點或恢復到故障點。4.數(shù)據(jù)庫文件和文件組備份
只備份特定的文件或文件組,常用于超大型數(shù)據(jù)庫的備份。8.3.2創(chuàng)建和刪除備份設備磁盤備份設備:指硬盤或其它磁盤存儲介質上的文件,與常規(guī)操作系統(tǒng)文件一樣??梢栽诒镜胤掌鞯拇疟P上或遠程共享磁盤上定義磁盤備份設備。磁帶備份設備:磁帶設備只能物理連接到運行SQLServer實例的計算機上。SQLServer不支持備份到遠程磁帶設備上。在進行備份以前一般要指定或創(chuàng)建備份設備,備份設備是用來存儲數(shù)據(jù)庫、事務日志或文件和文件組備份的存儲介質。包括磁盤和磁帶設備。8.3.2創(chuàng)建和刪除備份設備物理設備名稱:是操作系統(tǒng)用來標識備份設備的名稱,如“D:\MyBackups\Student.bak”。邏輯設備名稱:是用來標識物理備份設備的別名或公用名稱,用以簡化物理設備名稱。例如,邏輯設備名稱可以是“STDBackup”,而物理設備名稱則是“D:\MyBackups\Student.bak”。
SQLServer使用物理設備名稱或邏輯設備名稱來標識備份設備。8.3.2創(chuàng)建和刪除備份設備1.使用企業(yè)管理器創(chuàng)建設備
選擇服務器→展開“管理”文件夾→右擊“備份”→選擇“新建備份設備”命令8.3.2創(chuàng)建和刪除備份設備打開“備份設備屬性”對話框:邏輯備份設備名稱物理備份設備名稱8.3.2創(chuàng)建和刪除備份設備2.使用企業(yè)管理器刪除備份設備
創(chuàng)建備份設備后,在企業(yè)管理器的右側窗格中會顯示該備份設備的名稱、物理位置和設備類型,用鼠標右擊要刪除的備份設備的名稱,從彈出的快捷菜單中選擇“刪除”命令,則可以刪除相應的備份設備。8.3.2創(chuàng)建和刪除備份設備3.使用系統(tǒng)存儲過程創(chuàng)建備份設備格式:sp_addumpdevice[@devtype=]'設備類型',[@logicalname=]'邏輯備份設備名',[@physicalname=]'物理備份設備名'參數(shù)說明:[@devtype=]‘設備類型’:指定備份設備的類型,可以是:disk、pipe、tape。[@logicalname=]'邏輯備份設備名':指定邏輯備份設備名稱。8.3.2創(chuàng)建和刪除備份設備[@physicalname=]'物理備份設備名':指定物理備份設備名。物理名稱必須遵照操作系統(tǒng)文件名稱的規(guī)則或者網(wǎng)絡設備的通用命名規(guī)則,并且必須包括完整的路徑。對于遠程硬盤文件,可以使用格式“\\主機名\共享路徑名\路徑名\文件名\”表示;對于磁帶設備,用“\\.\TAPEn”表示,其中n為磁帶驅動器序列號。8.3.2創(chuàng)建和刪除備份設備【例8-9】創(chuàng)建磁盤一個備份設備,邏輯名稱為“copy1”,物理名稱為“d:\Mybackup\company.bak”
EXECsp_addumpdevice
@devtype='disk',@logicalname='copy1',
@physicalname='d:\Mybackup\company.bak'也可以簡化成:
EXECsp_addumpdevice
'disk','copy1','d:\Mybackup\company.bak'這里的EXEC表示執(zhí)行存儲過程。8.3.2創(chuàng)建和刪除備份設備【例8-12】創(chuàng)建備份設備copy2,使用teacher服務器共享文件夾backup下的文件company1.bak。
EXECsp_addumpdevice
'disk','copy2','\\teacher\backup\company1.bak'【例8-13】用物理設備\\.\TAPE0創(chuàng)建一個磁帶備份設備tapedevice。
EXECsp_addumpdevice
'tape','tapedevice','\\.\TAPE0'8.3.2創(chuàng)建和刪除備份設備4.使用系統(tǒng)存儲過程sp_dropdevice刪除備份設備格式:
sp_dropdevice
[@logicalname=]'邏輯備份設備名'[,[@delfile=]'刪除文件']參數(shù)說明:
@delfile:指是否同時刪除物理備份文件。如果該參數(shù)指定為DELFILE,那么就會刪除設備物理文件名指定的磁盤文件。8.3.2創(chuàng)建和刪除備份設備【例8-14】刪除例8-11創(chuàng)建的備份設備tapedevice,不刪除相應的物理備份文件。
EXECsp_dropdevice'tapedevice'【例8-15】刪除例8-9創(chuàng)建的備份設備copy1,并刪除相應的物理文件。
EXECsp_dropdevice'copy1','DELFILE'8.3.3執(zhí)行備份(1)打開備份數(shù)據(jù)庫話框方法一:右擊數(shù)據(jù)庫→選擇“所有任務”→選擇“備份數(shù)據(jù)庫”令方法二:展開“數(shù)據(jù)庫”文件夾→展開“管理”文件夾→右擊“備份”→選擇“備份數(shù)據(jù)庫”方法三:打開“工具”菜單→選擇“備份數(shù)據(jù)庫”1.在企業(yè)管理器中使用備份數(shù)據(jù)庫對話框執(zhí)行備份8.3.3執(zhí)行備份8.3.3執(zhí)行備份8.3.3執(zhí)行備份2.在企業(yè)管理器中使用備份向導執(zhí)行備份(1)單擊服務器
→
打開“工具”菜單→選擇“向導”或單擊
工具欄圖標
打開“選擇向導”對話框:8.3.3執(zhí)行備份(2)選擇數(shù)據(jù)庫:8.3.3執(zhí)行備份(3)輸入備份名稱和描述信息:8.3.3執(zhí)行備份(4)選擇備份類型:8.3.3執(zhí)行備份(5)選擇備份設備和屬性:8.3.3執(zhí)行備份(6)備份驗證和調度:8.3.3執(zhí)行備份(7)完成備份:8.3.3執(zhí)行備份(1)完全數(shù)據(jù)庫備份格式:
BACKUPDATABASE數(shù)據(jù)庫名稱
TO<備份設備>[,...n][WITH[NAME=備份集名稱][[,]DESCRIPTION='備份描述文本'][[,]{INIT|NOINIT}]]3.使用BACKUPDATABASE語句備份數(shù)據(jù)庫8.3.3執(zhí)行備份說明:<備份設備>:指定備份要使用的邏輯或物理備份設備。定義如下:
<備份設備>::={邏輯備份設備名}|{DISK|=TAPE}'物理備份設備名'INIT:指定應重寫所有備份集。NOINIT:表示備份集將追加到指定的設備現(xiàn)有數(shù)據(jù)之后,以保留現(xiàn)有的備份集。完全數(shù)據(jù)庫備份是制作數(shù)據(jù)庫中所有內容的一個副本,備份過程花費時間相對較長,備份占用的空間大,因此不宜頻繁進行。8.3.3執(zhí)行備份【例8-16】將“學生管理”數(shù)據(jù)庫備份到d盤的mybackup文件夾下的“學生管理.bak”文件中。
--首先先創(chuàng)建一個備份設備
sp_addumpdevice'disk','mycopy1','d:\mybackup\學生管理.bak'--用BACKUPDATABASE備份學生管理數(shù)據(jù)庫
BACKUPDATABASE學生管理
TOmycopy1WITHNAME='學生管理備份',DESCRIPTION='完全備份'8.3.3執(zhí)行備份【例8-15】將“學生管理”數(shù)據(jù)庫備份到網(wǎng)絡中的另一臺主機ServerX上。
sp_addumpdevice
'disk','STDcopy','\\ServerX\backup\student.dat'BACKUPDATABASE學生管理TOSTDcopy8.3.3執(zhí)行備份(2)差異數(shù)據(jù)庫備份指對最近一次完全數(shù)據(jù)庫備份結束以來發(fā)生改變的數(shù)據(jù)進行備份。當數(shù)據(jù)庫從上次備份以來只修改了很少的數(shù)據(jù)時,適合使用差異備份。格式:
BACKUPDATABASE數(shù)據(jù)庫名稱
TO<備份設備>[,...n]WITH
DIFFERENTIAL[[,]NAME=備份集名稱][[,]DESCRIPTION='備份描述文本'][[,]{INIT|NOINIT}]8.3.3執(zhí)行備份【例8-16】假設對“學生管理”數(shù)據(jù)庫進行了一些修改,現(xiàn)在要做一個差異備份,且將該備份添加到例8-14的現(xiàn)有備份之后。
BACKUPDATABASE學生管理
TOmycopy1WITHDIFFERENTIAL,NOINIT,NAME='學生管理備份',DESCRIPTION='第一次差異備份'8.3.3執(zhí)行備份(3)文件或文件組備份當一個數(shù)據(jù)庫很大時,對整個數(shù)據(jù)庫進行備份可能會花費很多時間,這時可以采用文件或文件組備份,即對數(shù)據(jù)庫中的部分文件或文件組進行備份。8.3.3執(zhí)行備份格式:
BACKUPDATABASE數(shù)據(jù)庫名稱
<文件或文件組>[,...n]TO<備份設備>[,...n][WITHDIFFERENTIAL[[,]NAME=備份集名稱][[,]DESCRIPTION='備份描述文本'][[,]{INIT|NOINIT}]]<文件或文件組>::={FILE=邏輯文件名|FILEGROUP=邏輯文件組名}8.3.3執(zhí)行備份【例8-17】將test數(shù)據(jù)庫的grp1_file1文件備份到文件“E:\temp\grp1_file1.dat”中。
BACKUPDATABASEtestFILE='grp1_file1'TODISK='E:\temp\grp1_file1.dat'【例8-18】將test數(shù)據(jù)庫的文件組grp1備份到文件“E:\temp\group1.dat”中。
BACKUPDATABASEtestFILEGROUP='grp1'TODISK='E:\temp\group1.dat'WITHNAME='groupbackupoftest'8.3.3執(zhí)行備份(4)事務日志備份事務日志是自上次備份事務日志后對數(shù)據(jù)庫執(zhí)行的所有事務的一系列記錄,備份事務日志將對最近一次備份事務日志以來的所有事務日志進行備份。格式:
BACKUPLOG數(shù)據(jù)庫名稱
TO<備份設備>[,...n][WITH[[,]NAME=備份集名稱][[,]DESCRIPTION='備份描述文本'][[,]{INIT|NOINIT}]]8.3.3執(zhí)行備份【例8-19】將“學生管理”數(shù)據(jù)庫的日志文件備份到文件“e:\temp\MyLog1.bak”中。
EXECsp_addumpdevice'disk','MyLog1','e:\temp\MyLog1.bak'BACKUPLOG學生管理TOMyLog18.3.4還原數(shù)據(jù)庫數(shù)據(jù)庫備份后,一旦系統(tǒng)發(fā)生崩潰或者執(zhí)行了錯誤的數(shù)據(jù)庫操作,就可以從備份文件中恢復(還原)數(shù)據(jù)庫,讓數(shù)據(jù)庫回到備份時的狀態(tài)。通常在以下情況下需要恢復數(shù)據(jù)庫。媒體故障。用戶操作錯誤。服務器永久丟失。將數(shù)據(jù)庫從一臺服務器復制到另一臺服務器?;謴蛿?shù)據(jù)庫之前,需要限制其他用戶訪問數(shù)據(jù)庫:右擊數(shù)據(jù)庫→選擇“屬性”→選擇“選項”→選擇“限制訪問”、單用戶8.3.4還原數(shù)據(jù)庫恢復內容:恢復整個數(shù)據(jù)庫恢復部分數(shù)據(jù)庫恢復數(shù)據(jù)庫文件或文件組恢復數(shù)據(jù)庫事務日志恢復途徑:使用企業(yè)管理器中使用RESTOREDATABASE8.3.4還原數(shù)據(jù)庫1.使用企業(yè)管理器恢復數(shù)據(jù)庫單擊服務器名稱→選擇“工具”菜單→選擇“還原數(shù)據(jù)庫”或右擊“數(shù)據(jù)庫”或數(shù)據(jù)庫名稱→選擇“所有任務”→選擇“還原數(shù)據(jù)庫”命令。兩種方法都會打開“還原數(shù)據(jù)庫”對話框:8.3.4還原數(shù)據(jù)庫“還原數(shù)據(jù)庫”對話框——“常規(guī)”選項卡8.3.4還原數(shù)據(jù)庫“還原數(shù)據(jù)庫”對話框——“選項”選項卡8.3.4還原數(shù)據(jù)庫2.使用RESTOREDATABASE語句恢復數(shù)據(jù)庫(1)恢復完全備份數(shù)據(jù)庫和差異備份數(shù)據(jù)庫格式:
RESTOREDATABASE數(shù)據(jù)庫名稱
[FROM<備份設備>[,...n]][WITH[[,]FILE=文件號]
[[,]MOVE'邏輯文件名'TO'物理文件名'][,...n][[,]{NORECOVERY|RECOVERY}][[,]REPLACE]]8.3.4還原數(shù)據(jù)庫說明:文件號:要還原的備份集。例如,文件號為2表示第二個備份集。NORECOVERY:指示還原操作不回滾任何未提交的事務。當還原數(shù)據(jù)庫備份和多個事務日志時,或在需要使用多個RESTORE語句時(例如在完整數(shù)據(jù)庫備份后進行差異數(shù)據(jù)庫備份),SQLServer要求在除最后的RESTORE語句外的所有其它語句上使用WITHNORECOVERY選項。RECOVERY:指示還原操作回滾任何未提交的事務。在恢復完成后即可隨時使用數(shù)據(jù)庫。REPLACE:指定如果存在同名數(shù)據(jù)庫,將覆蓋現(xiàn)有的數(shù)據(jù)庫。8.3.4還原數(shù)據(jù)庫【例8-20】設在E盤temp文件夾下有一個職工數(shù)據(jù)庫的完全備份文件“職工.bak”,恢復該數(shù)據(jù)庫,將恢復后的數(shù)據(jù)庫名稱改為“職工信息”。如果當前服務器中存在“職工信息”數(shù)據(jù)庫,則覆蓋該數(shù)據(jù)庫。方法一:使用備份設備。EXECsp_addumpdevice'disk','copy1','E:\temp\職工.bak'RESTOREDATABASE職工信息FROMcopy1WITHMOVE'職工_data'TO'e:\sql_data\職工信息.mdf',MOVE'職工_log'TO'e:\sql_log\職工信息.lgf',REPLACE8.3.4還原數(shù)據(jù)庫方法二:直接指定磁盤文件名
RESTOREDATABASE職工信息
FROMDISK='E:\temp\職工.bak'WITHMOVE'職工_data'TO'e:\sql_data\職工信息.mdf',MOVE'職工_log'TO'e:\sql_log\職工信息.lgf',REPLACE8.3.4還原數(shù)據(jù)庫【例8-21】設第一天做了一個“學生管理”數(shù)據(jù)庫的完全備份,第2天做了一個“學生管理”數(shù)據(jù)庫的差異備份,之后數(shù)據(jù)庫出現(xiàn)故障,將數(shù)據(jù)庫恢復到做差異備份時的狀態(tài)。8.3.4還原數(shù)據(jù)庫
--恢復完全備份
RESTOREDATABASE學生管理
FROMmycopy1WITHFILE=1,NORECOVERY --這時數(shù)據(jù)庫無法使用,繼續(xù)恢復差異備份
RESTOREDATABASE學生管理
FROMmycopy1WITHFILE=2,RECOVERY
--這時數(shù)據(jù)庫可以使用8.3.4還原數(shù)據(jù)庫(2)恢復事務日志格式:
RESTORELOG數(shù)據(jù)庫名稱
[FROM<備份設備>[,...n]][WITH[[,]FILE=文件號]
[[,]MOVE'邏輯文件名'TO'物理文件名'][,...n][[,]{NORECOVERY|RECOVERY}]]8.3.4還原數(shù)據(jù)庫【例8-22】假設對“學生管理”數(shù)據(jù)庫先后做了完全數(shù)據(jù)庫備份、差異數(shù)據(jù)庫備份和事務日志備份現(xiàn)在利用這三個備份來恢復數(shù)據(jù)庫。
--恢復完全備份
RESTOREDATABASE學生管理
FROMmycopy1WITHFILE=1,NORECOVERY8.3.4還原數(shù)據(jù)庫--這時數(shù)據(jù)庫無法使用,繼續(xù)恢復差異備份RESTOREDATABASE學生管理FROMmycopy1WITHFILE=2,NORECOVERY--這時數(shù)據(jù)庫仍然無法使用,繼續(xù)恢復事務日志備份RESTORELOG學生管理FROMMylog1WITHRECOVERY
--完成恢復,數(shù)據(jù)庫可以使用利用數(shù)據(jù)庫的維護計劃向導可以方便地設置數(shù)據(jù)庫的核心維護任務,以便于定期地執(zhí)行這些任務8.4維護數(shù)據(jù)庫8.5數(shù)據(jù)的導入導出導入導出數(shù)據(jù)方法概述DTS概述DTS導出向導DTS導入向導在使用SQLServer的過程中,經(jīng)常需要將其他應用程序(例如Access數(shù)據(jù)庫或ASCII文本文件)的數(shù)據(jù)移植到SQLServer2000數(shù)據(jù)庫中,或者將SQLServer2000的數(shù)據(jù)移植到其他數(shù)據(jù)庫中。這種在SQLServer2000和其他應用程序之間的數(shù)據(jù)轉換,就是本章中將要介紹的導入導出數(shù)據(jù)。8.5.1導入導出數(shù)據(jù)方法概述導入/導出數(shù)據(jù)的可以有以下幾種方法:使用數(shù)據(jù)轉換服務(DataTransformationServices,DTS)導入/導出向導或DTS設計器創(chuàng)建可用于導入/導出和轉換數(shù)據(jù)的DTS包。使用SQLServer復制技術在整個企業(yè)內分發(fā)數(shù)據(jù)。SQLServer中的復制技術可以制作數(shù)據(jù)復本,將這些復本移到不同位置,以及自動同步數(shù)據(jù),從而使所有復本都具有相同的數(shù)據(jù)值??梢栽谕环掌骰蛲ㄟ^LAN、WAN或Internet連接的不同服務器上的數(shù)據(jù)庫之間執(zhí)行復制。8.5.1導入導出數(shù)據(jù)方法概述使用bcp命令提示實用工具在SQLServer實例和數(shù)據(jù)文件之間導入和導出數(shù)據(jù)。從某個OLEDB提供程序中選擇數(shù)據(jù),并將數(shù)據(jù)從外部數(shù)據(jù)源復制到SQLServer實例。使用分布式查詢從另一個數(shù)據(jù)源中選擇數(shù)據(jù)并指定要插入的數(shù)據(jù)。使用INSERT語句將數(shù)據(jù)添加到現(xiàn)有表中。使用BULKINSERT語句將數(shù)據(jù)從數(shù)據(jù)文件導入到SQLServer實例。使用SELECTINTO語句根據(jù)現(xiàn)有表創(chuàng)建新表。1.DTS連接數(shù)據(jù)源連接:包括連接到標準數(shù)據(jù)庫(如SQLServer、Access、Oracle、dBase和Paradox等)、與ODBC數(shù)據(jù)源的OLEDB連接、Excel電子表格數(shù)據(jù)、HTML源以及其他OLEDB提供程序。文件連接:DTS對文本文件提供額外的支持。指定文本文件連接時,需要指定文件的格式。例如,文本文件是分隔字段格式還是固定字段格式、文本文件是Unicode格式還是ANSI格式、行分隔符和列分隔符、文本限定符以及第一行是否包含列名等。數(shù)據(jù)鏈接連接:在這些連接中,SQLServer外部的中間文件存儲連接字符串。2.DTS任務導入和導出數(shù)據(jù)轉換數(shù)據(jù)復制數(shù)據(jù)庫對象將消息發(fā)送到其他用戶和包以及從其他用戶和包接收消息對數(shù)據(jù)源執(zhí)行一組Transact-SQL語句或ActiveX腳本。3.DTS轉換DTS轉換是在數(shù)據(jù)到達目的之前應用于一塊數(shù)據(jù)的一個或多個函數(shù)或操作。源數(shù)據(jù)未改變。例如,可以從源數(shù)據(jù)的一列中析取一個子串并將其復制到目的表。這個特定的子串函數(shù)是映射到源列的轉換。也可以使用某些特性搜索行并只對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學工業(yè)機器人技術(機器人系統(tǒng)調試)試題及答案
- 2025年中職針織工藝(針織生產技術)試題及答案
- 2025年中職(船舶駕駛)船舶應急處置試題及答案
- 2025年中職(建筑裝飾技術)室內設計原理試題及答案
- 2025年大學一年級(電子信息工程)電子信息系統(tǒng)基礎試題及答案
- 2026年深圳單招嬰幼兒發(fā)展與健康管理專業(yè)技能模擬卷含答案
- 2026年江蘇單招技能拔尖考生綜合素質測試題庫含答案
- 2026年內蒙古單招職業(yè)技能判斷題選擇題含答案機考適配
- 2026年遼寧單招電子信息類職業(yè)適應性判斷題集含答案機考適配
- 各種面試場景題庫及答案
- 2026年黑龍江農業(yè)工程職業(yè)學院單招綜合素質考試題庫附答案
- 銀行網(wǎng)點店長面試技巧與答案參考
- 房子產權人協(xié)議書
- 2025至2030中國混合現(xiàn)實(MR)智能眼鏡行業(yè)調研及市場前景預測評估報告
- 雨課堂學堂在線學堂云《情報檢索-信息時代的元素養(yǎng)》單元測試考核答案
- 2019年9月13日撫州市三方面人員轉副科筆試真題及答案解析
- 2026年計算機操作員(中級)自測試題及答案
- 糖尿病足潰瘍預防與足部減壓護理專家共識課件
- 2025-2026學年仁愛科普版(新教材)初中英語八年級上冊期末測試卷附答案
- (2025版)混合性認知障礙診治專家共識解讀課件
- 2025廣西公需科目真題(含答案)
評論
0/150
提交評論