❶ 資料庫有哪三種恢復模式在3種恢復模式下,資料庫日誌文件會執行什麼樣的操作
sql
Server資料庫有三種恢復模式:簡單恢復模式、完整恢復模式和大容量日誌恢復模式。
相對於簡單恢復模式而言,完整恢復模式和大容量日誌恢復模式提供了更強的數據保護功能。這些恢復模式都是基於備份事務日誌來提供完整的可恢復性及在最大范圍的故障情形內防止丟失工作。通常,資料庫使用完整恢復模式或簡單恢復模式。
下面對三種恢復模式做一個比較:
恢復模式
日誌備份
恢復點
優點
缺點
解決方案及建議
簡單(Simple)
無日誌備份。
自動回收日誌空間以減少空間需求,實際上不再需要管理事務日誌空間。
最新備份之後的更改不受保護。在發生災難時,這些更改必須重做。只能恢復到備份的結尾。
簡單恢復模式可最大程度地減少事務日誌的管理開銷,因為不備份事務日誌。
如果資料庫損壞,則簡單恢復模式將面臨極大的工作丟失風險。數據只能恢復到已丟失數據的最新備份。
在簡單恢復模式下,備份間隔應盡可能短,以防止大量丟失數據。簡單恢復模式並不適合生產系統,因為對生產系統而言,丟失最新的更改是無法接受的。在這種情況下,我們建議使用完整恢復模式。
完整(Full)
需要日誌備份。
理論上可以恢復到任意時點。
數據文件丟失或損壞不會導致丟失工作。
此模式完整記錄所有事務,佔用大量空間。
大容量(Bulk-logged)
需要日誌備份。
如果在最新日誌備份後發生日誌損壞或執行大容量日誌記錄操作,則必須重做自該上次備份之後所做的更改。
可以恢復到任何備份的結尾。不支持時點恢復。
該模式是完整恢復模式的附加模式,允許執行高性能的大容量復制操作。通過使用最小方式記錄大多數大容量操作,減少日誌空間使用量。
比完整模式節省日誌存儲空間。
對於某些大規模大容量操作(如大容量導入或索引創建),暫時切換到大容量日誌恢復模式可提高性能並減少日誌空間使用量。由於大容量日誌恢復模式不支持時點恢復,因此必須在增大日誌備份與增加工作丟失風險之間進行權衡。
注意:
1.
適合於資料庫的恢復模式取決於資料庫的可用性和恢復要求。
2.
在完整恢復模式和大容量日誌恢復模式下,必須進行日誌備份。如果不想進行日誌備份,則請使用簡單恢復模式。
❷ sqlserver資料庫表數據誤刪除了 怎麼恢復
恢復sqlserver資料庫表數據步驟如下:
一、心態:
1、務必冷靜,事情已經發生不可慌亂。
2、立即查看當前時間,最好能夠精確到秒,並做記錄。
3、應立即向直接上級反映此事,不可隱瞞,防止事態擴大。
4、如果許可權允許,應當立即停止相關應用,防止有新的數據寫入資料庫。
二、恢復:
1、構建新資料庫以及寫入一些數據
如果查詢發現數據不是你想要的,那麼可以重復上述的操作,從備份事務日誌開始,然後最後選擇時間點的時候在縮小范圍。
❸ 不用重新安裝sqlserver2008怎麼恢復busines
生產系統下,一定要了解的內容,SQLServer資料庫的恢復模式有三種:
1、簡單模式。
2、完整模式。
3、大容量模式。SQLServer是一個可擴展的、高性能的、為分布式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合。
❹ SQL SERVER恢復策略
Microsoft SQL Server的資料庫備份和恢復策略
一、概述
備份和恢復是資料庫管理員維護資料庫安全性和完整性的重要操作。備份是恢復資料庫最容易和最能防止意外的保證方法。沒有備份,所有的數據都可能會丟失。備份可以防止表和資料庫遭受破壞、介質失效或用戶錯誤而造成數據災難。恢復是在意外發生後,利用備份來恢復資料庫的操作。
Microsoft SQL Server資料庫中對於數據的備份和恢復有幾種不同的方法,本人結合以往的一些經驗,對其歸納如下。
二、常用的備份和恢復資料庫的方法
1、Microsoft SQL Server中的備份和恢復:
1)備份類型,分別為:
•資料庫備份(Database Backups)
•事務日誌備份(Transaction Log Backup)
•差異備份(Differential Database Backups)
•文件和文件組備份(File and File Group Backup)
A.資料庫備份(Database Backups)
資料庫備份是指對資料庫的完整備份,包括所有的數據以及資料庫對象。實際上備份資料庫過程就是首先將事務日誌寫到磁碟上,然後根據事務創建相同的資料庫和資料庫對象以及拷貝數據的過程。由於是對資料庫的完全備份,所以這種備份類型不僅速度較慢,而且將佔用大量磁碟空間。
B.事務日誌備份(Transaction Log Backup)
事務日誌備份是指對資料庫發生的事務進行備份,包括從上次進行事務日誌備份、差異備份和資料庫完全備份之後,所有已經完成的事務。
C.差異備份(Differential Database Backups)
差異備份是指將最近一次資料庫備份以來發生的數據變化備份起來,因此差異備份實際上是一種增量資料庫備份。與完整資料庫備份相比,差異備份由於備份的數據量較小,所以備份和恢復所用的時間較短。但是它卻無法像事務日誌備份那樣提供到失敗點的無數據損失備份。
D.文件和文件組備份(File and File Group Backup)
文件或文件組備份是指對資料庫文件或文件夾進行備份,但其不像完整的資料庫備份那樣同時也進行事務日誌備份。使用該備份方法可提高資料庫恢復的速度,因為其僅對遭到破壞的文件或文件組進行恢復。
2)資料庫恢復模式
•簡單恢復(SimpleRecovery)
•完全恢復(Full Recovery)
•批日誌恢復(Bulk-logged Recovery)
A.簡單恢復(Simple Recovery)
所謂簡單恢復就是指在進行資料庫恢復時僅使用了資料庫備份或差異備份,而不涉及事務日誌備份。簡單恢復模式可使資料庫恢復到上一次備份的狀態,但由於不使用事務日誌備份來進行恢復,所以無法將資料庫恢復到失敗點狀態。
B.完全恢復(Full Recovery)
完全資料庫恢復模式是指通過使用資料庫備份和事務日誌備份將資料庫恢復到發生失敗的時刻,因此幾乎不造成任何數據丟失,這成為對付因存儲介質損壞而數據丟失的最佳方法。
C.批日誌恢復(Bulk-logged Recovery)
批日誌恢復在性能上要優於簡單恢復和完全恢復模式,它能盡最大努力減少批操作所需要的存儲空間。
2、使用SQL SERVER的管理器ENTERPRISE MANAGER進行備份和恢復
1)完全手工方式。
在這種方式下,選擇要備份和恢復的資料庫,單擊滑鼠右鍵,在快捷菜單中的「ALL TASKS」下選擇備份或者恢復資料庫。
2)半手工方式。
這種方式就是管理員事先建立備份或者恢復資料庫的作業,待到備份或者恢復資料庫的時候,管理員打開「SQL SERVER ENTEPRISE MANAGER」,在「MANAGER」里找到相應的作業,然後執行之。
3)全自動方式。
在資料庫管理器裡面,管理員事先建立好恢復或者備份資料庫的作業,然後定製一個執行計劃,讓計算機在特定的條件下自己執行備份和恢復操作。
作業是ENTERPRISE MANAGER提供的一種定期處理數據的一種方法,前面提到的半手工方式和全自動方式雖然利用了作業,但它需要在ENTERPRISE MANAGER里啟動和關閉作業;現在還可以在應用程序客戶端啟動和關閉作業的機制以作業機制實現資料庫的恢復和備份,就是事先在建立備份和恢復資料庫的作業,在應用程序客戶端用控制體啟動相應的執行體來實現之。用這種方式實現資料庫的備份和恢復,用戶不必打開資料庫管理器進行操作,用戶可以在任何一個應用程序客戶端完成操作。
3、異機備份策略
在區域網內的任何一台工作站計算機上安裝Microsoft Windows NT及Microsoft SQL Server,並在該機上建立一個與伺服器中的資料庫同名的資料庫,利用Microsoft SQL Server系統本身提供的異機傳送工具(在Microsof SQL Enterprise Manager中的Tools菜單下的Database/Object Transfer)通過設置定時(可以是每周、每月、每日或每時)由計算機自動的把伺服器中資料庫的數據傳送到該工作站機的資料庫中,這樣一旦伺服器(操作系統)崩潰或Microsoft SQL Server系統崩潰時,只要重裝伺服器操作系統(Microsoft Windows NT)或重裝Microsoft SQL Server仍然可以採用異機傳送工具來通過該工作站機把數據傳回至伺服器的Microsoft SQL Server資料庫中,以確保數據的安全恢復。
三、比較
上述這三種備份和恢復的方式,分別是在SQL Server之內、SQL SERVER的管理器中和異機中實現的。
SQL Server中的備份和恢復是資料庫本身的一個功能,而且其提供了不同級別的備份和恢復策略,是一種比較完善的資料庫安全保護措施,但由於此操作只能在資料庫管理器中進行,所以對於人員和設備的要求比較高,僅限於有限個人和機器可以操作,所以操作起來有一定的局限性。
SQL SERVER的管理器中的備份和恢復可以利用作業機制在任何一個應用程序客戶端完成操作,打破了我們常規對大型資料庫備份和恢復必須在資料庫管理器里進行的局限性,為在應用程序客戶端實現復雜的資料庫維護提供了一個思路,也大大方便了用戶的操作。但是由於這種操作的方便性,也決定了其有一定的不安全性。
異機中的備份和恢復是最安全最可靠的方式,而且對於資料庫的恢復來說也是最方便的一種,它完全避免了任何形式的數據損毀的威脅,特別是針對伺服器崩潰和Microsoft SQL Server系統崩潰,其恢復效果是很理想的。因此對於一些重要的大型資料庫來說是很可取的。但是由於成本較高,採用這種方法對於一些較小型的資料庫系統是比較難以實現的。
四、結論
上述的三種方式都是資料庫備份和恢復較為常用的一些方法,雖然各自實現的方式不同,但都達到了保護數據安全的目的。所以本人認為這三種方法都是可取的。
但是對於具體的案例,還需要仔細考慮各自系統的特性和方法的可操作性,例如一般中小型的資料庫,網內工作站計算機的分布范圍不是很大(象一座大廈內),距離伺服器的比較近時,採用Microsoft SQL Server內的備份恢復策略就完全可以解決問題;而對於一些伺服器距離較遠的資料庫系統,人員無法常常去到伺服器所在地去實施備份和恢復的,採用SQL SERVER的管理器中的策略就很理想;再者對於資料庫內數據比較龐大,恢復起來需要一定的時間的,就不防採用異機備份的策略,可以大大降低因系統崩潰所帶來的損失。
總之,事物總有其兩面性,沒有哪種方法是適用於任何情況的,我們應該在實際工作中多總結、歸納,逐漸摸索出最適合自身系統的一種解決方案,這樣才能使我們的工作順利開展
❺ SQLServer2008資料庫怎樣備份還原和數據恢復
在完整恢復模式或大容量日誌恢復模式下,必須先備份活動事務日誌(稱為日誌尾部),然後才能在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 資料庫誤刪,有日誌文件如何還原
恢復條件
1.資料庫是完整恢復模式.
2.誤操作以來未日誌截斷.那麼,使用Log
Explorer導出反誤操作的SQL腳本.
❼ 如何恢復SQLServer表級數據詳解
方案1:恢復到一個不同的資料庫:
對於小資料庫來說不失為一種好的辦法,用備份還原一個新的庫,並把新庫中的表數據同步回去。你可以做完整恢復,或者時間點恢復。但是對於大資料庫,是非常耗時和耗費磁碟空間的。這個方法僅僅用於還原數據,在還原數據(就是同步數據)的時候,你要考慮觸發器、外鍵等因素。
方案2:使用STOPAT來還原日誌:
你可能想恢復最近的資料庫備份,並回滾到某個時間點,即發生意外前的某個時刻。此時可以使用STOPAT子句,但是前提是必須為完整或大容量日誌恢復模式。