/*--數據修復案例 ?
? ?
? 如何在數據庫文件損壞(日志文件完好)情況下,進行恢復 ?
? ?
? --(收藏整理)--*/ ?
? ?
? --測試步驟 ?
? ?
? --1.建一個測試數據庫test ?
? create ? database ? test ?
? go ?
? ?
? use ? test ?
? go ?
? ?
? --2.建一個表,插入記錄 ?
? create ? table ? a(c1 ? varchar(2)) ?
? insert ? into ? a ?
? select ? 'aa' ?
? union ? all ? select ? 'bb' ?
? go ?
? ?
? --3.作完全備份,到文件:c:/a.bak ?
? backup ? database ? test ? to ? disk='c:/a.bak' ? with ? init ?
? ?
? --4.做一些修改 ?
? insert ? into ? a ? values('cc') ?
? go ?
? ?
? create ? table ? b(c1 ? int) ?
? insert ? into ? b ?
? select ? 1 ?
? union ? all ? select ? 2 ?
? go ?
? ?
? /*--以下操作不能在查詢分析器中進行 ?
? ?
? --5.停止SQL服務數據庫服務器 ?
? ?
? --6.用ultraedit編輯數據庫文件test_data.mdf,隨便修改點字節內容 ?
? ?
? --7.啟動數據庫,并且運行企業管理器,點開數據庫,看到test變成灰色,而且顯示置疑。 ?
? ?
? --下面的操作回到查詢分析器中--*/ ?
? ?
? --8.進行日志備份 ?
? use ? master ?
? go ?
? ?
? backup ? log ? test ? to ? disk='c:/a.bak' ? with ? no_truncate ?
? go ?
? ?
? --9.恢復最老的完全備份 ?
? restore ? database ? test ? from ? disk='c:/a.bak' ? with ? norecovery,replace ?
? go ?
? ?
? --10.恢復最近的日志 ?
? restore ? log ? test ? from ? disk='c:/a.bak' ? with ? file=2,recovery ?
? go ?
? ?
? --11.顯示結果,看數據是否恢復 ?
? use ? test ?
? go ?
? ?
? select ? * ? from ? a ?
? go ?
? ?
? select ? * ? from ? b ?
? go ?
? ?
? --12.清除測試環境 ?
? use ? master ?
? go ?
? ?
? drop ? database ? test ?
? exec ? master..xp_cmdshell ? 'del ? c:/a.bak',no_output ?
? ?
? /*--測試結果(證明恢復成功) ?
? c1 ? ? ? ?
? ---- ? ?
? aa ?
? bb ?
? cc ?
? ?
? (所影響的行數為 ? 3 ? 行) ?
? ?
? c1 ? ? ? ? ? ? ? ? ? ? ?
? ----------- ? ?
? 1 ?
? 2??