国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
SQLServer備份的三個(gè)恢復(fù)模型
在SQL Server 2000中,有無(wú)數(shù)種備份數(shù)據(jù)庫(kù)的方法。無(wú)論你的數(shù)據(jù)庫(kù)有多大、改變是否頻繁,都有滿足你的要求的備份策略。讓我們看看幾種可以在不同環(huán)境下工作的基本備份策略。

  本文假定你有備份數(shù)據(jù)庫(kù)的權(quán)限。也就是說(shuō),你要么是系統(tǒng)管理員,要么是db_owner或者backupadministrator。還有,我們還假定你的操作系統(tǒng)提供了訪問(wèn)備份所需要的資源的權(quán)利,例如,訪問(wèn)磁盤(pán)或者磁帶驅(qū)動(dòng)器。

  從哪兒開(kāi)始

  在你開(kāi)始備份一個(gè)SQL Server數(shù)據(jù)庫(kù)之前,你需要知道該數(shù)據(jù)庫(kù)使用了哪個(gè)恢復(fù)模型。這里有三種不同的恢復(fù)模型:FULL、BULK_LOGGED和SIMPLE。

  FULL恢復(fù)模型向你提供了最大的恢復(fù)靈活性。新數(shù)據(jù)庫(kù)默認(rèn)使用的就是這種恢復(fù)模型。利用這種模型,你可以恢復(fù)數(shù)據(jù)庫(kù)的一部分或者完全恢復(fù)。假設(shè)交易記錄(transactions log)還沒(méi)有被破壞,你還可以在失敗之前恢復(fù)出最后一次的已提交(committed)交易。在所有的恢復(fù)模型中,這種模型使用了最多的交易記錄空間,并輕微影響了SQL Server的性能。

  BULK_LOGGED恢復(fù)模型比FULL模型少了一些恢復(fù)選項(xiàng),但是進(jìn)行批操作(bulk operation)時(shí)它不會(huì)嚴(yán)重影響性能。在進(jìn)行某些批操作時(shí),由于它只需記錄操作的結(jié)果,因此它使用了較少的記錄空間。然而,用這種模型,你不能恢復(fù)數(shù)據(jù)庫(kù)中的特定標(biāo)記,也不能僅僅恢復(fù)數(shù)據(jù)庫(kù)的一部分。

  SIMPLE恢復(fù)模型是這三種模型中最容易實(shí)施的,它所占用的存儲(chǔ)空間也最小。然而,你只能恢復(fù)出備份結(jié)束時(shí)刻的數(shù)據(jù)庫(kù)。

  為了找出你所用數(shù)據(jù)庫(kù)的恢復(fù)模型,可以運(yùn)行下面的命令,該命令應(yīng)該返回FULL、BULK_LOGGED和SIMPLE這三個(gè)值中的某一個(gè):

  SELECT dbpropertyex("database", "recovery")

  為了改變數(shù)據(jù)庫(kù)的恢復(fù)選項(xiàng),運(yùn)行下面的命令:

  ALTER DATABASE database name SET RECOVERY {FULL | SIMPLE | BULK_LOGGED}

  除數(shù)據(jù)之外,SQL Server備份還包括數(shù)據(jù)庫(kù)大綱(schema)和數(shù)據(jù)庫(kù)元數(shù)據(jù)(即數(shù)據(jù)庫(kù)文件、文件組和它們的位置)。SQL Server允許在備份時(shí)用戶依然使用數(shù)據(jù)庫(kù),所以在備份期間發(fā)生的交易也記錄到備份中去了。

  備份數(shù)據(jù)庫(kù)

  為了備份數(shù)據(jù)庫(kù),你可以運(yùn)行BACKUP命令。(你也可以使用SQL Enterprise Manager。)在執(zhí)行命令之前知道它的語(yǔ)法永遠(yuǎn)是個(gè)好主意。BACKUP命令有許多選項(xiàng),它的基本語(yǔ)法是:

  BACKUP DATABASE { database_name }

  TO < backup_device > |

  backup_device可以是磁盤(pán)或者磁帶――或者它也可以是一個(gè)用磁盤(pán)文件、磁帶或者已命名管道表示的邏輯上的備份設(shè)備。

  如果你想做一個(gè)快速、一次性的備份,那么向下面那樣使用磁盤(pán)文件:

  BACKUP DATABASE Northwind TO DISK = "c:ackupNorthwind.bak"

  如果你想把數(shù)據(jù)庫(kù)備份到另外一臺(tái)服務(wù)器上,可以使用UNC名字:

  BACKUP DATABASE Northwind TO DISK = "\FILESERVERSharedBackupNorthwind.bak"

  如果想進(jìn)行有規(guī)律、有計(jì)劃的備份,就需要使用邏輯備份設(shè)備。一個(gè)邏輯備份設(shè)備可以保存若干個(gè)數(shù)據(jù)庫(kù)備份并駐留在磁盤(pán)、磁帶或者已命?艿郎?。染J閌褂么糯璞?,磁带驱动器眳Q朐諭惶ㄎ錮矸衿魃?。已命名管禂埳以利用抵R獎(jiǎng)阜萑砑?

  為了創(chuàng)建邏輯備份設(shè)備,使用sp_addumpdevice系統(tǒng)保存過(guò)程。SQL Enterprise Manager也可以用來(lái)創(chuàng)建備份設(shè)備。命令行語(yǔ)法如清單A所示。

  清單B給出了一個(gè)在磁盤(pán)上創(chuàng)建邏輯備份設(shè)備的例子。

  當(dāng)備份設(shè)備創(chuàng)建完畢,Northwind數(shù)據(jù)庫(kù)可以用下面的命令進(jìn)行備份:

  BACKUP DATABASE Northwind TO DiskBackup

  頻繁變動(dòng)的大數(shù)據(jù)庫(kù)的備份

  現(xiàn)在,我已經(jīng)演示了如何備份整個(gè)數(shù)據(jù)庫(kù)。然而,它只允許你恢復(fù)備份結(jié)束時(shí)刻的數(shù)據(jù)庫(kù)所保存的數(shù)據(jù)。如果數(shù)據(jù)庫(kù)很大并且頻繁變動(dòng),由于時(shí)間和空間的限制,頻繁進(jìn)行全數(shù)據(jù)庫(kù)備份是不現(xiàn)實(shí)的。當(dāng)數(shù)據(jù)庫(kù)失敗時(shí),可能會(huì)造成大量數(shù)據(jù)丟失。

  在這種情況下,有兩種提高可恢復(fù)性的途徑,這兩個(gè)途徑都要求全數(shù)據(jù)庫(kù)備份。而且這兩種方法都要求數(shù)據(jù)庫(kù)恢復(fù)模型為FULL或者BULK_LOGGED。

  第一種方法采用差異數(shù)據(jù)庫(kù)備份,它只捕獲并保存全數(shù)據(jù)庫(kù)備份后改變的數(shù)據(jù)。由于它的文件較小而且信息簡(jiǎn)明,用它進(jìn)行數(shù)據(jù)恢復(fù)的速度非???。

  下面的例子在一個(gè)名為DiffBackupDevice的邏輯備份設(shè)備上創(chuàng)建了一個(gè)差異備份:

  BACKUP DATABASE Northwind TO DiffBackupDevice WITH DIFFERENTIAL

  第二個(gè)提高可恢復(fù)性的方法利用交易記錄備份,恢復(fù)可以在一個(gè)特定的時(shí)間點(diǎn)上完成。

  你可能會(huì)問(wèn)這怎么可能。記住,交易記錄的目的就是記錄發(fā)生在數(shù)據(jù)庫(kù)中所有交易。交易記錄允許COMMIT和ROLLBACK正確工作。為了達(dá)到這個(gè)功能,該數(shù)據(jù)的變化前后的數(shù)值必須隨同操作類(lèi)型、交易開(kāi)始(時(shí)間)等一齊被記錄下來(lái),

  備份技巧

  利用下面的列出的技巧來(lái)確保你不會(huì)在每周一次的數(shù)據(jù)庫(kù)備份過(guò)程中忘記關(guān)鍵步驟。

  每周一次備份主數(shù)據(jù)庫(kù)。如果你創(chuàng)建、修改或者停止一個(gè)數(shù)據(jù)庫(kù),添加新的SQL Server消息,添加或者停止連接服務(wù)器,或者添加記錄設(shè)備,那就進(jìn)行手工備份。

  每天備份一次msdb數(shù)據(jù)庫(kù)。它一般非常小,但很重要,因?yàn)樗怂械腟QL Server工作、操作和計(jì)劃任務(wù)。

  只有當(dāng)你修改它時(shí),才有必要備份模型數(shù)據(jù)庫(kù)。

  用SQL Server Agent來(lái)安排你的備份工作的時(shí)間表。

  如果在你的生產(chǎn)(production)環(huán)境中有現(xiàn)成資源,備份生產(chǎn)數(shù)據(jù)庫(kù)到本地磁盤(pán)或者網(wǎng)絡(luò)服務(wù)器(用同一個(gè)開(kāi)關(guān))。然后,把備份文件/設(shè)備拷貝到磁帶上。在存在許多硬件故障(特別是在RAID系統(tǒng)中)的情況下,磁盤(pán)常常是完好的(inact)。如果備份文件是在磁盤(pán)上,那么恢復(fù)時(shí)的速度會(huì)提高很多。

  備份開(kāi)發(fā)和測(cè)試數(shù)據(jù)庫(kù)至少要用到SIMPLE恢復(fù)模型。

  除了有計(jì)劃的定時(shí)備份外,在進(jìn)行未記錄的(nonlogged)批操作(如,批拷貝)、創(chuàng)建索引、或者改變恢復(fù)模型后要備份用戶數(shù)據(jù)庫(kù)。

  如果你使用的是SIMPLE恢復(fù)模型,記住在截短(truncate)交易記錄之后備份你的數(shù)據(jù)庫(kù)。

  用文檔記錄你的恢復(fù)步驟。至少要大概記錄這些步驟,注意所有的重要文件的位置。

  在截短記錄之前,也就是所有的已提交(committed)交易從記錄中清空之前,所有的這些信息都保存在交易記錄中。在SIMPLE恢復(fù)模型中,記錄在一個(gè)CHECKPOINT期間內(nèi)截短(在SQL Server內(nèi)存緩沖寫(xiě)道磁盤(pán)時(shí)),它是自動(dòng)發(fā)生的,但也可以手動(dòng)執(zhí)行。這也就是SIMPLE恢復(fù)模型不支持時(shí)間點(diǎn)(point-in-time)恢復(fù)的原因。在FULL和BULK_LOGGED恢復(fù)模型下,當(dāng)交易記錄被備份時(shí),交易記錄被截短,除非你明確指出不進(jìn)行截短。

  為了備份交易記錄,使用BACKUP LOG命令。其基本語(yǔ)法與BACKUP命令非常相似:

  BACKUP LOG { database } TO

  下面是如何把交易記錄備份到一個(gè)名為L(zhǎng)ogBackupDevice的邏輯設(shè)備上的例子:

  BACKUP TRANSACTION Northwind TO LogBackupDevice

  如果你不希望截短交易記錄,使用NO_TRUNCATE選項(xiàng),如下所示:

  BACKUP TRANSACTION Northwind TO LogBackupDevice WITH NO_TRUNCATE

  只是基本知識(shí)

  盡管我在本文中僅僅概述了數(shù)據(jù)庫(kù)恢復(fù)的基本知識(shí),你還是可以通過(guò)這些技巧來(lái)找到正確的方向。那么,為了避免不必要的(丟失數(shù)據(jù)造成的)恐慌,你要做到每周備份主數(shù)據(jù)庫(kù),每天備份msdb。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Sql server數(shù)據(jù)庫(kù)備份的三個(gè)恢復(fù)模型
SQL語(yǔ)言 備份數(shù)據(jù)庫(kù)
測(cè)試SQL 2008數(shù)據(jù)庫(kù)加密備份與還原[完備+差異備份]
如何在 SQL Server 中備份和恢復(fù)數(shù)據(jù)庫(kù)
配置SQL Server 2000選項(xiàng)
SQL Server 數(shù)據(jù)庫(kù)備份
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服