【正文】
sert b1 values(4,39。d39。) backup log d4 to bak4 with name=39。d4_log439。 insert b1 values(5,39。d39。) backup database d4 to bak4 with differential,name=39。d4_diff239。 restore headeronly from bak4 64 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 4: SQL Server備份方法實訓 實驗 5:下面的實驗為日志清除實驗 backup log d4 with truncate_only 設置 D4日志滿時清除日志,并做清除記錄 backup log d4 with no_log 設置 D4日志滿時清除日志,但不做清除記錄 backup log d4 to bak4 with no_truncate 在 D4數(shù)據(jù)庫損壞時馬上備份當前數(shù)據(jù)庫日志 (DEMO) 問題:請在機房完成下面的實驗 第一步:完全備份數(shù)據(jù)庫 +修改第 1次數(shù)據(jù);第二步:差異備份數(shù)據(jù)庫 +修改第 2次數(shù)據(jù);第二步:日志文件備份數(shù)據(jù)庫 +修改第 3次數(shù)據(jù);第四步:停止 SQL,刪除數(shù)據(jù)庫數(shù)據(jù)文件 +重啟 SQL;請你再還原數(shù)據(jù)庫,可否還原到修改第 3次的數(shù)據(jù)呢? 65 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 5: SQL Server文件和文件組備份實訓 文件和文件組備份主要用于超大型數(shù)據(jù)庫的備份,其目的是只備份選定的文件或者文件組,但)必須同時作日志備份。在還原時用文件 /文件組備份和日志備份進行還原,其特點是備份量少,恢復速度快。 create database d5 on primary (name=d5_data1, filename=39。c:\data\d5\39。, size=2MB), filegroup FG2 創(chuàng)建數(shù)據(jù)庫時創(chuàng)建 filegroup FG2 (name=d5_data2, filename=39。c:\data\d5\39。, 并將文件 d5_data2放到 FG2中 size=2Mb) log on (name=d5_log1, filename=39。e:\data\d5\39。, size=2Mb) 66 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 5: SQL Server文件和文件組備份實訓 下面開始調(diào)用剛剛創(chuàng)建的數(shù)據(jù)庫 d5,學習修改數(shù)據(jù)庫 use d5 go alter database d5 add file (name=d5_data3, filename=39。c:\data\d5\39。, size=2MB) to filegroup FG2 將 d5_data3加到文件組 FG2中 alter database d5 add filegroup FG3 增加文件組 FG3 alter database d5 將 d5_data4加到文件組 FG2中 add file (name=d5_data4, filename=39。c:\data\d5\39。, size=2MB) to filegroup FG3 查詢數(shù)據(jù)庫 d5 Exec sp_helpdb d5 create table t1(c1 int not null,c2 char(10) not null) on [primary] 將不同表放到不同 filegroup中 create table t2(c1 int not null,c2 char(10) not null) on FG2 create table t3(c1 int not null,c2 char(10) not null) on FG3 backup database d5 to bak5 with init,name=39。d5_full39。 67 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 5: SQL Server文件和文件組備份實訓 文件組備份 backup database d5 filegroup=39。primary39。 to bak5 with name=39。d5_primary39。 backup log d5 to bak5 with name=39。d5_log139。 backup database d5 filegroup=39。FG239。 to bak5 with name=39。d5_FG239。 backup log d5 to bak5 with name=39。d5_log239。 backup database d5 filegroup=39。FG339。 to bak5 with name=39。d5_FG339。 backup log d5 to bak5 with name=39。d5_log339。 注意:下面開始進行文件備份 backup database d5 to bak6 with init,name=39。d5_full39。 backup database d5 file=39。d5_data139。 to bak6 with name=39。d5_data139。 backup log d5 to bak6 with name=39。d5_log139。 backup database d5 file=39。d5_data239。 to bak6 with name=39。d5_data239。 backup log d5 to bak6 with name=39。d5_log239。 backup database d5 file=39。d5_data339。 to bak6 with name=39。d5_data339。 backup log d5 to bak6 with name=39。d5_log339。 backup database d5 file=39。d5_data439。 to bak6 with name=39。d5_data439。 backup log d5 to bak6 with name=39。d5_log439。 restore headeronly from bak6 68 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 6: SQL Server數(shù)據(jù)還原實訓 實驗 驗證備份設備 restore headeronly from bak3 restore filelistonly from bak3 with file=1 restore labelonly from bak3 restore verifyonly from bak3 實驗 從備份中還原 restore headeronly from bak1 實驗 從完全備份中恢復 restore database d1 from bak1 with file=2 69 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 6: SQL Server數(shù)據(jù)還原實訓 實驗 從差異備份中恢復 restore headeronly from bak2 restore database d2 from bak2 with file=1,norecovery restore database d2 from bak2 with file=5,recovery 實驗 從日志備份中恢復 restore headeronly from bak3 restore database d3 from bak3 with file=1,norecovery restore log d3 from bak3 with file=2,norecovery restore log d3 from bak3 with file=3,norecovery restore log d3 from bak3 with file=4,norecovery restore log d3 from bak3 with file=5,recovery 70 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 6: SQL Server數(shù)據(jù)還原實訓 實驗 恢復到指定時間 restore database d3 from bak3 with file=1,norecovery restore log d3 from bak3 with file=2,norecovery restore log d3 from bak3 with file=3,norecovery restore log d3 from bak3 with file=4,recovery,stopat=39。20220815 11:29:39。 實驗 還原文件組備份 restore database d5 filegroup=39。FG239。 from bak5 with file=4,norecovery restore log d5 from bak5 with file=5,norecovery restore log d5 from bak5 with file=7,recovery 實驗 還原文件備份 restore headeronly from bak6 restore database d5 file=39。d5_data339。 from bak6 with file=6,norecovery restore log d5 from bak6 with file=7,norecovery restore log d5 from bak6 with file=9,recovery 71 數(shù)據(jù)庫備份與恢復技術(shù)實訓 實訓 6: SQL Server數(shù)據(jù)還原實訓 實驗 刪除現(xiàn)有數(shù)據(jù)庫,從備份中重建數(shù)據(jù)庫 restore database d5 from bak6 with replace create database d6 move to將數(shù)據(jù)庫文件移動到新位置 on primary (name=d6_data, filename=39。E:\Program Files\Microsoft SQL Server\MSSQL\data\39。, size=2MB) log on (name=d6_log, filename=39。E:\Program Files\Microsoft SQL Server\MSSQL\data\39。, size=2MB) go backup database d6 to bak6 with init drop database d6 restore database d6 from bak6 with move 39。d6_data39。 to 39。e:\data\d6\39。, move 39。d6_log39。 to 39。e:\data\d6\39。 查看數(shù)據(jù)庫信息 Exec sp_helpdb d6 72 本章總結(jié) ? 了解數(shù)據(jù)庫備份的基本概念以及備份的基本類別是什么? ? 掌握如何分別在可視化及命令行方式建立和刪除數(shù)據(jù)庫磁盤備份設備。重點考核命令行方式建立和刪除數(shù)據(jù)庫磁盤備份設備; ? 掌握在可視化狀態(tài)下進行完全、差異、日志數(shù)據(jù)備份的方法,重點掌握通過命令行進行完全、差異、日志數(shù)據(jù)備份的方法; ? 理解完全、差異、日志數(shù)據(jù)備份的區(qū)別和聯(lián)系; ? 掌握在可視化狀態(tài)下進行完全、差異、日志數(shù)據(jù)恢復數(shù)據(jù)的方法,重點掌握通過命令行進行完全、差異、日志數(shù)據(jù)恢復數(shù)據(jù)的方法; ? 熟練掌握備份與恢復的案例及案例所示的命令行過程。