亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號(hào)

SQL Server的數(shù)據(jù)備份、管理與恢復(fù)(下)
2007-09-30   網(wǎng)絡(luò)

3.SQL Sewer數(shù)據(jù)庫(kù)恢復(fù)

在SQL Sever的數(shù)據(jù)庫(kù)中,系統(tǒng)數(shù)據(jù)庫(kù)占據(jù)著非常重要的位置。一般來(lái)講如果用戶(hù)數(shù)據(jù)庫(kù)壞了,可以通過(guò)還原用戶(hù)數(shù)據(jù)庫(kù)備份而達(dá)到恢復(fù)用戶(hù)數(shù)據(jù)的目的。而如果Maser數(shù)據(jù)庫(kù)損壞了,用戶(hù)將無(wú)法啟動(dòng)SQL Server來(lái)還原其他任何數(shù)據(jù)庫(kù)。所以恢復(fù)SQL Server 2000用戶(hù)數(shù)據(jù)庫(kù)的前提是保證系統(tǒng)數(shù)據(jù)庫(kù)正常。

(1)系統(tǒng)數(shù)據(jù)庫(kù)概述。

在SQL Server數(shù)據(jù)庫(kù)中,系統(tǒng)信息存儲(chǔ)在系統(tǒng)數(shù)據(jù)庫(kù)中。安裝SQL Server后,自動(dòng)建立了4個(gè)系統(tǒng)數(shù)據(jù)庫(kù)。它們分別是Master數(shù)據(jù)庫(kù)、model數(shù)據(jù)庫(kù)、tempdb數(shù)據(jù)庫(kù)和msdb數(shù)據(jù)庫(kù)。當(dāng)服務(wù)器配置為復(fù)制分發(fā)服務(wù)器時(shí),系統(tǒng)數(shù)據(jù)庫(kù)還將包括distribution數(shù)據(jù)庫(kù)。SQL Server依靠這些數(shù)據(jù)庫(kù)來(lái)運(yùn)行,這些數(shù)據(jù)庫(kù)中的每個(gè)庫(kù)都在服務(wù)器上執(zhí)行特定的功能。

Master數(shù)據(jù)庫(kù)從整體上控制SQL Server的所有方面。這個(gè)數(shù)據(jù)庫(kù)中包括所有的配置信息、用戶(hù)登錄信息、當(dāng)前正在服務(wù)器中運(yùn)行過(guò)程的信息等等。Master數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)中最重要的數(shù)據(jù)庫(kù)。如果丟失Master數(shù)據(jù)庫(kù),恢復(fù)所有用戶(hù)數(shù)據(jù)庫(kù)將是非常困難的事。SQL Server在運(yùn)行時(shí)所做的第一件事就是尋找Master數(shù)據(jù)庫(kù)并打開(kāi)它。所以在創(chuàng)建了任何用戶(hù)定義的對(duì)象后,都要備份它。

Model數(shù)據(jù)庫(kù)為新數(shù)據(jù)庫(kù)提供模版和原型。當(dāng)用戶(hù)建立一個(gè)新數(shù)據(jù)庫(kù)時(shí),SQL Server會(huì)把model數(shù)據(jù)庫(kù)中的所有對(duì)象建立一份復(fù)制并轉(zhuǎn)移到新數(shù)據(jù)庫(kù)中,然后把新數(shù)據(jù)庫(kù)的所有多余空間用空頁(yè)填滿(mǎn)。

tempdb數(shù)據(jù)庫(kù)是一個(gè)特殊的數(shù)據(jù)庫(kù),它供所有訪(fǎng)問(wèn)SQL Server的用戶(hù)使用。這個(gè)庫(kù)用來(lái)保存所有的臨時(shí)表、存儲(chǔ)過(guò)程和其他SQL Server建立的臨時(shí)對(duì)象。每次SQL Server重新啟動(dòng),都會(huì)清空tempdb數(shù)據(jù)庫(kù)并重建。因此永遠(yuǎn)不要在tempdb數(shù)據(jù)庫(kù)中建立需要永久保存的表。

msdb數(shù)據(jù)庫(kù)是SQL Server中的一個(gè)用戶(hù)數(shù)據(jù)庫(kù)的特例。所有的任務(wù)調(diào)度、報(bào)警操作都存儲(chǔ)在msdb數(shù)據(jù)庫(kù)中。該庫(kù)的另一個(gè)功能是存儲(chǔ)所有備份歷史。

(2)恢復(fù)Master數(shù)據(jù)庫(kù)。

如果Master數(shù)據(jù)庫(kù)以某種方式被損壞(如由于媒體故障),而且損失很?chē)?yán)重,則可能無(wú)法啟動(dòng)Microsoft SQL Server實(shí)例。有兩種方法將Master數(shù)據(jù)庫(kù)返回到可用狀態(tài)。

1)從當(dāng)前備份還原。可采用以下步驟從當(dāng)前備份中還原Master數(shù)據(jù)庫(kù)(Transact-SQL)。

①以單用戶(hù)模式啟動(dòng)SQL Server。在單用戶(hù)模式下以命令提示符啟動(dòng)SQL Server的默認(rèn)實(shí)例,可從命令提示符輸入:sqlservr.exe-c-m。在啟動(dòng)sqlservr.exe之前,必須在命令窗口中切換到要啟動(dòng)的Microsoft SQL Server實(shí)例所在的目錄。其中參數(shù)“-c”表示縮短啟動(dòng)時(shí)間,SQL Server不作為Windows NT/2000的服務(wù)啟動(dòng)。參數(shù)“-m”表示以單用戶(hù)模式啟動(dòng)SQL Server。

②執(zhí)行RESTORE DATABASE語(yǔ)句以還原Master數(shù)據(jù)庫(kù)備份。同時(shí)指定:要從其中還原Master數(shù)據(jù)庫(kù)備份的備份設(shè)備。例如從磁帶中還原Master數(shù)據(jù)庫(kù)備份而不使用永久命名的備份設(shè)備,可以使用如下語(yǔ)句:

USE Master

GO

RESTORE DATABASE Master

FROM TAPE=‘\\.\TapeO‘

GO

如果是磁盤(pán)則將“TAPE=‘\\.\TapeO’”換成“disk=‘c:\(具體的備份文件名)‘”即可。

2)用重建主控實(shí)用工具完全重建。使用重建主控實(shí)用工具重建Master數(shù)據(jù)庫(kù)時(shí),將導(dǎo)致以前存儲(chǔ)在Master數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)永久丟失。如果由于可以訪(fǎng)問(wèn)Master數(shù)據(jù)庫(kù)(至少部分可用)而能夠啟動(dòng)SQL Server實(shí)例,則可以從完整數(shù)據(jù)庫(kù)備份中還原Master數(shù)據(jù)庫(kù)。然而,如果由于Master數(shù)據(jù)庫(kù)嚴(yán)重?fù)p壞而無(wú)法啟動(dòng)SQL Server實(shí)例,則不能立即還原Master數(shù)據(jù)庫(kù)的備份,因?yàn)镾QL Server實(shí)例需要處于運(yùn)行狀態(tài)才能還原任何數(shù)據(jù)庫(kù)。首先應(yīng)使用重建主控實(shí)用工具重建Master數(shù)據(jù)庫(kù),然后才可以用普通方法還原當(dāng)前數(shù)據(jù)庫(kù)備份。可以按以下步驟重建Master數(shù)據(jù)庫(kù)。

①在Program Files\Microsoft SQL Server\80\Tools\Binn目錄中,運(yùn)行rebuildm.exe重建工具。

②彈出“重建Master”對(duì)話(huà)框,單擊“瀏覽”按鈕,在“瀏覽文件夾”對(duì)話(huà)框中,選擇SQL Server 2000光盤(pán)上或用于安裝SQL Server 2000的共享網(wǎng)絡(luò)目錄中的\Data文件夾,然后單擊“確定”按鈕。

③單擊“設(shè)置”按鈕。在“排序規(guī)則設(shè)置”對(duì)話(huà)框中,驗(yàn)證或更改用于Master數(shù)據(jù)庫(kù)或其他數(shù)據(jù)庫(kù)的設(shè)置。必須選擇和初次安裝時(shí)相同的字符集、排序規(guī)則和統(tǒng)一的編碼校驗(yàn)。如果不選擇與初次安裝服務(wù)器相同的排序規(guī)則,將無(wú)法還原Master數(shù)據(jù)庫(kù)。此外還必須保證配置的新的Master數(shù)據(jù)庫(kù)和原來(lái)的Master數(shù)據(jù)庫(kù)大小一致。

④單擊“重建”按鈕以啟動(dòng)進(jìn)程。重建Master實(shí)用工具將重新安裝Master數(shù)據(jù)庫(kù)。

⑤當(dāng)SQL Server完成重建Master數(shù)據(jù)庫(kù)后,它啟動(dòng)MSSQLServer服務(wù),打開(kāi)企業(yè)管理器,連接到服務(wù)器。

⑥添加設(shè)備,該設(shè)備要與上次備份Master數(shù)據(jù)庫(kù)的設(shè)備所在位置、名稱(chēng)、類(lèi)型一致。

⑦從最近一次備份中還原Master數(shù)據(jù)庫(kù)。當(dāng)Master數(shù)據(jù)庫(kù)還原后,必須重新啟動(dòng)SQL


⑧重新應(yīng)用自最新一次備份以來(lái)所發(fā)生的任何改變。然后還原msdb數(shù)據(jù)庫(kù)或者重建所有的任務(wù)和報(bào)警。因?yàn)橹亟∕aster數(shù)據(jù)庫(kù)的處理破壞并重建了msdb數(shù)據(jù)庫(kù)。

⑨還原其他系統(tǒng)數(shù)據(jù)庫(kù)。

⑩使用sp_attach_db系統(tǒng)存儲(chǔ)過(guò)程重新關(guān)聯(lián)所有用戶(hù)數(shù)據(jù)庫(kù)。

11使用企業(yè)管理器重新給數(shù)據(jù)庫(kù)用戶(hù)分配服務(wù)器登錄ID。

12重置數(shù)據(jù)庫(kù)選項(xiàng)。

13重新輸入所有SQL Server設(shè)置信息。

(3)還原model和msdb數(shù)據(jù)庫(kù)。

model和msdb數(shù)據(jù)庫(kù)只能從在Microsoft SQL Server 2000服務(wù)器上創(chuàng)建的備份還原。不支持從SQL Server 7.0版或更早的版本上創(chuàng)建的備份還原這些數(shù)據(jù)庫(kù)。如果msdb包含系統(tǒng)使用的調(diào)度數(shù)據(jù)或其他數(shù)據(jù),則重建Master數(shù)據(jù)庫(kù)時(shí)必須還原msdb數(shù)據(jù)庫(kù),因?yàn)閷?shí)用工具刪除并重建了msdb數(shù)據(jù)庫(kù)。這將導(dǎo)致丟失所有調(diào)度信息以及備份和還原歷史記錄。如果msdb數(shù)據(jù)庫(kù)沒(méi)有還原且無(wú)法訪(fǎng)問(wèn),SQL Server代理程序則無(wú)法訪(fǎng)問(wèn)或啟動(dòng)任何以前的調(diào)度任務(wù)。

Meta Data Services將msdb用作默認(rèn)知識(shí)庫(kù)數(shù)據(jù)庫(kù)。Meta Data Services和msdb數(shù)據(jù)庫(kù)之間打開(kāi)的連接將中斷msdb還原。若要釋放該連接,請(qǐng)重新啟動(dòng)企業(yè)管理器并還原msdb數(shù)據(jù)庫(kù)。在完全還原msdb數(shù)據(jù)庫(kù)之前,不要單擊企業(yè)管理器中的Meta Data Services節(jié)點(diǎn)。

(4)還原distribution數(shù)據(jù)庫(kù)。

在使用重建主控實(shí)用工具重建Master數(shù)據(jù)庫(kù)時(shí),不自動(dòng)重建distribution數(shù)據(jù)庫(kù),因此重建Master數(shù)據(jù)庫(kù)后不必還原distribution數(shù)據(jù)庫(kù)。如果distribution數(shù)據(jù)庫(kù)仍沒(méi)有被改動(dòng)過(guò),則可通過(guò)將數(shù)據(jù)庫(kù)附加到SQL Server自動(dòng)重新創(chuàng)建distribution。另一種方法是還原distribution數(shù)據(jù)庫(kù)備份。

但是,如果不是通過(guò)還原備份或附加數(shù)據(jù)庫(kù)重新創(chuàng)建distribution數(shù)據(jù)庫(kù),SQL Server復(fù)制實(shí)用工具不會(huì)運(yùn)行,這樣會(huì)防止進(jìn)行數(shù)據(jù)復(fù)制。如果許多發(fā)布服務(wù)器都使用distribution數(shù)據(jù)庫(kù)復(fù)制數(shù)據(jù),將影響許多系統(tǒng)不能還原用戶(hù)正在訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)。因此,還原msdb數(shù)據(jù)庫(kù)時(shí),應(yīng)停止SQL Server代理程序。如果SQL Server代理程序正在運(yùn)行,它可能會(huì)訪(fǎng)問(wèn)msdb數(shù)據(jù)庫(kù)。同樣,還原distribution數(shù)據(jù)庫(kù)時(shí),應(yīng)停止SQL Server復(fù)制實(shí)用工具。如果SQL Server復(fù)制實(shí)用工具正在運(yùn)行,它也可能會(huì)訪(fǎng)問(wèn)distribution數(shù)據(jù)庫(kù)。必須停止的復(fù)制實(shí)用工具還包括:復(fù)制日志讀取器代理程序?qū)嵱蒙暇摺?fù)制分發(fā)代理程序?qū)嵱霉ぞ摺?fù)制快照代理程序?qū)嵱霉ぞ呒皬?fù)制合并代理程序?qū)嵱霉ぞ摺?BR>
(5)恢復(fù)用戶(hù)數(shù)據(jù)庫(kù)。

1)在本地機(jī)上進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)。

①啟動(dòng)“企業(yè)管理器”,展開(kāi)其中的選項(xiàng),選擇“數(shù)據(jù)庫(kù)”,單擊右鍵,在對(duì)話(huà)框中選擇“所有任務(wù)”選項(xiàng)中的“還原數(shù)據(jù)庫(kù)”,出現(xiàn)“還原數(shù)據(jù)庫(kù)”窗口。

②單擊“選擇設(shè)備”按鈕,選擇要恢復(fù)的數(shù)據(jù)庫(kù)文件。選擇完畢后,“備份數(shù)量”選項(xiàng)將會(huì)變亮,選擇最近的一次備份。然后單擊“確定”按鈕,數(shù)據(jù)庫(kù)恢復(fù)過(guò)程開(kāi)始執(zhí)行。

2)從網(wǎng)絡(luò)備份恢復(fù)。由于網(wǎng)絡(luò)上備份的SQL Server中具有和本機(jī)相同的數(shù)據(jù)庫(kù),當(dāng)原來(lái)的數(shù)據(jù)庫(kù)崩潰后,就可以直接啟用另一個(gè),只要修改一下計(jì)算機(jī)上ODBC數(shù)據(jù)源中所設(shè)置的SQL Server主機(jī)名稱(chēng)就行了。

3)使用存儲(chǔ)過(guò)程恢復(fù)數(shù)據(jù)庫(kù)。在SQL Server2000中微軟重新設(shè)計(jì)了數(shù)據(jù)庫(kù)文件的存儲(chǔ)方式,取消了新建設(shè)備再建數(shù)據(jù)庫(kù)這一繁瑣的過(guò)程。在新的存儲(chǔ)方式中,一個(gè)數(shù)據(jù)庫(kù)包括兩個(gè)文件,mdf數(shù)據(jù)庫(kù)文件和ldf日志文件。所以我們?cè)谥匮b機(jī)器備份時(shí)可以把要備份的數(shù)據(jù)庫(kù)的這兩個(gè)文件復(fù)制出來(lái),重新安裝之后再恢復(fù)。在SQL Server中提供了這種恢復(fù)方式的存儲(chǔ)過(guò)程。

①sp_attach_db[@dbname=]‘dbname’,[@filenamel=]‘filename_n’

給系統(tǒng)添加一個(gè)數(shù)據(jù)庫(kù),在dbname指定數(shù)據(jù)庫(kù)名稱(chēng),filename n指定數(shù)據(jù)庫(kù)的文件和日志文件。

比如有一個(gè)test的庫(kù),停止SQL Server服務(wù)備份test_data.mdf,test_log.1df,啟動(dòng)SQL server,刪除這個(gè)庫(kù),然后再把這兩上文件復(fù)制到SQL Server DATA目錄中,在Query Analyzer中執(zhí)行如下語(yǔ)句:

EXEC sp_attach_db@dbname=N‘test’,

@filename 1=N‘d:mssq17\data\test_data.mdf’,

@filename2=N‘d:mssq17\data\test_log.1df’

就會(huì)把這個(gè)庫(kù)加入到SQL Server Group中。

②sp_attach_single_file_db[@dbname=]‘dbname’,@physname=]‘physical_name’

這個(gè)命令和上面的功能一樣,在physical_name中只要寫(xiě)上數(shù)據(jù)庫(kù)的物理文件名就可以了,日志文件SQL server會(huì)重新建立。這個(gè)存儲(chǔ)過(guò)程的運(yùn)行要執(zhí)行下面的存儲(chǔ)過(guò)程:

sp_detach_db@dbname=‘dbname’

同樣以上面的為例:

EXEC sp_detach_db@dbname=‘test’

EXEC sp_attach_single_file_db@dbname=‘test’,

@physname=‘d:mssq17\data\test_data.mdf’

要注意執(zhí)行以上存儲(chǔ)過(guò)程的用戶(hù)要在sysadmin中。以上方法均在Windows 2000 Advanced Server,SQL Server2000上運(yùn)行通過(guò)。

熱詞搜索:

上一篇:SQL Server的數(shù)據(jù)備份、管理與恢復(fù)(中)
下一篇:針對(duì)數(shù)據(jù)入侵的安全設(shè)置和策略

分享到: 收藏