SQL Server數(shù)據(jù)庫簡單的事務(wù)日志備份恢復(fù)流程
模擬數(shù)據(jù)庫備份恢復(fù)過程
1.基礎(chǔ)操作
1.創(chuàng)建TestDB數(shù)據(jù)庫,并添加數(shù)據(jù)
USE [master] GO CREATE DATABASE TestDB CONTAINMENT = NONE ON PRIMARY ( NAME = N'TestDB', FILENAME = N'D:\TestDB.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB ) LOG ON ( NAME = N'TestDB_log', FILENAME = N'D:\TestDB_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB ) GO USE TestDB GO CREATE TABLE [dbo].[UserTest]( [id] [int] NULL, [uName] [varchar](50) NULL, [age] [int] NULL ) GO INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (1, N'ceshi1', 18) GO INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (2, N'ceshi2', 19) GO INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (3, N'ceshi3', 20) GO INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (4, N'ceshi4', 21) GO INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (5, N'ceshi5', 22) GO

2.創(chuàng)建完數(shù)據(jù)庫后,對數(shù)據(jù)庫進(jìn)行備份

進(jìn)行一次完整備份數(shù)據(jù)庫,可以將備份文件放到指定的目錄去

同理操作再進(jìn)行一次事務(wù)日志備份


創(chuàng)建數(shù)據(jù)庫后的基礎(chǔ)備份就已經(jīng)完成了
2.模擬日常操作
1.模擬創(chuàng)建新表
USE TestDB --模擬正確創(chuàng)建表結(jié)構(gòu) SELECT* INTO ceshi1 FROM UserTest SELECT* INTO ceshi2 FROM UserTest SELECT* INTO ceshi3 FROM UserTest SELECT * FROM ceshi1 SELECT * FROM ceshi2 SELECT * FROM ceshi3
能查到ceshi1,ceshi2,ceshi3表中的數(shù)據(jù)

2.模擬誤操作
--模擬錯誤刪除表結(jié)構(gòu) DELETE FROM ceshi1 TRUNCATE TABLE dbo.ceshi2 DROP TABLE dbo.ceshi3
此時再去查詢?nèi)龔埍盹@示沒有數(shù)據(jù),以及沒有表結(jié)構(gòu),這是比較常見的誤操作

3.誤操作的恢復(fù)準(zhǔn)備
在發(fā)生了誤操作后,先別慌,我們首先要看一下目前的時間,并記錄,比如我這邊發(fā)生誤操作的時間大概是

記錄時間后,我們需要首先將數(shù)據(jù)庫的訪問權(quán)限設(shè)置為單用戶,這樣做的目的是為了防止新數(shù)據(jù)寫入到數(shù)據(jù)庫,我們后面恢復(fù)的話會丟失這部分?jǐn)?shù)據(jù),所以需要先將其他用戶的訪問權(quán)限關(guān)了


完成對權(quán)限的控制后,我們再次對數(shù)據(jù)庫進(jìn)行一次尾部事務(wù)備份



完成以上操作后,我們可以看到數(shù)據(jù)庫處于正在還原的狀態(tài)

4.對數(shù)據(jù)庫進(jìn)行還原恢復(fù)
首先我們對文件和文件組進(jìn)行還原

選擇最近的完整備份

選項里面選擇不回滾

隨后我們再對事務(wù)日志進(jìn)行還原


這里就需要用到我們之前記錄的發(fā)生錯誤的時間了,越精準(zhǔn),就越可以減少損失,我的是15:28:52,因為我截圖花了點時間,實際發(fā)生錯誤可能是在45秒的樣子,為了以防萬一我演示就還原到15:28:40的樣子,實際上正式站,越接近誤操作時間越好

還原過程就結(jié)束了
5.檢查數(shù)據(jù)庫還原是否成功
查詢ceshi1,ceshi2,ceshi3是否還原成功
SELECT * FROM ceshi1 SELECT * FROM ceshi2 SELECT * FROM ceshi3

確認(rèn)還原成功后,需要對數(shù)據(jù)庫再進(jìn)行一次完整備份(這個地方是我自己測試下來,發(fā)現(xiàn),如果恢復(fù)一次后,不進(jìn)行完整備份,就會出現(xiàn),下次恢復(fù)的時候,事務(wù)日志對不上的情況),這里可能會發(fā)生我們操作不了數(shù)據(jù)庫的情況,因為是單用戶的情況

這里我們只需要切換一下數(shù)據(jù)庫,不再占用訪問就行
USE master

隨后對數(shù)據(jù)庫進(jìn)行完整備份


完成之后,將數(shù)據(jù)庫恢復(fù)到多用戶訪問就行


整個數(shù)據(jù)庫備份恢復(fù)過程就結(jié)束了
注意
1.數(shù)據(jù)庫創(chuàng)建后必須有一次完整備份
2.完成恢復(fù)后必須對數(shù)據(jù)庫進(jìn)行一次完整備份,不然下次恢復(fù)時可能會出現(xiàn)事務(wù)日志對不上的問題
以上就是SQL Server數(shù)據(jù)庫簡單的事務(wù)日志備份恢復(fù)流程的詳細(xì)內(nèi)容,更多關(guān)于SQL Server事務(wù)日志備份恢復(fù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
總結(jié)一周內(nèi)學(xué)習(xí)的Sql經(jīng)驗(一)
學(xué)習(xí)sql有一周時間了,這些主要是基礎(chǔ)的內(nèi)容,以后估計就遇到具體的實例再拿出來分析。2014-08-08
SQL Server 數(shù)據(jù)庫分區(qū)分表(水平分表)詳細(xì)步驟
最近幾個擔(dān)心網(wǎng)站數(shù)據(jù)量大會影響sqlserver數(shù)據(jù)庫的性能,所以提前將數(shù)據(jù)庫分表處理好,下面是ExceptionalBoy同學(xué)分享的詳細(xì)方法,需要的朋友可以參考下2021-03-03
MSSQL附加數(shù)據(jù)庫拒絕訪問提示5120錯誤的處理方法
這篇文章主要介紹了MSSQL附加數(shù)據(jù)庫拒絕訪問提示5120錯誤的處理方法,需要的朋友可以參考下2014-07-07
mssql server 數(shù)據(jù)庫附加不上解決辦法分享
在我們做開發(fā)中經(jīng)常會對數(shù)據(jù)庫進(jìn)行備份,但有時假就會出現(xiàn)數(shù)據(jù)庫附加不上問題,下面我們來看看一個朋友的解決辦法2011-09-09
關(guān)于喜憂參半的SQL Server觸發(fā)器詳解
這篇文章主要給大家介紹了關(guān)于喜憂參半的SQL Server觸發(fā)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
SQL語句 操作全集 學(xué)習(xí)mssql的朋友一定要看
SQL操作全集 下列語句部分是Mssql語句,不可以在access中使用。2009-03-03

