西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)西西教程數(shù)據(jù)庫(kù)教程 → SQLSERVER 2005數(shù)據(jù)庫(kù)備份、還原及數(shù)據(jù)恢復(fù)圖文教程

SQLSERVER 2005數(shù)據(jù)庫(kù)備份、還原及數(shù)據(jù)恢復(fù)圖文教程

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2015/2/3 9:05:32字體大小:A-A+

作者:西西點(diǎn)擊:2783次評(píng)論:1次標(biāo)簽: SQLSERVER

  • 類型:數(shù)據(jù)庫(kù)類大。594KB語(yǔ)言:中文 評(píng)分:7.7
  • 標(biāo)簽:
立即下載

做網(wǎng)站,數(shù)據(jù)庫(kù)同步是最重要的了吧,其他需要使用需要使用SQL Server數(shù)據(jù)庫(kù)的CS系統(tǒng),SQL數(shù)據(jù)庫(kù)的備份也是非常重要的,數(shù)據(jù)庫(kù)備份是維護(hù)數(shù)據(jù)正確,防止數(shù)據(jù)丟失的重要手段。備份點(diǎn)恢復(fù)策略可以讓數(shù)據(jù)還原到備份點(diǎn),通過(guò)觸發(fā)備份的方法,可以提高備份的有效性;采用即時(shí)點(diǎn)備份策略,可將數(shù)據(jù)恢復(fù)到任意點(diǎn),提高數(shù)據(jù)的安全性;通過(guò)性能警報(bào)監(jiān)視事務(wù)日志使用情況,及時(shí)優(yōu)化日志文件,可以提高系統(tǒng)性能。

一、備份數(shù)據(jù)庫(kù)步驟

1、第一步:在開(kāi)始—>程序(P)—>MicrosoftSQLserver2005—>SQLServerManagementStudio(如下圖)

2、第二步:登錄數(shù)據(jù)庫(kù)服務(wù)器,在打開(kāi)企業(yè)管理器后,逐一展開(kāi),找到并展開(kāi)“數(shù)據(jù)庫(kù)”這一項(xiàng),然后會(huì)看到需要備份的數(shù)據(jù)庫(kù)“gxbtoc”(如下圖)

3、第三步:選擇要備份的數(shù)據(jù)庫(kù)單擊右鍵(如下圖)

4、第四步:點(diǎn)擊上圖的“備份”,進(jìn)入下圖(一般情況用默認(rèn)設(shè)置就可以了)(如下圖)

5、第五步:?jiǎn)螕羯蠄D的“添加”,進(jìn)入“選擇備份目標(biāo)”對(duì)話框(如下圖)

6、第六步:點(diǎn)擊上圖“選擇備份目標(biāo)”右邊的三點(diǎn)框打開(kāi)備份文件的路徑,見(jiàn)下圖,在“定位數(shù)據(jù)庫(kù)文件”窗口指定目錄并填寫(xiě)備份的文件名,然后點(diǎn)確定,返回“備份目錄”窗口。


7、第七步:點(diǎn)擊確實(shí)返回“備份目錄”后再點(diǎn)擊“確定”后,即開(kāi)始備份(如下圖)

8、第八步:打開(kāi)步驟五中確定的那個(gè)盤(pán)符就可以看到備份的數(shù)據(jù)庫(kù)(如下圖)

二、還原數(shù)據(jù)庫(kù)步驟

1、第一步:在開(kāi)始—>程序集(P)—>MicrosoftSQLserver2005—>SQLServerManagementStudio(如下圖)

2、第二步:登錄需要備份的數(shù)據(jù)庫(kù)服務(wù)器,打開(kāi)企業(yè)管理器后,逐一展開(kāi),看到有數(shù)據(jù)庫(kù)項(xiàng)后,選中數(shù)據(jù)庫(kù)節(jié)點(diǎn)單擊右鍵(如下圖)

3、第三步:選擇“還原”后進(jìn)入“還原數(shù)據(jù)庫(kù)”窗口,目標(biāo)數(shù)據(jù)庫(kù)默認(rèn)已經(jīng)選擇需要還原的數(shù)據(jù),接著在“還原的源”中的選擇“源設(shè)備(D)”,單擊“源設(shè)備((D)”右邊的“…”按鈕.見(jiàn)下圖

4、進(jìn)入“指定備份對(duì)話框”,點(diǎn)擊“添加”,進(jìn)入指定數(shù)據(jù)庫(kù)文件窗口。

5、第四步:瀏覽并找到需要還原的數(shù)據(jù)庫(kù)備份文件,點(diǎn)擊“確定”

6、第六步:點(diǎn)擊“確定”后回到指“定備份”對(duì)話框,此時(shí)需要還原的文件已經(jīng)列出來(lái)了,接著點(diǎn)擊“確定”,返回“還原數(shù)據(jù)庫(kù)”。

注:有些備份文件有多個(gè)備份集,可根據(jù)實(shí)際情況選擇備份集還原數(shù)據(jù)庫(kù)。

8、在左邊的功能導(dǎo)航框中選擇“選項(xiàng)”并選擇“在現(xiàn)有數(shù)據(jù)庫(kù)上強(qiáng)制還原(F)”點(diǎn)擊“確定”。

9、系統(tǒng)自動(dòng)還原數(shù)據(jù)庫(kù),成功后系統(tǒng)提示還原數(shù)據(jù)庫(kù)成功,點(diǎn)擊確定或OK即可。

三、數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)步驟

1、通過(guò)日志恢復(fù)SQLSERVER2005數(shù)據(jù)(也可通過(guò)LogExplorer工具查找進(jìn)行恢復(fù)數(shù)據(jù))

(A)......通過(guò)日志和時(shí)間點(diǎn)來(lái)恢復(fù)數(shù)據(jù)的前提條件:數(shù)據(jù)庫(kù)的故障恢復(fù)改為非簡(jiǎn)單模式,去掉自動(dòng)關(guān)閉和自動(dòng)收縮兩個(gè)選項(xiàng),如果是簡(jiǎn)單模式:類似下面的語(yǔ)句操作數(shù)據(jù)就不會(huì)記錄到日志中:select*intotfrom[表名].【采用LogExplorer工具可以在線操作,通過(guò)恢復(fù)日志(指定時(shí)間點(diǎn)恢復(fù))來(lái)恢復(fù)數(shù)據(jù),必須停止數(shù)據(jù)庫(kù)或者再另一個(gè)數(shù)據(jù)庫(kù)恢復(fù)(前提是必須有一個(gè)完全備份和日志備份)】

這時(shí)為保證數(shù)據(jù)的完整要將數(shù)據(jù)庫(kù)的恢復(fù)模式改成“完整.

1.1、這時(shí)對(duì)數(shù)據(jù)庫(kù)事務(wù)日志做備份(注意,如果沒(méi)做個(gè)數(shù)據(jù)庫(kù)完整備份,是不能做事務(wù)日志備份的

這時(shí)新建一個(gè)數(shù)據(jù)庫(kù)zp(將以前的數(shù)據(jù)庫(kù)改名),恢復(fù)數(shù)據(jù)庫(kù)

這時(shí)我們看到,有兩個(gè)還原的數(shù)據(jù)庫(kù)備份,因?yàn)槲覍?duì)zp數(shù)據(jù)庫(kù)備份了兩次,兩次的備份的數(shù)據(jù)文件都一樣。這里我們選擇最近時(shí)間的備份默認(rèn)在數(shù)據(jù)庫(kù)的設(shè)置如下:是追加到備份集里,所以會(huì)有兩個(gè)備份,如下圖:

同時(shí),在”選項(xiàng)“里設(shè)置”不回滾“事務(wù),

注意:通過(guò)事務(wù)日志還原數(shù)據(jù)庫(kù),必須選擇"不回滾"事務(wù)

確定后:出現(xiàn)下面情況:

這時(shí)發(fā)現(xiàn),數(shù)據(jù)庫(kù)一直是”正在還原“,這時(shí)還原數(shù)據(jù)庫(kù)事務(wù)日志,

1.2、“常規(guī)”里選擇時(shí)間,(剛刪除的時(shí)間)

1.3、“選項(xiàng)”里將恢復(fù)狀態(tài)設(shè)置為”回滾未提交“事務(wù)

確定后,查詢數(shù)據(jù)庫(kù),發(fā)現(xiàn)數(shù)據(jù)回來(lái)了.

2、無(wú)日志的數(shù)據(jù)恢復(fù)

2.1.新建一個(gè)同名的數(shù)據(jù)庫(kù)
2.2再停掉sqlserver(注意不要分離數(shù)據(jù)庫(kù))
2.3用原數(shù)據(jù)庫(kù)的數(shù)據(jù)文件覆蓋掉這個(gè)新建的數(shù)據(jù)庫(kù)
2.4再重啟sqlserver
2.5此時(shí)打開(kāi)企業(yè)管理器時(shí)會(huì)出現(xiàn)置疑,先不管,執(zhí)行下面的語(yǔ)句(注意修改其中的數(shù)據(jù)庫(kù)名)
2.6完成后一般就可以訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)了,這時(shí),數(shù)據(jù)庫(kù)本身一般還要問(wèn)題,解決辦法是,利用
數(shù)據(jù)庫(kù)的腳本創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),并將數(shù)據(jù)導(dǎo)進(jìn)去就行了.
USEMASTER
SP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
UPDATESYSDATABASESSETSTATUS=32768WHERENAME='數(shù)據(jù)庫(kù)名'
sp_dboption'數(shù)據(jù)庫(kù)名','singleuser','true'
DBCCCHECKDB('數(shù)據(jù)庫(kù)名')
updatesysdatabasessetstatus=28wherename='數(shù)據(jù)庫(kù)名'
sp_configure'allowupdates',0reconfigurewithoverride
sp_dboption'數(shù)據(jù)庫(kù)名','singleuser','false'

四、數(shù)據(jù)庫(kù)壓縮

1、執(zhí)行M_CompressDataBase_T存儲(chǔ)過(guò)程對(duì)非活動(dòng)的服務(wù)器的所有數(shù)據(jù)庫(kù)進(jìn)行壓縮.

五、常見(jiàn)異常處理

1、磁盤(pán)空間不夠

解決方法:擴(kuò)充磁盤(pán)空間或選擇空間足夠的磁盤(pán)

2、如果還原后,遇到SQL問(wèn)題:錯(cuò)誤21002:[sql-dmo]用戶“***”已經(jīng)存在錯(cuò)誤。

解決方法:1.打開(kāi)SQLSERVER2005Management→數(shù)據(jù)庫(kù)→展開(kāi)出問(wèn)題的數(shù)據(jù)庫(kù)如"mydb"→"用戶"→在右側(cè)窗口中選擇出問(wèn)題的用戶名如:"***"→右擊鼠標(biāo)→刪除

3、在還原數(shù)據(jù)庫(kù)時(shí)遇到"在數(shù)據(jù)還原時(shí)候出現(xiàn)"試圖擴(kuò)大物理文件時(shí),MODIFYFILE遇到操作系統(tǒng)錯(cuò)誤112(磁盤(pán)空間不足)。未能調(diào)整文件xxx_log'的空間分配。RESTOREDATABASE操作異常終止."的問(wèn)題.

解決方法:運(yùn)行cmd輸入:convert盤(pán)符:/FS:NTFS如:convertC:/FS:NTFS

4、無(wú)法將設(shè)備'xxx'上的備份應(yīng)用于數(shù)據(jù)庫(kù)'yyy',restoredatabase操作異常終止.

解決方法:更改還原數(shù)據(jù)庫(kù)名

5、問(wèn)題5:恢復(fù)過(guò)程中出現(xiàn)“因?yàn)閿?shù)據(jù)庫(kù)正在使用,所以未能獲得對(duì)數(shù)據(jù)庫(kù)的排它訪問(wèn)權(quán)。”

解決方法:出現(xiàn)這種問(wèn)題主要是由于數(shù)據(jù)庫(kù)的會(huì)話還沒(méi)有中斷,可以采用kill會(huì)話進(jìn)程或重啟服務(wù)器

6、為備份或還原操作指定的設(shè)備太多;只允許指定64個(gè)設(shè)備。RESTOREHEADERONLY操作異常終止。(MicrosoftSQLServer,Error:3205)

解決方法:如果系統(tǒng)同時(shí)安裝了sqlserver2000跟sqlserver2005,在還原時(shí)可能會(huì)出現(xiàn)上述錯(cuò)誤,解決方法---于數(shù)據(jù)庫(kù)屬性-選項(xiàng)-兼容級(jí)別->sqlsever2000(80),或在安裝時(shí)為sqlserver2000跟sqlserver2005一個(gè)或兩個(gè)都指定實(shí)例名.

7、問(wèn)題3:無(wú)法更改數(shù)據(jù)庫(kù)中對(duì)象的所有者:
解決方法:使用如下代碼:
execsp_changeobjectowner'原所有者名',[dbo]
執(zhí)行存儲(chǔ)過(guò)程changename
execchangename'原所有者名','新所有者名'

8、問(wèn)題7:如何將SQLSERVER數(shù)據(jù)庫(kù)備份到網(wǎng)絡(luò)上

解決方法:

[@physicalname=]'physical_name'

備份設(shè)備的物理名稱。物理名稱必須遵照操作系統(tǒng)文件名稱的規(guī)則或者網(wǎng)絡(luò)設(shè)備的通用命名規(guī)則,并且必須包括完整的路徑。physical_name的數(shù)據(jù)類型為nvarchar(260),沒(méi)有默認(rèn)值,并且不能為NULL。

當(dāng)創(chuàng)建遠(yuǎn)程網(wǎng)絡(luò)位置上的備份設(shè)備時(shí),請(qǐng)確保在其下啟動(dòng)SQLServer的名稱對(duì)遠(yuǎn)程的計(jì)算機(jī)有適當(dāng)?shù)膶?xiě)入能力。

B.添加網(wǎng)絡(luò)磁盤(pán)備份設(shè)備
下面的示例顯示一個(gè)遠(yuǎn)程磁盤(pán)備份設(shè)備。在其下啟動(dòng)SQLServer的名稱必須對(duì)該遠(yuǎn)程文件擁有權(quán)限。

USEmasterEXECsp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'"
以前曾看到過(guò)有人問(wèn),怎么樣才能將數(shù)據(jù)備份到網(wǎng)絡(luò)上,一直沒(méi)有答案,然后我就試驗(yàn)了一把.
在服務(wù)器上建了一個(gè)目錄,然后確保共享并有權(quán)限,如果需要建在共享目錄下的目錄下,那還得保證用戶有權(quán)限
當(dāng)然,SQLSERVER系統(tǒng)啟動(dòng)早于登錄,一般用戶會(huì)在登錄中使用本地系統(tǒng)賬戶,我想在登錄到系統(tǒng)之前一直是administrator用戶模擬,因此,我將登錄的賬戶改為了網(wǎng)絡(luò)用戶,因?yàn)槲夜居杏,因此我將域用戶設(shè)置為本機(jī)的系統(tǒng)管理員,以確保該服務(wù)能啟動(dòng).
接下來(lái)更簡(jiǎn)單了:
sp_addumpdevice'DISK','NetWork','\\server\d$\databak\xuzh.bak'gobackupdatabasexuzhtonetwork
得到的結(jié)果如下:
成功完成網(wǎng)絡(luò)備份

六、總結(jié)

1、這是一般大型網(wǎng)站數(shù)據(jù)安全的一個(gè)辦法,因?yàn)閿?shù)據(jù)庫(kù)比較大(可能有幾百G)數(shù)據(jù),做一次完整備份時(shí)間很長(zhǎng),而且影響數(shù)據(jù)庫(kù)服務(wù)器的性能,為保證數(shù)據(jù)安全,大多采用完整備份+事務(wù)日志備份來(lái)保證數(shù)據(jù)安全。例如:一天做一次或者2天做一次完整備份,幾個(gè)小時(shí)內(nèi)做一次日志備份。(當(dāng)然可以用寫(xiě)一個(gè)job來(lái)實(shí)現(xiàn))

2、如SQLserver2005里的鏡像就是采用的這種事務(wù)日志同步的方法保證數(shù)據(jù)的同步。

3、如果恢復(fù)的日志數(shù)據(jù)出現(xiàn)”LSN“太早和太晚說(shuō)明了事務(wù)日志間的不連續(xù)。這時(shí)要注意備份的時(shí)間和順序。

七、附錄:

I.數(shù)據(jù)庫(kù)的文件和備份的文件是兩個(gè)不同的慨念.
每個(gè)數(shù)據(jù)庫(kù)都至少由兩個(gè)文件組成:
一個(gè)數(shù)據(jù)文件,默認(rèn)擴(kuò)展名的.mdf
一個(gè)日志文件,默認(rèn)擴(kuò)展名為.ldf
如果是用直接備份這兩個(gè)數(shù)據(jù)文件來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份,則備份的文件就是兩個(gè).
如果通過(guò)SQL的backupdatabase來(lái)備份,則SQL把這兩個(gè)文件打包在一齊,所以只有一個(gè)文件.

II.sqlserver提供了三種恢復(fù)模式,他們決定了有多少和什么樣的數(shù)據(jù)可以被備份下來(lái).
1.簡(jiǎn)單恢復(fù)模式
主要應(yīng)用于小型數(shù)據(jù)庫(kù)和不經(jīng)常改變的數(shù)據(jù)
2.完整恢復(fù)模式
可以在最大范圍內(nèi)防止出現(xiàn)故障時(shí)丟失數(shù)據(jù),它包括數(shù)據(jù)庫(kù)備份和食物日志備份,并提供全面保護(hù).這個(gè)模式使用數(shù)據(jù)庫(kù)和所有日志的備份恢復(fù)數(shù)據(jù)庫(kù)
3.大容量日志恢復(fù)模式
在完整恢復(fù)模式下,所有大批量的數(shù)據(jù)導(dǎo)入導(dǎo)出操作產(chǎn)生的日志更加的少,他會(huì)進(jìn)行日志的最小化記錄,部分事務(wù)不會(huì)被記錄下來(lái).

III.         數(shù)據(jù)庫(kù)備份可以分為4個(gè)備份類型。

1、完全備份:創(chuàng)建備份完成時(shí)數(shù)據(jù)庫(kù)內(nèi)存在的數(shù)據(jù)的副本。

2、差異備份:只記錄自上次數(shù)據(jù)庫(kù)備份后發(fā)生更改的數(shù)據(jù)。差異數(shù)據(jù)庫(kù)備份比數(shù)據(jù)庫(kù)備份小,而且備份速度快,因此可以更經(jīng)常地備份,經(jīng)常備份將減少丟失數(shù)據(jù)的危險(xiǎn)。

3、日志備份:是自上次備份事務(wù)日志后對(duì)數(shù)據(jù)庫(kù)執(zhí)行的所有事務(wù)的一系列記錄?梢允褂檬聞(wù)日志備份將數(shù)據(jù)庫(kù)恢復(fù)到特定的即時(shí)點(diǎn)(如輸入多余數(shù)據(jù)前的那一點(diǎn))或恢復(fù)到故障點(diǎn)。

4、文件組備份:可以備份和還原數(shù)據(jù)庫(kù)中的個(gè)別文件?梢灾贿原已損壞的文件,而不用還原數(shù)據(jù)庫(kù)的其余部分,從而加快了恢復(fù)速度。

不同的備份類型適用的范圍也不同。全備份,可以只用一步操作完成數(shù)據(jù)的全部備份,但執(zhí)行時(shí)間比較長(zhǎng)。差異備份和日志備份,都不能獨(dú)立作為一個(gè)備份集來(lái)使用,需要進(jìn)行一次全備份。文件備份必須與事務(wù)日志備份一起使用,所以文件備份只適用于完全恢復(fù)模型和大容量日志記錄恢復(fù)模型。

每一種備份類型都有不足之處,要針對(duì)需要選擇備份類型,或者使用幾種備份方式的配合來(lái)完成數(shù)據(jù)庫(kù)的備份。

經(jīng)常使用備份方式組合有以下幾種:

1、全備份+差異備份:以一周為周期,星期日進(jìn)行全備份,星期一到星期六每天進(jìn)行差異備份。

2、全備份+日志備份:以一周為周期,星期日進(jìn)行全備份,星期一到星期六每天進(jìn)行日志備份。

3、文件組備份+日志備份:備份周期取決于數(shù)據(jù)庫(kù)的大小和能力,每周期分別進(jìn)行一部分?jǐn)?shù)據(jù)文件備份,每天進(jìn)行日志備份。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)