MSSQL2005的新功能創(chuàng)建數(shù)據(jù)庫(kù)快照
數(shù)據(jù)庫(kù)快照是MSSQL2005的新功能,僅在 Microsoft SQL Server 2005 Enterprise Edition 中可用。而且SQL Server Management Studio 不支持創(chuàng)建數(shù)據(jù)庫(kù)快照,創(chuàng)建快照的唯一方式是使用 Transact-SQL。
數(shù)據(jù)庫(kù)快照是數(shù)據(jù)庫(kù)(稱為“源數(shù)據(jù)庫(kù)”)的只讀靜態(tài)視圖。在創(chuàng)建時(shí),每個(gè)數(shù)據(jù)庫(kù)快照在事務(wù)上都與源數(shù)據(jù)庫(kù)一致。在創(chuàng)建數(shù)據(jù)庫(kù)快照時(shí),源數(shù)據(jù)庫(kù)通常會(huì)有打開(kāi)的事務(wù)。在快照可以使用之前,打開(kāi)的事務(wù)會(huì)回滾以使數(shù)據(jù)庫(kù)快照在事務(wù)上取得一致。客戶端可以查詢數(shù)據(jù)庫(kù)快照,這對(duì)于基于創(chuàng)建快照時(shí)的數(shù)據(jù)編寫(xiě)報(bào)表是很有用的。而且,如果以后源數(shù)據(jù)庫(kù)損壞了,便可以將源數(shù)據(jù)庫(kù)恢復(fù)到它在創(chuàng)建快照時(shí)的狀態(tài)。創(chuàng)建數(shù)據(jù)庫(kù)快照可以:<!--[if !supportLists]--><!--[endif]-->維護(hù)歷史數(shù)據(jù)以生成報(bào)表。可以通過(guò)快照訪問(wèn)特定時(shí)間點(diǎn)的數(shù)據(jù)。例如,您可以在給定時(shí)間段(例如,財(cái)務(wù)季度)要結(jié)束的時(shí)候創(chuàng)建數(shù)據(jù)庫(kù)快照以便日后制作報(bào)表。然后便可以在快照上運(yùn)行期間要結(jié)束時(shí)創(chuàng)建的報(bào)表。 <!--[if !supportLists]-->將查詢實(shí)施在數(shù)據(jù)庫(kù)的快照上,可以釋放主體數(shù)據(jù)庫(kù)上的資源。 <!--[if !supportLists]-->加快恢復(fù)操作效率,使用快照將數(shù)據(jù)庫(kù)恢復(fù)到生成快照時(shí)的狀態(tài)比從備份還原快得多;但是,此后您無(wú)法對(duì)數(shù)據(jù)進(jìn)行前滾操作。根據(jù)磁盤(pán)資源,可以每 24 小時(shí)創(chuàng)建 6 到 12 個(gè)滾動(dòng)快照。每創(chuàng)建一個(gè)新的快照,就刪除最早的快照。如果要恢復(fù),可以將數(shù)據(jù)庫(kù)恢復(fù)到在錯(cuò)誤發(fā)生的前一時(shí)刻的快照。或者,也可以利用快照中的信息,手動(dòng)重新創(chuàng)建刪除的表或其他丟失的數(shù)據(jù)。例如,可以將快照中的數(shù)據(jù)大容量復(fù)制到數(shù)據(jù)庫(kù)中,然后手動(dòng)將數(shù)據(jù)合并回?cái)?shù)據(jù)庫(kù)中。 但是只要存在數(shù)據(jù)庫(kù)快照,快照的源數(shù)據(jù)庫(kù)就存在以下限制:<!--[if !supportLists]-->必須在與源數(shù)據(jù)庫(kù)相同的服務(wù)器實(shí)例上創(chuàng)建數(shù)據(jù)庫(kù)快照。 <!--[if !supportLists]--> <!--[endif]-->數(shù)據(jù)庫(kù)快照捕獲開(kāi)始創(chuàng)建快照的時(shí)間點(diǎn),去掉所有未提交的事務(wù)。未提交的事務(wù)將在創(chuàng)建數(shù)據(jù)庫(kù)快照期間回滾,因?yàn)閿?shù)據(jù)庫(kù)引擎 將對(duì)快照?qǐng)?zhí)行恢復(fù)操作(數(shù)據(jù)庫(kù)中的事務(wù)不受影響)。 <!--[if !supportLists]-->當(dāng)將源數(shù)據(jù)庫(kù)中更新的頁(yè)強(qiáng)制壓入快照時(shí),如果快照用盡磁盤(pán)空間或者遇到某些錯(cuò)誤,則該快照將成為可疑快照并且必須將其刪除。有關(guān)詳細(xì)信息,請(qǐng)參閱刪除數(shù)據(jù)庫(kù)快照。 <!--[if !supportLists]-->快照為只讀。 <!--[if !supportLists]--> <!--[endif]-->禁止對(duì) model 數(shù)據(jù)庫(kù)、master 數(shù)據(jù)庫(kù)和 tempdb 數(shù)據(jù)庫(kù)創(chuàng)建快照。 <!--[if !supportLists]--> <!--[endif]-->不能更改數(shù)據(jù)庫(kù)快照文件的任何規(guī)范。 <!--[if !supportLists]--><!--[endif]-->不能從快照中刪除文件。 <!--[if !supportLists]-->不能備份或還原快照。 <!--[if !supportLists]-->不能附加或分離快照。 <!--[if !supportLists]-->不能在 FAT32 文件系統(tǒng)或 RAW 分區(qū)中創(chuàng)建快照。 <!--[if !supportLists]--> <!--[endif]-->數(shù)據(jù)庫(kù)快照不支持全文索引,不能從源數(shù)據(jù)庫(kù)傳播全文目錄。 <!--[if !supportLists]-->數(shù)據(jù)庫(kù)快照將繼承快照創(chuàng)建時(shí)其源數(shù)據(jù)庫(kù)的安全約束。由于快照是只讀的,因此無(wú)法更改繼承的權(quán)限,對(duì)源數(shù)據(jù)庫(kù)的更改權(quán)限將不反映在現(xiàn)有快照中。 <!--[if !supportLists]-->快照始終反映創(chuàng)建該快照時(shí)的文件組狀態(tài):在線文件組將保持在線狀態(tài),離線文件組將保持離線狀態(tài)。有關(guān)詳細(xì)信息,請(qǐng)參閱本主題后面的“含有離線文件組的數(shù)據(jù)庫(kù)快照”。 <!--[if !supportLists]-->如果源數(shù)據(jù)庫(kù)的狀態(tài)為 RECOVERY_PENDING,可能無(wú)法訪問(wèn)其數(shù)據(jù)庫(kù)快照。但是,當(dāng)解決了源數(shù)據(jù)庫(kù)的問(wèn)題之后,快照將再次變成可用快照。 <!--[if !supportLists]-->只讀文件組和壓縮文件組不支持恢復(fù)。嘗試恢復(fù)到這兩類文件組將失敗。有關(guān)恢復(fù)的詳細(xì)信息,請(qǐng)參閱恢復(fù)到數(shù)據(jù)庫(kù)快照。 下面就請(qǐng)看一個(gè)簡(jiǎn)單的例子:-- 創(chuàng)建數(shù)據(jù)庫(kù)快照CREATE DATABASE AdventureWorks_snapshot_0600 ON
( NAME = AdventureWorks_Data, FILENAME =
'E:SQL2005MSSQL.1MSSQLDataAdventureWorks_snapshot_0600.ss' )AS SNAPSHOT OF AdventureWorks;
GO-- 恢復(fù)數(shù)據(jù)庫(kù)快照RESTORE DATABASE AdventureWorks FROM DATABASE_SNAPSHOT = AdventureWorks_snapshot_0600
GO-- 刪除數(shù)據(jù)庫(kù)快照DROP DATABASE AdventureWorks_snapshot_0600
GO
相關(guān)文章:
1. MySQL Delete 刪數(shù)據(jù)后磁盤(pán)空間未釋放的原因2. 淺談數(shù)據(jù)庫(kù)日期類型字段設(shè)計(jì)應(yīng)該如何選擇3. 八步解決ACCESS自動(dòng)編號(hào)問(wèn)題(將SQL SERVER 2000數(shù)據(jù)庫(kù),轉(zhuǎn)換為ACCESS數(shù)據(jù)庫(kù))4. 整理Oracle數(shù)據(jù)庫(kù)碎片5. MYSQL(電話號(hào)碼,身份證)數(shù)據(jù)脫敏的實(shí)現(xiàn)6. 數(shù)據(jù)庫(kù)Oracle9i的企業(yè)管理器簡(jiǎn)介7. 使用MySqldump命令導(dǎo)出數(shù)據(jù)時(shí)的注意8. 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫(kù)9. 導(dǎo)出錯(cuò)誤編碼的mysql數(shù)據(jù)庫(kù)10. 實(shí)例講解DB2數(shù)據(jù)庫(kù)性能監(jiān)控的具體步驟
