世上沒有后悔藥?老司機(jī)教你自己造!(下)

上次我們提到的第一類后悔藥就是日常的備份了.可以通過定時(shí)執(zhí)行任務(wù)來降低工作的復(fù)雜度.但是仍然會在恢復(fù)的時(shí)候耗費(fèi)較多時(shí)間.
而對于平時(shí)的一些小的數(shù)據(jù)更新,比如在一個(gè)上百GB大小的庫中操作一條數(shù)據(jù),如果僅需要恢復(fù)這一條數(shù)據(jù)就要恢復(fù)整個(gè)表,那么花費(fèi)的代價(jià)就太大了.
那么有什么辦法能夠解決呢?
那就是本次要給大家介紹的第二類后悔藥-->快照
對于快照,可以認(rèn)為就類似于一張數(shù)據(jù)庫在指定時(shí)間點(diǎn)的一個(gè)相片,里面包含了數(shù)據(jù)庫在指定的那個(gè)時(shí)刻的所有信息和狀態(tài),后續(xù)的任何操作不影響快照中的信息狀態(tài).
下面我們上藥方:

USE [master]
GO
DECLARE @DBName NVARCHAR(50);
DECLARE @TodayDate NVARCHAR(10);
DECLARE @filePath NVARCHAR(200);
DECLARE @SQL NVARCHAR(800);
SET @DBName = 'DataBaseName'     ----在此修改需要建快照的庫名即可
SET @TodayDate = REPLACE(CONVERT(NVARCHAR(10),GETDATE(),120),'-','');      --獲取當(dāng)前日期拼入快照名稱中
SELECT @filePath =  REPLACE(filename,'templog.ldf','') FROM [tempdb].sys.[sysfiles] WHERE [groupid] = 0     --獲取tempdb的日志文件所在路徑作為快照文件存放路徑
SET @SQL = N'CREATE DATABASE ' + @DBName + '_' + @TodayDate + ' ON ( NAME = ' + @DBName + ', FILENAME = ''' + @filePath + @DBName + '_' + @TodayDate + '.ss'') AS SNAPSHOT OF ' + @DBName + ';'
--PRINT @SQL;
EXEC(@SQL);  
GO

通過上面的SQL,修改對應(yīng)的庫名就可以在tempdb存放的目錄下生成對應(yīng)的快照文件,并且在數(shù)據(jù)庫中也能看到指定的快照庫名DataBaseName_20yymmdd,可以把這個(gè)快照當(dāng)做一個(gè)數(shù)據(jù)庫進(jìn)行SQL語句的訪問操作,但是快照是只讀的,無法進(jìn)行數(shù)據(jù)的更新和結(jié)構(gòu)的變更,包括賬號權(quán)限也無法進(jìn)行調(diào)整.
如果需要恢復(fù)某一條數(shù)據(jù),那就可以直接讀出快照中的數(shù)據(jù),然后替換現(xiàn)有表中的對應(yīng)數(shù)據(jù)(刪除,標(biāo)識插入).
如果需要恢復(fù)整個(gè)庫,那就通過下面的SQL來進(jìn)行:
特別注意:這個(gè)恢復(fù)操作將丟失所有快照新建后對目標(biāo)數(shù)據(jù)庫的所有操作信息,請確認(rèn)你自己清楚的知道到底會發(fā)生什么再進(jìn)行操作!!!!!!!

USE master
GO
RESTORE DATABASE DataBaseName FROM DATABASE_SNAPSHOT = 'DataBaseName_20yymmdd';
GO  

最后提醒:快照在新建的時(shí)候,快照文件的大小會和數(shù)據(jù)文件一樣大,但是由于是系數(shù)文具,實(shí)際占用的空間很小,當(dāng)數(shù)據(jù)庫繼續(xù)被使用的時(shí)候,快照文件會隨著數(shù)據(jù)量的差異而越來越大,因此定期清理不需要再使用的快照文件是很有必要的.
感謝各位認(rèn)真學(xué)習(xí),兩類藥劑已經(jīng)教給大家了,什么樣的場景下使用什么樣的方案就需要各位在實(shí)際的操作過程中根據(jù)情況來判斷了.
祝大家永遠(yuǎn)用不上后悔藥!~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子玩祟,更是在濱河造成了極大的恐慌屿聋,老刑警劉巖藏鹊,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盘寡,死亡現(xiàn)場離奇詭異撮慨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)猴誊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟹倾,“玉大人,你說我怎么就攤上這事鲜棠。” “怎么了豁陆?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵检柬,是天一觀的道長献联。 經(jīng)常有香客問我何址,道長,這世上最難降的妖魔是什么用爪? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮偎血,結(jié)果婚禮上诸衔,老公的妹妹穿的比我還像新娘颇玷。我一直安慰自己,他們只是感情好帖渠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般切揭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上廓旬,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天谐腰,我揣著相機(jī)與錄音孕豹,去河邊找鬼怔蚌。 笑死巩步,一個(gè)胖子當(dāng)著我的面吹牛桦踊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播籍胯,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杖狼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝶涩,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绿聘,沒想到半個(gè)月后嗽上,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熄攘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年兽愤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挪圾。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浅萧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哲思,到底是詐尸還是另有隱情洼畅,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布棚赔,位于F島的核電站帝簇,受9級特大地震影響务热,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜己儒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捆毫。 院中可真熱鬧闪湾,春花似錦、人聲如沸绩卤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽濒憋。三九已至,卻和暖如春凛驮,著一層夾襖步出監(jiān)牢的瞬間裆站,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工黔夭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宏胯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓本姥,卻偏偏與公主長得像肩袍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子婚惫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容