在完整恢復模式或大容量日誌恢復模式下,必須先備份活動事務日誌(稱為日誌尾部),然後才能在SQLServerManagementStudio中還原資料庫。有關詳細信息,請參閱如何備份事務日誌(SQLServerManagementStudio)。若要還原已加密的資料庫,您必須有權訪問用於加密資料庫的證書或非對稱密鑰。如果沒有證書或非對稱密鑰,資料庫將無法還原。
認識資料庫備份和事務日誌備份
資料庫備份與日誌備份是資料庫維護的日常工作,備份的目的是在於當資料庫出現故障或者遭到破壞時可以根據備份的資料庫及事務日誌文件還原到最近的時間點將損失降到最低點。
資料庫備份
資料庫備份可以手動備份和語句備份
一.手動備份資料庫
1.滑鼠右鍵選擇你要進行備份的資料庫-任務-備份
可以在常規選項頁面你可以選擇備份類型是進行完整資料庫備份還是差異資料庫備份
2.點擊添加選項,選擇資料庫文件的存放路徑
注意文件名記得加後綴.bak,便於恢復時的查找
3.你還可以在選項頁面是追加到現有的備份集,還是覆蓋所有的現有備份集,還可以選擇備份驗證完整性(建議選擇),還可以選擇是否壓縮備份等。
二.語句備份資料庫
use master goBACKUP DATABASE [test] TO DISK = N'D:Microsoft sql serverMSSQL10.MSSQLSERVERMSSQLBackup est.bak' WITH NOFORMAT, NOINIT, NAME = N'test-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
資料庫日誌備份
首先需要注意,資料庫日誌的備份是基於資料庫完整備份,也就是說你備份資料庫日誌之前你首先要先對資料庫進行一次完整的備份,因為之間會涉及到堅持到檢查點 lsn, 這也是本文接下來要講的重點。
一.手動備份資料庫日誌
1.右鍵資料庫-任務-備份-選擇備份類型(事務日誌)
2.點添加,添加日誌文件備份存儲路徑
3.同資料庫完整備份一樣,你也可以選擇覆蓋現有備份集或者追加到現有備份集,這里現在覆蓋現有備份集、驗證完整性,然後確認備份
二.語句備份資料庫事務日誌
BACKUP LOG [test] TO DISK = N'D: est.trn' WITH NOFORMAT, INIT, NAME = N'test-事務日誌 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
資料庫還原
右鍵資料庫-還原資料庫-添加需要進行還原的資料庫文件路徑
在還原源選項中你可以選擇『源資料庫』,『源設備』。1.選擇源資料庫工具會自動顯示該資料庫之前的一些備份,然後直接選擇需要還原的資料庫備份集。
2.選擇源設備點擊後面的...,添加需要還原的資料庫文件
2.點擊確認還原資料庫
資料庫恢復
資料庫恢復的前提是1.一個完整的資料庫備份2.包含這個完整資料庫備份的事務日誌備份3.完整備份之間也可以存在數個差異備份
對於資料庫維護空間始終是一個比較頭疼的問題,特別是對於大型資料庫而言,每天的日誌文件增長是龐大的,很多資料庫管理員會定時對資料庫日誌文件進行收縮,但是經常收縮會存在收縮完日誌文件還是不能減少,這是因為存在很多活動的日誌無法收縮可以用
DBCC LOGINFO('資料庫名稱')
我們看到
status=0的日誌,代表已經備份到磁碟的日誌文件;而
status=2的日誌還沒有備份。當我們收縮日誌文件時,收縮掉的空
間其實就是
status=0的空間,如果日誌物理文件無法減小,這里一
定能看到非常多status=2的記錄
解決辦法:1.可以分離要收縮的資料庫,然後手動刪除日誌文件,然後附加資料庫,資料庫就會產生一個很小的日誌文件(不推薦使用這種方法)
2.右鍵要出來的資料庫選擇「屬性」-"選項",將恢復模式改成"簡單",然後利用收縮工具可以講日誌文件收縮到很小,收縮完記得講恢復模式改成"完整"
也可以用語句進行處理(dbname是你要進行收縮的資料庫名,dbname_log是你要進行收縮的資料庫的邏輯日誌名稱)
USE [master]
GO ALTER DATABASE [dbname] SET recovery SIMPLE WITH NO_WAIT GO
ALTER DATABASE [dbname] SET RECOVERY SIMPLE --簡單模式
GO
USE [dbname]
GO
DBCC SHRINKFILE (N'dbname_log' , 11, TRUNCATEONLY) GO
USE [master]
GO
ALTER DATABASE [dbname] SET RECOVERY FULL WITH NO_WAIT ALTER DATABASE [dbname] SET RECOVERY FULL
對於第一種方法不贊同使用,首先對於資料庫的分離與附加有時候會破壞資料庫,造成資料庫無法還原,還有就是對於在線資料庫也不允許進行分離操作。
對於第二種方法是slq2008收縮日誌文件的一種方法,但是此方法也不能使用過於頻繁,因為進行資料庫恢復模式的更改會截斷事務日誌文件,這樣的話當時利用事務日誌文件進行恢復的時候檢查點不能包含資料庫文件,而且當你要對事務日誌進行備份的時候會重新提示你需要對資料庫進行完整備份。
舉個例子:比如你昨天晚上進行了一次完整備份,然後同時你也進行了一次日誌備份(提前日誌未被截斷),然後你每個小時進行過一次差異備份,最近的差異備份時間點是14點,如果此時資料庫錯誤修改了數據,你可以立馬備份一個日誌文件將資料庫恢復到日誌備份開始到日誌備份終點前的任意時間點 。
如果此時你進行了修改資料庫模式,截斷日誌進行了收縮,那麼你的數據只能恢復到昨天晚上備份的那個日誌備份時間前的任意時間點,也就是今天所做的資料庫更改無法再恢復了,因為日誌文件已經被截斷了,不知道這樣解釋是否明白
因為日誌文件的檢查點(lsn)是連續的,每一次日誌備份都是在上一次備份的基礎上lsn往後增加的,lsn的范圍也包括了資料庫文件的lsn,也只有日誌文件的lsn包括了資料庫文件的lsn,才能將資料庫文件進行回滾。
上圖中總共有三個備份文件,一個完整備份、一個差異備份、一個日誌備份,大家可以注意觀察完整備份的第一個lsn與最後一個lsn,和檢查點
第二個差異備份文件的的第一個lsn與最後一個lsn,和檢查點,最後的日誌備份的第一個lsn和最後一個lsn包含了前面兩個備份文件的lsn,這種情況資料庫就可以恢復到日誌文件備份前的任意時間點,如果日誌文件沒有包含資料庫文件的最後一個lsn也就無法恢復了。
㈡ sql server 差異備份怎麼還原
出現這種錯誤絕大多數是因為還原完整備份沒有選擇「恢復狀態-->不對資料庫執行任何操作,不回滾未提交的事務。可以還原其他事務日誌」!
㈢ 資料庫的備份與恢復
SQL2000資料庫的備份概念
SQL SERVER 2000有四種類型是:資料庫、事務日誌、差異、文件和文件組
資料庫備份是創建完事資料庫的復本。它並非將所有的頁都復制到備份集,而只將實際包含數據的頁復制到備份集。數據頁和事務日誌頁均復制到備份集。
資料庫備份用於重新創建資料庫,使其恢復到BACKUP語句完成時的狀態。如果資料庫只存在資料庫備份,那麼資料庫只能恢復到伺服器或資料庫發生故障前最後一次資料庫備份時的狀態。
事務日誌備份僅製作日誌文件的復本。日誌文件備份本身不能用於還原資料庫。日誌文件用於在資料庫還原後將資料庫恢復到原始故障點。
例如,某站點在星期天晚上執行資料庫備份,而在其它每個晚上執行日誌備份。如果資料庫的某個數據磁碟在星期二2:30丟失,則該站點可以:
1備份當前事務日誌
2還原從星期天晚上開始的資料庫備份
3還原從星期一晚上開始的日誌備份,以將資料庫前滾。
4還原故障之後的日誌備份。這將使資料庫前滾到故障發生的那一刻。
事務日誌恢復需要從資料庫備份的那一刻到磁碟丟失那一刻之間所進行的一邊串不間斷的事務日誌備份。
差異備份只追尋資料庫中自上一次資料庫備份之後修改過的所有頁的復本。差異日誌主要用於使用頻繁的系統,一旦這類系統中的資料庫發生故障,必須盡快使其重新聯機。差異備份比完事資料庫備份小,因此對正在運行的系統影響較小。
例如,某個站點在星期天晚上執行完事資料庫備份。在白天每隔4小時製作一個事務日誌備份集,並用當天的備份重寫頭一天的備份。每晚則進行差異備份。如果資料庫的某個數據磁碟在星期四上午9:12出現故障,則該站點可以:
1備份當前事務日誌。
2還原從星期天晚上開始的資料庫備份。
3還原從星期三晚上開始的差異備份,將資料庫前滾到這一時刻。
4還原從早上4點到8點的事務日誌備份,以將資料庫前滾到早上8點。
5還原故障之後的日誌備份,這將使資料庫前滾到故障發生的那一刻。
SQL2000支持備份或還原資料庫中的個別文件或文件組。這是一種相對較完善的備份和還原過程,通常用在具有較高可用性要求的超大型資料庫中。如果可用的備份時間不足以支持完事資料庫備份,則可以在不同的時間備份資料庫的子集。
例如,某站點需要花三小時備份資料庫,並且每天只能用兩個小時執行備份。該站點可在一個晚上備份一半文件或文件級,並在第二個晚上備份另一半。如果包含資料庫文件或文件組的磁碟出現故障,那麼該站點可以只還原丟失的文件或文件組。
該站點還必須進行事務日誌備份,並且在備份文件或文件組之後必須還原所胡事務日誌備份。還可以從完事資料庫備份集中還原文件和文件組。這將回憶恢復速度,因為在第一步只還原已損壞的文件或文件組,而不是整個資料庫。
㈣ SQL資料庫如何還原
把資料庫的備份文件放到伺服器的任意目錄下先, 然後按下面的步驟做。
如何從備份設備還原備份(企業管理器) ,從備份設備還原備份 。
展開伺服器組,然後展開伺服器。
展開"資料庫"文件夾,右擊資料庫,指向"所有任務"子菜單,然後單擊"還原資料庫"命令。
在"還原為資料庫"框中,如果要還原的資料庫名稱與顯示的默認資料庫名稱不同,請在其中進行輸入或選擇。
若要用新名稱還原資料庫,請輸入新的資料庫名稱。
說明 為資料庫指定新名稱將自動為從資料庫備份中還原的資料庫文件指定新名稱。
單擊"從設備",然後單擊"選擇設備"。
在"還原自"下,單擊"磁帶"或"磁碟",然後選擇還原設備。
如果沒有出現設備,則單擊"添加"以添加現有的備份設備或創建新的備份設備。
在"還原資料庫"對話框內,單擊"查看內容"並選擇要還原的備份集。
說明 此選項將掃描備份集以獲得備份內容信息,該操作可能需要花費較長時間,特別是在使用磁帶設備時。
如果已經知道要還原的備份集,則在"備份號"中輸入備份集編號。
在"還原備份集"下執行下列操作之一: 單擊"資料庫 — 完全"還原資料庫備份。
單擊"資料庫 — 差異"還原差異資料庫備份。
單擊"事務日誌"應用事務日誌備份。
㈤ SQL資料庫如何還原
一、備份資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄
3、選擇你的資料庫名稱(如論壇資料庫Forum)-->然後點上面菜單中的工具-->選擇備份資料庫
4、備份選項選擇完全備份,目的中的備份到如果原來有路徑和名稱則選中名稱點刪除,然後點添加,如果原來沒有路徑和名稱則直接選擇添加,接著指定路徑和文件名,指定後點確定返回備份窗口,接著點確定進行備份
二、還原資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙擊打開你的伺服器-->點圖標欄的新建資料庫圖標,新建資料庫的名字自行取
3、點擊新建好的資料庫名稱-->然後點上面菜單中的工具-->選擇恢復資料庫
4、在彈出來的窗口中的還原選項中選擇從設備-->點選擇設備-->點添加-->然後選擇你的備份文件名-->添加後點確定返回,這時候設備欄應該出現您剛才選擇的資料庫備份文件名,備份號默認為1(如果您對同一個文件做過多次備份,可以點擊備份號旁邊的查看內容,在復選框中選擇最新的一次備份後點確定)-->然後點擊上方常規旁邊的選項按鈕
5、在出現的窗口中選擇在現有資料庫上強制還原,以及在恢復完成狀態中選擇使資料庫可以繼續運行但無法還原其它事務日誌的選項。在窗口的中間部位的將資料庫文件還原為這里要按照你SQL的安裝進行設置(也可以指定自己的目錄),邏輯文件名不需要改動,移至物理文件名要根據你所恢復的機器情況做改動,如您的SQL資料庫裝在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那麼就按照您恢復機器的目錄進行相關改動改動,並且最後的文件名最好改成您當前的資料庫名(如原來是zw0001.mdf,現在的資料庫是zw0002,就改成zw0002.mdf),日誌和數據文件都要按照這樣的方式做相關的改動(日誌的文件名是.ldf結尾的),這里的恢復目錄您可以自由設置,前提是該目錄必須存在(如您可以指定d:\sqldata\zw0002.mdf或者d:\sqldata\zw0002.ldf),否則恢復將報錯
6、修改完成後,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成後系統會自動提示成功,如中間提示報錯,請記錄下相關的錯誤內容並詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者文件名重復或者文件名錯誤或者空間不夠或者資料庫正在使用中的錯誤,資料庫正在使用的錯誤您可以嘗試關閉所有關於SQL窗口然後重新打開進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然後重起看看,至於上述其它的錯誤一般都能按照錯誤內容做相應改動後即可恢復
三、設定每日自動備份資料庫
1、打開企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器
2、然後點上面菜單中的工具-->選擇資料庫維護計劃器
3、下一步選擇要進行自動備份的數據-->下一步更新數據優化信息,這里一般不用做選擇-->下一步檢查數據完整性,也一般不選擇
4、下一步指定資料庫維護計劃,默認的是1周備份一次,點擊更改選擇每天備份後點確定
5、下一步指定備份的磁碟目錄,選擇指定目錄,如您可以在D盤新建一個目錄如:d:\databak,然後在這里選擇使用此目錄,如果您的資料庫比較多最好選擇為每個資料庫建立子目錄,然後選擇刪除早於多少天前的備份,一般設定4-7天,這看您的具體備份要求,備份文件擴展名一般都是bak就用默認的
6、下一步指定事務日誌備份計劃,看您的需要做選擇-->下一步要生成的報表,一般不做選擇-->下一步維護計劃歷史記錄,最好用默認的選項-->下一步完成
7、完成後系統很可能會提示Sql Server Agent服務未啟動,先點確定完成計劃設定,然後找到桌面最右邊狀態欄中的SQL綠色圖標,雙擊點開,在服務中選擇Sql Server Agent,然後點擊運行箭頭,選上下方的當啟動OS時自動啟動服務
8、這個時候資料庫計劃已經成功的運行了,他將按照您上面的設置進行自動備份 .
㈥ SQL差異備份還原問題
1、差異備份3是備份的是是2-3之間的修改。
2、有了完全備份4之後,如果不想恢復1,2,3運行期間的數據,那麼1、2、3都可以刪除了
3、還原某個點的差異備份,則需要從該時間點的完全備份點開始恢復,至當前點。(建議做時,做好完整備份)
㈦ sqlserver2008R2的差異性備份能直接用於還原資料庫嗎
1、sqlserver2008R2備份文件不可以還原到sqlserver2005。
2、sqlserver2005備份文件可以還原到sqlserver2008R2。
3、如果資料庫中數據不多總體體積不是太大(最多幾百M,具體自個試),可以用導出資料庫到腳本(過程中可以選導出兼容版本),然後在SQL2005中運行腳本還原。
4、要是數據量非常大,那導出腳本過程可能很困難,甚至無法完成。
㈧ 如何還原差異資料庫
要還原資料庫,有三種常用
備份方式
,首你是做完整備份,因為這是
差異備份
和
事務日誌
備份的基礎,差異和事務日誌都需要用到這個完整備份,如果你有一這個完整備份,哪么可以在
SQL2005
中的對象
資源管理器
中,選擇還原資料庫,根據提示一步一步來,然後到了選擇還原備份時,將完整備份和差異備份的對號打上就行。
㈨ 如何還原差異資料庫備份 (SQL Server Management Studio)
重要提示在完整恢復模式或大容量日誌恢復模式下,必須先備份活動事務日誌(稱為日誌尾部),然後才能在
SQL
Server
Management
Studio
中還原資料庫。有關詳細信息,請參閱
㈩ 我只有一個SQL2005的差異備份文件如何還原資料庫!
要還原資料庫,有三種常用備份方式,首你是做完整備份,因為這是差異備份和事務日誌備份的基礎,差異和事務日誌都需要用到這個完整備份,如果你有一這個完整備份,哪么可以在SQL2005中的對象資源管理器中,選擇還原資料庫,根據提示一步一步來,然後到了選擇還原備份時,將完整備份和差異備份的對號打上就行。