SQL Server 實用教程(第2版)第08章_第1頁
SQL Server 實用教程(第2版)第08章_第2頁
SQL Server 實用教程(第2版)第08章_第3頁
SQL Server 實用教程(第2版)第08章_第4頁
SQL Server 實用教程(第2版)第08章_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

8.1備份和恢復概述

8.1.1備份和恢復需求分析

8.1.1備份和恢復需求分析數(shù)據(jù)庫中的數(shù)據(jù)丟失或被破壞可能是由于以下原因:(1)計算機硬件故障。由于使用不當或產(chǎn)品質(zhì)量等原因,計算機硬件可能會出現(xiàn)故障,不能使用。如硬盤損壞會使得存儲于其上的數(shù)據(jù)丟失。(2)軟件故障。由于軟件設(shè)計上的失誤或用戶使用的不當,軟件系統(tǒng)可能會誤操作數(shù)據(jù)引起數(shù)據(jù)破壞。(3)病毒。破壞性病毒會破壞系統(tǒng)軟件、硬件和數(shù)據(jù)。(4)誤操作。如用戶誤使用了諸如DELETE、UPDATE等命令而引起數(shù)據(jù)丟失或被破壞。(5)自然災(zāi)害。如火災(zāi)、洪水或地震等,它們會造成極大的破壞,會毀壞計算機系統(tǒng)及其數(shù)據(jù)。(6)盜竊。一些重要數(shù)據(jù)可能會遭竊。8.1.2數(shù)據(jù)庫備份的基本概念

1.備份內(nèi)容

2.由誰做備份(1)在SQLServer2000中,具有下列角色的成員可以做備份操作:(2)固定的服務(wù)器角色sysadmin(系統(tǒng)管理員);(3)固定的數(shù)據(jù)庫角色db_owner(數(shù)據(jù)庫所有者);(4)固定的數(shù)據(jù)庫角色db_backupoperator。3.備份介質(zhì)(1)硬盤:是最常用的備份介質(zhì)。硬盤用于備份本地文件,也用于備份網(wǎng)絡(luò)文件。(2)磁帶:是大容量的備份介質(zhì),磁帶僅可用于備份本地文件。(3)命名管道(NamedPipe):它是一種邏輯通道,SQLServer2000允許將備份的文件放在命名管道上,從而可以允許利用第三方軟件包的備份和恢復能力。8.1.2數(shù)據(jù)庫備份的基本概念4.何時備份

5.備份頻率6.限制的操作

7.備份方法

(1)完全數(shù)據(jù)庫備份(2)數(shù)據(jù)庫和事務(wù)日志備份(3)差異備份(4)數(shù)據(jù)庫文件或文件組備份8.性能考慮

備份一個數(shù)據(jù)庫所需的時間主要取決于物理設(shè)備的速度,如磁盤設(shè)備的速度通常比磁帶設(shè)備快;通常備份到多個物理設(shè)備比備份到一個物理設(shè)備要快;(3)系統(tǒng)的并發(fā)活動對數(shù)據(jù)庫的備份有影響;8.1.3數(shù)據(jù)庫恢復概念1.準備工作

數(shù)據(jù)庫恢復的準備工作包括系統(tǒng)安全性檢查和備份介質(zhì)驗證。系統(tǒng)發(fā)現(xiàn)出現(xiàn)了以下情況時,恢復操作將不進行:(1)指定的要恢復的數(shù)據(jù)庫已存在,備份文件中記錄的數(shù)據(jù)庫與其不同;(2)服務(wù)器上數(shù)據(jù)庫文件集與備份中的數(shù)據(jù)庫文件集不一致;(3)未提供恢復數(shù)據(jù)庫所需的所有文件或文件組。這些信息包括:備份文件或備份集名及描述信息;所使用的備份介質(zhì)類型(磁帶或磁盤等);所使用的備份方法;執(zhí)行備份的日期和時間;備份集的大??;數(shù)據(jù)庫文件及日志文件的邏輯和物理文件名;備份文件的大小。2.執(zhí)行恢復數(shù)據(jù)庫的操作

8.2.1創(chuàng)建備份設(shè)備1.創(chuàng)建命名備份設(shè)備

1)使用系統(tǒng)存儲過程創(chuàng)建命名備份設(shè)備執(zhí)行系統(tǒng)存儲過程sp_addumpdevice可以在磁盤或磁帶上創(chuàng)建命名備份設(shè)備,也可以將數(shù)據(jù)定向到命名管道。創(chuàng)建命名備份設(shè)備時,要注意以下幾點:(1)SQLServer2000將在系統(tǒng)數(shù)據(jù)庫master的系統(tǒng)表sysdevice中,創(chuàng)建該命名備份設(shè)備的物理名和邏輯名。(2)必須指定該命名備份設(shè)備的物理名和邏輯名,當在網(wǎng)絡(luò)磁盤上創(chuàng)建命名備份設(shè)備時,要說明網(wǎng)絡(luò)磁盤文件路徑名。(3)一個數(shù)據(jù)庫最多可以創(chuàng)建32個備份文件語法格式:sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'8.2.1創(chuàng)建備份設(shè)備2)使用企業(yè)管理器創(chuàng)建命名備份設(shè)備在SQLServer企業(yè)管理器中創(chuàng)建命名備份設(shè)備,步驟是:第1步用管理員帳號登錄SQLServer;第2步運行SQLServer企業(yè)管理器;第3步在控制臺目錄樹中,展開服務(wù)器組和服務(wù)器,展開“管理”文件夾,在“備份”上單擊鼠標右鍵,選擇“新建備份設(shè)備”。8.2.1創(chuàng)建備份設(shè)備第4步上一步操作完成后,出現(xiàn)如圖所示的對話框,在該對話框中有兩個文本框,分別輸入備份設(shè)備的邏輯名和完整的物理路徑名。輸入完畢后,單擊“確定”按鈕,則新的備份設(shè)備就創(chuàng)建完成了,如圖8.3所示。8.2.1創(chuàng)建備份設(shè)備2.創(chuàng)建臨時備份設(shè)備

語法格式:BACKUPDATABASE{database_name|@database_name_var}TO<backup_file>[,…n]<backup_file>::={{backup_file_name|@backup_file_name_evar}|{DISK|TAPE|PIPE}={temp_file_name|@temp_file_name_evar}【例8.3】在磁盤上創(chuàng)建一個臨時備份設(shè)備,它用來備份數(shù)據(jù)庫XSCJ。

USEmasterBACKUPDATABASEXSCJTO'e:\temp\tmpxscj.ba’8.2.1創(chuàng)建備份設(shè)備3.使用多個備份設(shè)備

SQLServer可以同時向多個備份設(shè)備寫入數(shù)據(jù),即進行并行的備份。并行備份將需備份的數(shù)據(jù)分別備份在多個設(shè)備上,這多個備份設(shè)備構(gòu)成了備份集。8.2.2備份命令1.備份整個數(shù)據(jù)庫語法格式:

BACKUPDATABASE{database_name|@database_name_var}/*被備份的數(shù)據(jù)庫名*/TO<backup_device>[,...n

] /*指出備份目標設(shè)備*/[WITH[BLOCKSIZE={blocksize|@blocksize_variable

}] /*塊大小*/[[,]DESCRIPTION={'text'

|@text_variable

}] /*備份集的自由格式文本*/[[,]EXPIREDATE={date

|@date_var

} /*備份集到期和允許被重寫的日期*/|RETAINDAYS={days|@days_var

}] [[,]PASSWORD={password

|@password_variable

}][[,]FORMAT|NOFORMAT][[,]{INIT|NOINIT}] /*指定是覆蓋還是追加*/

[[,]MEDIADESCRIPTION={'text'

|@text_variable

}]

[[,]MEDIANAME={media_name

|@media_name_variable}]

[[,]MEDIAPASSWORD={mediapassword

|@mediapassword_variable

}][[,]NAME={backup_set_name|@backup_set_name_var

}]

[[,]{NOREWIND|REWIND}][[,]{NOSKIP|SKIP}] [[,]{NOUNLOAD|UNLOAD}][[,]RESTART]

[[,]STATS[=percentage

]]

]8.2.2備份命令使用企業(yè)管理器查看備份設(shè)備的內(nèi)容。步驟如下:第1步在企業(yè)管理器的控制臺目錄樹上,展開“管理”文件夾,單擊“備份”,在右邊窗口中選定備份設(shè)備,在其上單擊鼠標右鍵如圖所示。8.2.2備份命令第2步上一步操作結(jié)束后,將出現(xiàn)如圖所示的備份設(shè)備屬性對話框,單擊“查看內(nèi)容”按鈕。第3步上一步操作結(jié)束后,將出現(xiàn)如圖所示的查看備份媒體內(nèi)容對話框,其中顯示了所要查看的備份設(shè)備的內(nèi)容。8.2.2備份命令【例8.4】使用邏輯名test1創(chuàng)建一個命名的備份設(shè)備,并將數(shù)據(jù)庫XSCJ完全備份到該設(shè)備。USEmasterEXECsp_addumpdevice'disk','test1','e:\db_temp\test1.bak'BACKUPDATABASEXSCJTOtest18.2.2備份命令【例8.5】將數(shù)據(jù)庫XSCJ備份到多個備份設(shè)備。USEmasterEXECsp_addumpdevice'disk','test2','e:\db_temp\test2.bak'EXECsp_addumpdevice'disk','test3','e:\db_temp\test3.bak'BACKUPDATABASEXSCJTOtest2,test3WITHNAME='xscjbk'8.2.2備份命令2.差異備份數(shù)據(jù)庫語法格式:BACKUPDATABASE{database_name|@database_name_var}TO<backup_device>[,…n][WITH[[,]DIFFERENTIAL]/*其余選項與相數(shù)據(jù)庫的完全備份同*/]【例8.6】創(chuàng)建臨時備份設(shè)備并在所創(chuàng)建的臨時備份設(shè)備上進行差異備份。

BACKUPDATABASEXSCJTO DISK='e:\db_temp\xscjbk.bak'WITHDIFFERENTIAL8.2.2備份命令3.備份數(shù)據(jù)庫文件或文件組語法格式:BACKUPDATABASE{database_name|@database_name_var

}

<file_or_filegroup>[,...n

] /*指定文件或文件組名*/TO<backup_device>[,...n

]

[WITH

[BLOCKSIZE={blocksize|@blocksize_variable

}][[,]DESCRIPTION={'text'

|@text_variable

}][[,]EXPIREDATE={date

|@date_var

}|RETAINDAYS={days|@days_var

}][[,]PASSWORD={password

|@password_variable

}][[,]FORMAT|NOFORMAT][[,]{INIT|NOINIT}][[,]MEDIADESCRIPTION={'text'

|@text_variable

}][[,]MEDIANAME={media_name

|@media_name_variable}][[,]MEDIAPASSWORD={mediapassword

|@mediapassword_variable

}][[,]NAME={backup_set_name|@backup_set_name_var

}][[,]{NOREWIND|REWIND}][[,]{NOSKIP|SKIP}][[,]{NOUNLOAD|UNLOAD}][[,]RESTART][[,]STATS[=percentage

]]]8.2.2備份命令4.事務(wù)日志備份

語法格式:BACKUPLOG{database_name|@database_name_var

}/*指出被備份的數(shù)據(jù)庫名*/TO<backup_device>[,...n

]/*指出備份目標*/[WITH[BLOCKSIZE={blocksize|@blocksize_variable

}] /*塊大小*/ [[,]DESCRIPTION={'text'

|@text_variable

}] /*備份集的自由格式文本*/[[,]EXPIREDATE={date

|@date_var

} /*備份集到期和允許被重寫的日期*/|RETAINDAYS={days|@days_var

}][[,]PASSWORD={password

|@password_variable

}][[,]FORMAT|NOFORMAT] [[,]{INIT|NOINIT}] [[,]MEDIADESCRIPTION={'text'

|@text_variable

}][[,]MEDIANAME={media_name

|@media_name_variable}][[,]MEDIAPASSWORD={mediapassword

|@mediapassword_variable

}][[,]NAME={backup_set_name|@backup_set_name_var

}][[,]NO_TRUNCATE] [[,]{NORECOVERY|STANDBY=undo_file_name

}][[,]{NOREWIND|REWIND}][[,]{NOSKIP|SKIP}] [[,]{NOUNLOAD|UNLOAD}][[,]RESTART] [[,]STATS[=percentage

]]

]8.2.2備份命令【例8.8】創(chuàng)建一個命名的備份設(shè)備XSCJLOGBK,并備份XSCJ數(shù)據(jù)庫的事務(wù)日志。USEmasterEXECsp_addumpdevice'disk','XSCJLOGBK','e:\db_temp\testlog.bak'BACKUPLOGXSCJTOXSCJLOGBK8.2.2備份命令5.清除事務(wù)日志

語法格式:BACKUPLOG{database_name|@database_name_var

}{

[WITH

{NO_LOG|TRUNCATE_ONLY}]}其中:

(1)database_name或@database_name_var指出數(shù)據(jù)庫名;

(2)使用TRANCATE_ONLY選項,SQLServer系統(tǒng)將刪除事務(wù)日志中不活動部分的內(nèi)容,而不進行任何備份,因此可以釋放事務(wù)日志所占用的部分磁盤空間。

NO_LOG選項與TRUNCATE_ONLY是同義的。執(zhí)行帶有NO_LOG或TRUNCATE_ONLY選項的BACKLOG語句后,記錄在日志中的更改將不可恢復。因此執(zhí)行該語句后,應(yīng)立即執(zhí)行BACKUPDATABASE語句,進行數(shù)據(jù)庫備份。8.2.3使用企業(yè)管理器進行備份

在SQLServer企業(yè)管理器中進行備份的步驟是:第1步在SQLServer企業(yè)管理器窗口中打開服務(wù)器組和服務(wù)器,展開“管理”文件夾,右擊“備份”選項,在彈出的菜單上選擇“備份數(shù)據(jù)庫…”選項,如圖所示。8.2.3使用企業(yè)管理器進行備份第2步在所出現(xiàn)的如圖8.12所示“SQLServer備份”對話框中選擇被備份的數(shù)據(jù)庫名、輸入備份的目標(即命名的備份介質(zhì)的名稱或臨時備份介質(zhì)的位置)、備份的描述、備份的類型、以及選擇備份為覆蓋的還是追加。8.2.3使用企業(yè)管理器進行備份第3步若使用臨時備份介質(zhì),則在如圖8.13所示的“選擇備份目的”對話框中選擇“文件名”,并在文本框中輸入文件的全路徑名,或點擊按鈕選擇路徑。8.2.3使用企業(yè)管理器進行備份第4步選擇或輸入了上一步指出的各參數(shù)后,在“SQLServer備份”對話框中單擊“確定”按鈕,系統(tǒng)將執(zhí)行備份操作,并出現(xiàn)一個進度指示對話框,備份操作完成后,將出現(xiàn)如圖8.15所示的提示框,點擊“確定”。8.2.4使用備份向?qū)нM行備份

使用備份向?qū)нM行備份的步驟是:第1步在SQLServer企業(yè)管理器的“工具”菜單中選擇:向?qū)Ч芾韨浞菹驅(qū)В瑢⒊霈F(xiàn)如圖8.16所示的備份向?qū)У臍g迎界面,該界面給出了備份向?qū)У墓δ堋?.2.4使用備份向?qū)нM行備份第2步單擊“下一步”,將出現(xiàn)如圖8.17所示的選擇需備份數(shù)據(jù)庫的界面。8.2.4使用備份向?qū)нM行備份第3步選擇要備份的數(shù)據(jù)庫名,單擊“下一步”,將出現(xiàn)如圖8.18所示的輸入備份名和描述的界面。8.2.4使用備份向?qū)нM行備份第4步輸入備份名稱和描述后,單擊“下一步”,將出現(xiàn)如圖8.19所示的選擇備份類型的界面。8.2.4使用備份向?qū)нM行備份第5步選擇備份類型后,單擊“下一步”,將出現(xiàn)如圖所示的選擇備份設(shè)備以及備份屬性(覆蓋或追加)的界面。8.2.4使用備份向?qū)нM行備份第6步選擇備份設(shè)備和屬性后,單擊“下一步”,將出現(xiàn)如圖所示的備份驗證和調(diào)度的界面。8.2.4使用備份向?qū)нM行備份第7步單擊“下一步”,將出現(xiàn)如圖所示的確認各備份參數(shù)的界面,單擊“完成”。8.3.1檢查點(checkpoint)

SQLServer系統(tǒng)定期將所有臟日志和數(shù)據(jù)頁刷新到磁盤,這就稱為檢查點。檢查點執(zhí)行以下操作:(1)將標記為檢查點起點的記錄寫入日志文件。(2)將為檢查點記錄的信息存儲在檢查點日志記錄鏈內(nèi),將這條鏈起點的LSN寫入數(shù)據(jù)庫的根頁。(3)記錄最小恢復日志序號(MinLSN),MinLSN是下面這些LSN中的最小LSN:

①檢查點起點的LSN;

②最舊的活動事務(wù)起點的LSN;

③最早的復制事務(wù)起點的LSN,事務(wù)未復制到所有相關(guān)的服務(wù)器。(4)記錄所有未完成的活動事務(wù)列表。(5)如果數(shù)據(jù)庫使用的是簡單恢復模式,則刪除新的MinLSN之前的所有日志記錄。(6)將所有臟日志和數(shù)據(jù)頁寫入磁盤。(7)將標記檢查點末端的記錄寫入日志文件。8.3.1檢查點(checkpoint)檢查點操作將在下列情況下發(fā)生:(1)執(zhí)行CHECKPOINT語句時,系統(tǒng)對當前數(shù)據(jù)庫執(zhí)行檢查點操作。(2)使用ALTERDATABASE更改數(shù)據(jù)庫選項時,對所修改的數(shù)據(jù)庫執(zhí)行檢查點操作。(3)當SQLServer系統(tǒng)由于下列原因之一停止運行時:

①執(zhí)行SHUTDOWN語句;

②使用SQLServer服務(wù)控制管理器阻止運行數(shù)據(jù)庫引擎實例的服務(wù)。(4)SQLServer系統(tǒng)為減少恢復數(shù)據(jù)庫所需的時間而在每個數(shù)據(jù)庫內(nèi)定期執(zhí)行自動檢查點,SQLServer2000始終生成自動檢查點,自動檢查點的時間間隔取決于日志內(nèi)的記錄數(shù)而不是時間。8.3.2數(shù)據(jù)庫的恢復命令

(1)進行安全檢查當出現(xiàn)以下集中情況時,系統(tǒng)將不能恢復數(shù)據(jù)庫:使用與被恢復的數(shù)據(jù)庫名稱不同的數(shù)據(jù)庫名去恢復數(shù)據(jù)庫;服務(wù)器上的數(shù)據(jù)庫文件組與備份的數(shù)據(jù)庫文件組不同;需恢復的數(shù)據(jù)庫名或文件名與備份的數(shù)據(jù)庫名或文件名不同;(2)重建數(shù)據(jù)庫完全數(shù)據(jù)庫備份中恢復數(shù)據(jù)庫時,SQLServer將重建數(shù)據(jù)庫文件,并把所重建的數(shù)據(jù)庫文件置于備份數(shù)據(jù)庫時這些文件所在的位置,所有的數(shù)據(jù)庫對象都將自動重建,用戶無需重建數(shù)據(jù)庫的結(jié)構(gòu)。在SQLServer中,恢復數(shù)據(jù)庫的語句是RESTORE。2.恢復數(shù)據(jù)庫的準備有兩種方法可以得到有關(guān)數(shù)據(jù)庫備份介質(zhì)的信息:(1)使用SQLServer企業(yè)管理器界面查看所有備份介質(zhì)的屬性8.3.2數(shù)據(jù)庫的恢復命令第1步啟動SQLServer企業(yè)管理器,展開所管理的服務(wù)器,展開“管理”文件夾,在指定的備份介質(zhì)上點擊鼠標右鍵,選擇“屬性”選項,如圖所示。8.3.2數(shù)據(jù)庫的恢復命令第2步在所出現(xiàn)的“備份設(shè)備屬性”對話框中點擊“查看內(nèi)容…”按鈕,將顯示所選備份介質(zhì)的有關(guān)信息,如圖所示。第3步在所出現(xiàn)的“查看備份媒體內(nèi)容”對話框中將顯示備份介質(zhì)所在的服務(wù)器名、備份數(shù)據(jù)庫名、備份類型、備份日期、到期日及大小等信息,如圖所示。8.3.2數(shù)據(jù)庫的恢復命令(2)使用RESTOREHEADONLY、RESTORE

FILELISTONLY、RESTORELABELONLY等語句可以得到有關(guān)備份介質(zhì)更詳細的信息。語法格式:RESTOREHEADERONLYFROM<backup_device> /*指定還原時要使用的邏輯或物理備份設(shè)備。*/[WITH{NOUNLOAD|UNLOAD}/*指定是否在還原后從磁帶機中自動卸載磁帶[[,]FILE=

file_number][[,]PASSWORD={password|@password_variable}][[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}]]2.使用RESTORE語句進行數(shù)據(jù)庫恢復使用RESTORE語句可以恢復用BACKUP命令所做的備份,包括恢復整個數(shù)據(jù)庫、恢復數(shù)據(jù)庫的部分內(nèi)容、恢復特定的文件或文件組和恢復事務(wù)日志。8.3.2數(shù)據(jù)庫的恢復命令1)恢復整個數(shù)據(jù)庫語法格式:RESTOREDATABASE{database_name|@database_name_var

}/*database_name或@database_name_var指定被還原的目標數(shù)據(jù)庫。*/[FROM<backup_device>[,...n

]]/*指定備份設(shè)備。參見RESTOREHEADONLY語句中backup_device。*/[WITH

[RESTRICTED_USER]/*限制只有db_owner、dbcreator或sysadmin角色的成員才能訪問新恢復的數(shù)據(jù)庫。*/[[,]FILE={file_number|@file_number}][[,]PASSWORD={password|@password_variable}][[,]MEDIANAME={media_name|@media_name_variable}][[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}][[,]MOVE'logical_file_name'TO'operating_system_file_name'

]

[,...n][[,]KEEP_REPLICATION][[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name

}][[,]{NOREWIND|REWIND}][[,]{NOUNLOAD|UNLOAD}][[,]REPLACE]

[[,]RESTART][[,]STATS[=percentage

]] ]8.3.2數(shù)據(jù)庫的恢復命令該語句的執(zhí)行情況如圖所示。8.3.2數(shù)據(jù)庫的恢復命令2)恢復數(shù)據(jù)庫的部分內(nèi)容

語法格式:

RESTOREDATABASE{database_name|@database_name_var}

<file_or_filegroup>[,...n]/*指定包括在需恢復的邏輯文件或文件組的名稱*/

[FROM<backup_device>[,...n]]

[WITH

{PARTIAL} /*指定部分還原操作。*/

[[,]FILE={file_number|@file_number

}]

[[,]PASSWORD={password

|@password_variable}]

[[,]MEDIANAME={media_name

|@media_name_variable

}]

[[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}]

[[,]MOVE'logical_file_name'TO'operating_system_file_name']

[,...n]

[[,]NORECOVERY]

[[,]{NOREWIND|REWIND}]

[[,]{NOUNLOAD|UNLOAD}]

[[,]REPLACE]

[[,]RESTRICTED_USER]

[[,]RESTART]

[[,]STATS[=percentage

]]

]8.3.2數(shù)據(jù)庫的恢復命令3)恢復特定的文件或文件組

語法格式:

RESTOREDATABASE{database_name|@database_name_var

}

<file_or_filegroup>[,...n

]

[FROM<backup_device>[,...n

]]

[WITH

[RESTRICTED_USER]

[[,]FILE={file_number|@file_number}]

[[,]PASSWORD={password|@password_variable

}]

[[,]MEDIANAME={media_name|@media_name_variable

}]

[[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable

}]

[[,]MOVE'logical_file_name'TO'operating_system_file_name']

[,...n]

[[,]NORECOVERY]

[[,]{NOREWIND|REWIND}]

[[,]{NOUNLOAD|UNLOAD}]

[[,]REPLACE]

[[,]RESTART]

[[,]STATS[=percentage

]]

]8.3.2數(shù)據(jù)庫的恢復命令4)恢復事務(wù)日志語法格式:RESTORELOG{database_name|@database_name_var}[FROM<backup_device>[,...n

]][WITH[RESTRICTED_USER][[,]FILE={file_number|@file_number}][[,]PASSWORD={password|@password_variable

}][[,]MOVE'logical_file_name'TO'operating_system_file_name'][,...n][[,]MEDIANAME={media_name|@media_name_variable}][[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable

}][[,]KEEP_REPLICATION][[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name

}][[,]{NOREWIND|REWIND}][[,]{NOUNLOAD|UNLOAD}][[,]RESTART][[,]STATS[=percentage

]][[,]STOPAT={date_time|@date_time_var}|[,]STOPATMARK=

'mark_name'[AFTERdatetime

]|[,]STOPBEFOREMARK=

'mark_name'[AFTERdatetime

]]]8.3.3使用企業(yè)管理器恢復數(shù)據(jù)庫啟動SQLServer企業(yè)管理器,選擇菜單項“工具還原數(shù)據(jù)庫…”,如圖所示。8.3.3使用企業(yè)管理器恢復數(shù)據(jù)庫操作結(jié)束后,出現(xiàn)如圖所示的窗口,該窗口有兩個選項卡:“常規(guī)”和“選項”。在“常規(guī)”選項卡中,選擇要恢復的數(shù)據(jù)庫及恢復的類型,單擊“確定”按鈕。

8.4.1導入導出概念SQLServer2000中有多個支持數(shù)據(jù)導入導出的組件,它們是:(1)數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)數(shù)據(jù)轉(zhuǎn)換服務(wù)在異類OLEDB和ODBC數(shù)據(jù)源之間導入和導出數(shù)據(jù)。(2)復制復制用于創(chuàng)建單獨數(shù)據(jù)庫中的數(shù)據(jù)復本,并通過將一個復本中的修改復制到其它所有復本使所有復本同步,將在第9章討論復制技術(shù)。(3)批量復制程序(大容量復制)SQLServer的大容量復制功能允許高效地傳輸大量數(shù)據(jù)。(4)T-SQL語句T-SQL語句包括SELECTINTO、INSERTSELECT、BULKINSRT、BACKUP和RESTORE語句。8.4.1導入導出概念功能DTS向?qū)椭芺cpBULKINSERTSELECTINTO/INSERT導入文本數(shù)據(jù)是

是是導出文本數(shù)據(jù)是

從ODBC數(shù)據(jù)源導入是是

導出到ODBC數(shù)據(jù)源是是

從OLEDB數(shù)據(jù)源導入是是

是導出到OLEDB數(shù)據(jù)源是是

圖形用戶界面

(GUI)是是

命令行提示/批處理腳本是是

Transact-SQL腳本

是是自動調(diào)度是是

反復導入/導出是是

最優(yōu)性能

數(shù)據(jù)轉(zhuǎn)換是

編程接口是是

SQLServer中各種導入和導出選項的功能8.4.2使用bcp實用程序?qū)雽С鰯?shù)據(jù)

bcp實用程序是一個非常靈活的工具,是一個命令行實用程序,必須在操作系統(tǒng)提示符下執(zhí)行。語法格式:bcp{[[database_name.][owner].]{table_name|view_name}|"query"}{in|out|queryout|format}data_file[-mmax_errors][-fformat_file][-eerr_file][-Ffirst_row][-Llast_row][-bbatch_size][-n][-c][-w][-N][-V(60|65|70)][-6]

[-q][-Ccode_page][-tfield_term][-rrow_term][-iinput_file][-ooutput_file][-apacket_size][-Sserver_name[\instance_name]][-Ulogin_id][-Ppassword][-T][-v][-R][-k][-E][-h"hint[,...n]"]【例8.9】以下是使用bcp實用程序?qū)霐?shù)據(jù)的命令,它將文本文件e:\sqldata\student.txt中的數(shù)據(jù)導入數(shù)據(jù)庫XSCJ的XS表中,該文本文件中各字段值用逗號分隔,每行一換行符結(jié)束。bcp"XSCJ..XS"ine:\sqldata\student.txt-c–t","–m50–Sssrv–U"me"–P"mepass"8.5.1DTS概述使用DTS導入/導出向?qū)?,可以在?shù)據(jù)源及數(shù)據(jù)目標處使用以下的數(shù)據(jù)類型有20多種,主要包括:大多數(shù)的OLEDB和ODBC數(shù)據(jù)源以及用戶指定的OLEDB數(shù)據(jù)源(包括MicrosoftODBCDriverforOracle、MicrosoftODBCDriverforSQLServer、MicrosoftOLEDBProviderforOLAPServices、MicrosoftOLEDBProviderforOracle、MicrosoftOLEDBProviderforSQLServer等)。文本文件Oracle和Informix數(shù)據(jù)庫MicrosoftExcel電子表格MicrosoftAccess數(shù)據(jù)庫MicrosoftFoxPro數(shù)據(jù)庫DBase(包括dbaseIII、dbaseIV)Paradox數(shù)據(jù)庫(包括Paradox3.x、Paradox4.x、Paradox5.x)其它的ODBC數(shù)據(jù)源8.5.1DTS概述1.啟動DTS導入/導出向?qū)в腥N方法啟動DTS導入/導出向?qū)В旱谝环N方法是在開始菜單中選擇:程序MicrosoftSQLServer導入和導出數(shù)據(jù),如圖所示。8.5.1DTS概述第二種方法是在SQLServer企業(yè)管理器窗口中,選擇:工具數(shù)據(jù)轉(zhuǎn)換服務(wù)導入數(shù)據(jù)(或?qū)С鰯?shù)據(jù)),如圖所示。8.5.1DTS概述第三種方法是在SQLServer企業(yè)管理器窗口中選擇:工具向?qū)?shù)據(jù)轉(zhuǎn)換服務(wù)導出向?qū)Вɑ驅(qū)胂驅(qū)ВTS導入/導出向?qū)雍蟮牡谝粋€窗口如圖所示8.5.1DTS概述2.使用DTS導入/導出向?qū)нM行數(shù)據(jù)導出操作出現(xiàn)如圖所示的“高級連接屬性”對話框,在其中可以設(shè)置數(shù)據(jù)轉(zhuǎn)換方式,如數(shù)據(jù)一致性、數(shù)據(jù)校驗、數(shù)據(jù)格式改變等。8.5.1DTS概述在如圖所示的對話框中點擊“下一步”按鈕,將出現(xiàn)的選擇目的數(shù)據(jù)對話框。8.5.1DTS概述

指定文本文件作為目的數(shù)據(jù)

8.5.1DTS概述圖

指定復制或查詢表圖指定文件格式

8.5.1DTS概述圖保存、調(diào)度和復制DTS包圖導入/導出設(shè)置摘要顯示8.5.1DTS概述執(zhí)行數(shù)據(jù)導出操作時,將出現(xiàn)如圖所示的“正在執(zhí)行包”提示對話框,導出操作結(jié)束后,單擊“確定”按鈕,則結(jié)束操作。8.5.1DTS概述3.使用DTS導入/導出向?qū)нM行數(shù)據(jù)導入操作

第1步啟動DTS導入/導出向?qū)?;?步在數(shù)據(jù)源中選擇“用于SQLServer的MicrosoftOLEDB提供程序”,并選擇服務(wù)器為local,指定數(shù)據(jù)庫名為XSCJ,如圖所示;單擊“下一步”;第3步在如圖所示的對話框中單擊“下一步”,將出現(xiàn)如圖所示的選擇目的數(shù)據(jù)對話框,指定目的數(shù)據(jù)為“用于SQLServer的MicrosoftOLEDB提供程序”,并指定服務(wù)器和數(shù)據(jù)庫名(AVERAGE);8.5.1DTS概述第4步單擊“下一步”,在如圖所示的對話框中選擇“用一條查詢指定要傳輸?shù)臄?shù)據(jù)”;第5步單擊“下一步”,在如圖所示的對話框中輸入如下的SQL語句:SELECT學號,AVG(成績)AS平均成績

FROMXS_KCgroupby學號8.5.1DTS概述第6步在如圖8.46所示的對話框中選擇一個或多個表或視圖進行復制,單擊“下一步”。第7步選擇“立即運行”,單擊“下一步”。8.5.1DTS概述第8步在如圖所示的對話框中單擊“完成”。第9步系統(tǒng)將顯示DTS包執(zhí)行狀態(tài),如圖所示。執(zhí)行完畢后,出現(xiàn)一提示對話框,單擊“確定”,導入操作即結(jié)束。8.5.3DTS包設(shè)計器Access數(shù)據(jù)庫student的stu表中已有的數(shù)據(jù)如圖所示。8.5.3DTS包設(shè)計器(1)使用DTS包設(shè)計器創(chuàng)建一個DTS包第1步在SQLServer企業(yè)管理器控制臺目錄樹的“數(shù)據(jù)轉(zhuǎn)換服務(wù)”文件夾上單擊鼠標右鍵,然后單擊“新建包”菜單項,如圖所示。8.5.3DTS包設(shè)計器將出現(xiàn)如圖所示的包編輯窗口,該窗口包括標題欄、主菜單、快捷工具欄及編輯窗口等四個部分。第2步在“連接”快捷工具欄中單擊MicrosoftAccess圖標。8.5.3DTS包設(shè)計器第3步在所出現(xiàn)的如圖所示的連接屬性對話框中選擇“新建連接”,并選擇數(shù)據(jù)源類型為“AccessConnection”,在“文件名”框中指定Access數(shù)據(jù)庫文件名,本例中文件名為G:\access_db\student.mdb。單擊“確定”添加該MicrosoftAccess連接,如圖所示。第4步在“連接”快捷工具欄中單擊MicrosoftOLEDBProviderforSQLServer圖標。8.5.3DTS包設(shè)計器第5步在所出現(xiàn)的如圖所示的連接屬性對話框中選擇“新建

溫馨提示

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

評論

0/150

提交評論