【正文】
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ù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 4: SQL Server備份方法實(shí)訓(xùn) 實(shí)驗(yàn) 5:下面的實(shí)驗(yàn)為日志清除實(shí)驗(yàn) backup log d4 with truncate_only 設(shè)置 D4日志滿時(shí)清除日志,并做清除記錄 backup log d4 with no_log 設(shè)置 D4日志滿時(shí)清除日志,但不做清除記錄 backup log d4 to bak4 with no_truncate 在 D4數(shù)據(jù)庫(kù)損壞時(shí)馬上備份當(dāng)前數(shù)據(jù)庫(kù)日志 (DEMO) 問(wèn)題:請(qǐng)?jiān)跈C(jī)房完成下面的實(shí)驗(yàn) 第一步:完全備份數(shù)據(jù)庫(kù) +修改第 1次數(shù)據(jù);第二步:差異備份數(shù)據(jù)庫(kù) +修改第 2次數(shù)據(jù);第二步:日志文件備份數(shù)據(jù)庫(kù) +修改第 3次數(shù)據(jù);第四步:停止 SQL,刪除數(shù)據(jù)庫(kù)數(shù)據(jù)文件 +重啟 SQL;請(qǐng)你再還原數(shù)據(jù)庫(kù),可否還原到修改第 3次的數(shù)據(jù)呢? 65 數(shù)據(jù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 5: SQL Server文件和文件組備份實(shí)訓(xùn) 文件和文件組備份主要用于超大型數(shù)據(jù)庫(kù)的備份,其目的是只備份選定的文件或者文件組,但)必須同時(shí)作日志備份。在還原時(shí)用文件 /文件組備份和日志備份進(jìn)行還原,其特點(diǎn)是備份量少,恢復(fù)速度快。 create database d5 on primary (name=d5_data1, filename=39。c:\data\d5\39。, size=2MB), filegroup FG2 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)創(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ù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 5: SQL Server文件和文件組備份實(shí)訓(xùn) 下面開始調(diào)用剛剛創(chuàng)建的數(shù)據(jù)庫(kù) d5,學(xué)習(xí)修改數(shù)據(jù)庫(kù) 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ù)庫(kù) 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ù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 5: SQL Server文件和文件組備份實(shí)訓(xùn) 文件組備份 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。 注意:下面開始進(jìn)行文件備份 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ù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 6: SQL Server數(shù)據(jù)還原實(shí)訓(xùn) 實(shí)驗(yàn) 驗(yàn)證備份設(shè)備 restore headeronly from bak3 restore filelistonly from bak3 with file=1 restore labelonly from bak3 restore verifyonly from bak3 實(shí)驗(yàn) 從備份中還原 restore headeronly from bak1 實(shí)驗(yàn) 從完全備份中恢復(fù) restore database d1 from bak1 with file=2 69 數(shù)據(jù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 6: SQL Server數(shù)據(jù)還原實(shí)訓(xùn) 實(shí)驗(yàn) 從差異備份中恢復(fù) restore headeronly from bak2 restore database d2 from bak2 with file=1,norecovery restore database d2 from bak2 with file=5,recovery 實(shí)驗(yàn) 從日志備份中恢復(fù) 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ù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 6: SQL Server數(shù)據(jù)還原實(shí)訓(xùn) 實(shí)驗(yàn) 恢復(fù)到指定時(shí)間 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。 實(shí)驗(yàn) 還原文件組備份 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 實(shí)驗(yàn) 還原文件備份 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ù)庫(kù)備份與恢復(fù)技術(shù)實(shí)訓(xùn) 實(shí)訓(xùn) 6: SQL Server數(shù)據(jù)還原實(shí)訓(xùn) 實(shí)驗(yàn) 刪除現(xiàn)有數(shù)據(jù)庫(kù),從備份中重建數(shù)據(jù)庫(kù) restore database d5 from bak6 with replace create database d6 move to將數(shù)據(jù)庫(kù)文件移動(dòng)到新位置 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ù)庫(kù)信息 Exec sp_helpdb d6 72 本章總結(jié) ? 了解數(shù)據(jù)庫(kù)備份的基本概念以及備份的基本類別是什么? ? 掌握如何分別在可視化及命令行方式建立和刪除數(shù)據(jù)庫(kù)磁盤備份設(shè)備。重點(diǎn)考核命令行方式建立和刪除數(shù)據(jù)庫(kù)磁盤備份設(shè)備; ? 掌握在可視化狀態(tài)下進(jìn)行完全、差異、日志數(shù)據(jù)備份的方法,重點(diǎn)掌握通過(guò)命令行進(jìn)行完全、差異、日志數(shù)據(jù)備份的方法; ? 理解完全、差異、日志數(shù)據(jù)備份的區(qū)別和聯(lián)系; ? 掌握在可視化狀態(tài)下進(jìn)行完全、差異、日志數(shù)據(jù)恢復(fù)數(shù)據(jù)的方法,重點(diǎn)掌握通過(guò)命令行進(jìn)行完全、差異、日志數(shù)據(jù)恢復(fù)數(shù)據(jù)的方法; ? 熟練掌握備份與恢復(fù)的案例及案例所示的命令行過(guò)程。