當前位置:首頁 » 編程語言 » sqllsn
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqllsn

發布時間: 2022-05-12 00:26:31

『壹』 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資料庫如何還原

  1. 把資料庫的備份文件放到伺服器的任意目錄下先, 然後按下面的步驟做。

  2. 如何從備份設備還原備份(企業管理器) ,從備份設備還原備份 。

  3. 展開伺服器組,然後展開伺服器。

  4. 展開"資料庫"文件夾,右擊資料庫,指向"所有任務"子菜單,然後單擊"還原資料庫"命令。

  5. 在"還原為資料庫"框中,如果要還原的資料庫名稱與顯示的默認資料庫名稱不同,請在其中進行輸入或選擇。

  6. 若要用新名稱還原資料庫,請輸入新的資料庫名稱。

  7. 說明 為資料庫指定新名稱將自動為從資料庫備份中還原的資料庫文件指定新名稱。

  8. 單擊"從設備",然後單擊"選擇設備"。

  9. 在"還原自"下,單擊"磁帶"或"磁碟",然後選擇還原設備。

  10. 如果沒有出現設備,則單擊"添加"以添加現有的備份設備或創建新的備份設備。

  11. 在"還原資料庫"對話框內,單擊"查看內容"並選擇要還原的備份集。

  12. 說明 此選項將掃描備份集以獲得備份內容信息,該操作可能需要花費較長時間,特別是在使用磁帶設備時。

  13. 如果已經知道要還原的備份集,則在"備份號"中輸入備份集編號。

  14. 在"還原備份集"下執行下列操作之一: 單擊"資料庫 — 完全"還原資料庫備份。

  15. 單擊"資料庫 — 差異"還原差異資料庫備份。

  16. 單擊"事務日誌"應用事務日誌備份。

『叄』 SQL Server資料庫自動備份頻率高低的優劣分析

如果你的領導了解或完全明白了,完整備份/增量備份/事物日誌備份,真正的含義。還是要求您按照他的方式去備份。建議您還是按照領導的要求去做。領導對數據的重要性和您看待的考慮和我們的不一樣,可能看得更遠。
下面寫一下它們的區別
SQL Server 2008提供了四種備份方式:完整備份、差異備份、事務日誌備份、文件和文件組備份。
完整備份
備份整個資料庫的所有內容,包括事務日誌。該備份類型需要比較大的存儲空間來存儲備份文件,備份時間也比較長,在還原數據時,也只要還原一個備份文件。
差異備份
差異備份是完整備份的補充,只備份上次完整備份後更改的數據。相對於完整備份分來說,差異備份的數據量比完整數據備份小,備份的速度也比完整備份要快。因此,差異備份通常作為常用的備份方式。在還原數據時,要先還原前一次做的完整備份,然後還原最後一次所做的差異備份 ,這樣才能讓資料庫里的數據恢復到與最後一次差異備份時的內容相同。
事務日誌備份
事務日誌備份只備份事務日誌里的內容。事務日誌記錄了上一次完整備份或事務日誌備份後資料庫的所有變動過程。事務日誌記錄的是某一段時間內的資料庫變動情況,因此在進行事務日誌備份之前,必須要進行完整備份。與差異備份類似,事務日誌備份生成的文件較小、佔用時間較短,但是在還原數據時,除了先要還原完整備份之外,還要依次還原每個事務日誌備份,而不是只還原最後一個事務日誌備份(這是與差異備份的區別)。
文件和文件組備份
如果在創建資料庫時,為資料庫創建了多個資料庫文件或文件組,可以使用該備份方式。使用文件和文件組備份方式可以只備份資料庫中的某些文件,該備份方式在資料庫文件非常龐大時十分有效,由於每次只備份一個或幾個文件或文件組,可以分多次來備份資料庫,避免大型資料庫備份的時間過長。另外,由於文件和文件組備份只備份其中一個或多個數據文件,當資料庫里的某個或某些文件損壞時,可能只還原損壞的文件或文件組備份。

舉例說明
完整備份
例如,在2017年7月1日早上8點進行了完整備份,那麼將來在還原時,就可以恢復到2017年7月有1日早上8點時的資料庫狀態。
差異備份
差異備份是備份完整備份後的數據變動情況。例如,在2017年7月1日早上8點進行了完整備份後,在7月2日和7月3日又分別進行了差異備份,那麼在7月2日的差異備份里記錄的是從7月1日到7月2日這一段時間里的數據變動情況,而在7月3日的差異備份里記錄的是從7月1日到7月3日這一段時間里的數據變動情況。因此,如果要還原到7月3日的狀態,只要先還原7月1日做的完整備份,再還原1月3日做的差異備份就可以了。
事務日誌備份
事務日誌備份是以事務日誌文件作為備份對象,相當於將資料庫里的每一個操作都記錄下來了。假設在2017年7月1日早上8點進行了完整備份後,到7月2日早上8點為止,資料庫里的數據變動了100次,如果此時做了差異備份,那麼差異備份記錄的是第100次數據變動後的資料庫狀態,而如果此時做了事務日誌備份,備份的將是這100次的數據變動情況。
再舉一個例子,例如在2017年7月1日早上8點進行了完整備份後,在7月2日和7月3日又進行了事務日誌備份,那麼在7月2日的事務日誌備份里記錄的是從7月1日到7月2日這一段時間里的數據變動情況,而在7月3日的事務日誌備份里記錄的是從7月2日到1月3日這一段時間里的數據變動情況。因此,如果要還原到7月3日的數據,需要先還原7月1日做的完整備份,再還原7月2日做的事務日誌備份,最後還要還原7月3日所做的事務日誌備份。
備份方式的選擇
了解了以上資料庫備份方式後,便可以針對自己的資料庫利用以上方式來備份資料庫了。合理備份資料庫需要考慮幾方面,首先是數據安全,其次是備份文件大小,最後是做備份和還原能承受的時間范圍。
數據變動量較小
例如,如果資料庫里每天變動的數據量很小,可以每周(周日)做一次完整備份,以後的每天(下班前)做一次事務日誌備份,那麼一旦資料庫發生問題,可以將數據恢復到前一天(下班時)的狀態。
當然,也可以每周(周日)做一次完整備份,以後的每天(下班前)做一次差異備份,這樣一旦資料庫發生問題,同樣可以將數據恢復到前一天下班時的狀態。只是一周的後幾天做差異備份時,備份的時間和備份的文件都會跟著增加。但這也有一個好處,在數據損壞時,只要恢復完整備份的數據和前一天差異備份的數據即可,不需要去恢復每一天的事務日誌備份,恢復的時間會比較短。
數據變動量較大
如果資料庫里的數據變動得比較頻繁,損失一個小時的數據都是十分嚴重的損失時,用上面的辦法備份數據就不可行了,此時可以交替使用三種備份方式來備份資料庫。
例如,每天下班時做一次完整備份,在兩次完整備份之間每隔八小時做一次差異備份,在兩次差異備份之間每隔一小時做一次事務日誌備份。如此一來,一旦數據損壞可以將數據恢復到最近一個小時以內的狀態,同時又能減少資料庫備份數據的時間和備份數據文件的大小。
資料庫文件較大
在前面還提到過當資料庫文件過大不易備份時,可以分別備份資料庫文件或文件組,將一個資料庫分多次備份。在現實操作中,還有一種情況可以使用到資料庫文件的備份。例如在一個資料庫中,某些表裡的數據變動得很少,而某些表裡的數據卻經常改變,那麼可以考慮將這些數據表分別存儲在不同的文件或文件組里,然後通過不同的備份頻率來備份這些文件和文件組。但使用文件和文件組來進行備份,還原數據時也要分多次才能將整個資料庫還原完畢,所以除非資料庫文件大到備份困難,否則不要使用該備份方式。
尾部日誌備份
針對以上備份方案,能看出數據還是不完整嗎?比如昨天夜間12點做了完整備份,每隔一小時做了一次事務日誌備份,最後一次事務日誌備份是今天中午12點,現在是今天中午12點10分,發現資料庫數據遭到丟失或破壞,可最後一次事務日誌備份是今天中午12點,如果我此時將資料庫恢復到12點,那麼12點後至12點10分前沒遭到破壞的操作數據將丟失(比如資料庫有三個表,一個表的數據遭到破壞,其它兩個表的數據被其它用戶變動)。此時就要用到【尾部日誌備份】,尾部日誌備份原理是從最後一次事務日誌備份的時間點開始,將之後的所有操作進行備份,還原時便可以找到12點後操作的正確數據了。
註:進行尾部日誌備份時,資料庫將強制停止資料庫,此時如果不停止資料庫,還有用戶繼續操作,尾部日誌備份將失去意義。SQL Server 2012如果你最後一次備份事務日誌後,對數據進行過改動,即發生過事務日誌(也就是當前日誌文件記錄的LSN(日誌序列號)大於最後一次事務日誌備份里記錄的最大LSN,SQL Server通過LSN來區分日誌的記錄),並尚未對尾部日誌備份,它會提示並要求你必須先做尾部備份。

『肆』 附加SQL2000資料庫的時候出現:該LSN是傳遞給資料庫shikong_Lekd中的日誌掃描操作的,是怎麼回事

應該是數據文件或者日誌文件損壞了。

1)設置資料庫為緊急模式
停掉SQL Server服務;
把應用資料庫的數據文件XXX_Data.mdf移走;
重新建立一個同名的資料庫XXX;
停掉SQL服務;
把原來的數據文件再覆蓋回來;
運行以下語句,把該資料庫設置為緊急模式;
運行「Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go」

執行結果:
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
已將配置選項 'allow updates' 從 0 改為 1。請運行 RECONFIGURE 語句以安裝。

接著運行「update sysdatabases set status = 32768 where name = 'XXX'」

重啟SQL Server服務;
運行以下語句,把應用資料庫設置為Single User模式;
運行「sp_dboption 'XXX', 'single user', 'true'」

執行結果:
命令已成功完成。

做DBCC CHECKDB;

運行「DBCC CHECKDB('XXX')」
運行以下語句把系統表的修改選項關掉;
運行「sp_resetstatus "XXX"
go
sp_configure 'allow updates', 0
reconfigure with override
重新建立另外一個資料庫XXX.Lost;
2)DTS導出向導
運行DTS導出向導;

『伍』 sql server 怎麼檢查資料庫再使用中

LSN,是Log Sequence Number,即日誌序列號的簡稱,SQL Server使用事務日誌來記錄發生在資料庫伺服器的事務。

如果想查看與資料庫Northwind相關的日誌記錄,可以按照下面步驟進行設置。

(1) 在【查詢編輯器】中輸入下面的Transact-SQL語句:

USE Northwind
SELECT * FROM ::fn_dblog(null, null)
GO

(2) 單擊【執行】按鈕,與資料庫Northwind相關的每條日誌信息將以數據集的形式返回。

(3) 此外,也可以像設計其他普通查詢語句那樣設置查詢條件,如下所示:

USE Northwind
SELECT [Begin Time] ,* FROM ::fn_dblog(null,null) WHERE [Begin Time] >= '2012/10/22'
GO

『陸』 SQL SERVER備份與恢復,不理解!

SQL Server中的日誌以LSN來區別每一條事務,日誌備份只復制上次日誌備份以來的所有日誌記錄,也就是上次日誌備份後新產生的LSN號。
如果可以在發生嚴重故障後備份活動日誌(尾日誌),則可將資料庫一直還原到沒有發生數據丟失的故障點處理。但是大量做日誌備份時,恢復備份時需要嚴格按照日誌備份產生的順序依次恢復,中間不能有任何日誌備份的缺失或跳躍,所以日誌備份做的越多,還原時間越長,管理復雜性越高。
正是因為這個情況,所以才有差異備份,而差異備份是備份上次完整備份以後資料庫整的整體差異。
如上面的情況,在差異備份後的日誌備份,如果有事務穿越了差異備份的時點,在有後續日誌備份的情況下,也可以正常達到提交或回滾的目標。

根據這兩個原則,你上面所列的情況在情理之中。

『柒』 如何用SQL語句進行數據的插入刪除

//添加insert
into
tablename
(fld1,fld2,...,fldn)
values
(vls1,vls2,...,vlsn)//更改update
tablename
set
fld1=vls1,fld2=vls2,...,fldn=vlsn
[where
條件]//刪除delete
from
tablename
[where
條件]不會是這個問題吧,頭大了

『捌』 如何用SQLserver2008還原2000版備份的數據文件

在完整恢復模式或大容量日誌恢復模式下,必須先備份活動事務日誌(稱為日誌尾部),然後才能在SQLServerManagementStudio中還原資料庫。有關詳細信息,請參閱如何備份事務日誌(SQLServerManagementStudio)。若要還原已加密的資料庫,您必須有權訪問用於加密資料庫的證書或非對稱密鑰。如果沒有證書或非對稱密鑰,資料庫將無法還原。 認識資料庫備份和事務日誌備份 資料庫備份與日誌備份是資料庫維護的日常工作,備份的目的是在於當資料庫出現故障或者遭到破壞時可以根據備份的資料庫及事務日誌文件還原到最近的時間點將損失降到最低點。 資料庫備份 資料庫備份可以手動備份和語句備份 一.手動備份資料庫 1.滑鼠右鍵選擇你要進行備份的資料庫-任務-備份 可以在常規選項頁面你可以選擇備份類型是進行完整資料庫備份還是差異資料庫備份 2.點擊添加選項,選擇資料庫文件的存放路徑 注意文件名記得加後綴.bak,便於恢復時的查找 3.你還可以在選項頁面是追加到現有的備份集,還是覆蓋所有的現有備份集,還可以選擇備份驗證完整性(建議選擇),還可以選擇是否壓縮備份等。 二.語句備份資料庫 use master goBACKUP DATABASE [test] TO DISK = N'D:Microsoft sql serverMSSQL10.MSSQLSERVERMSSQLBackuptest.bak' WITH NOFORMAT, NOINIT, NAME = N'test-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO 資料庫日誌備份 首先需要注意,資料庫日誌的備份是基於資料庫完整備份,也就是說你備份資料庫日誌之前你首先要先對資料庫進行一次完整的備份,因為之間會涉及到堅持到檢查點lsn,這也是本文接下來要講的重點。 一.手動備份資料庫日誌 1.右鍵資料庫-任務-備份-選擇備份類型(事務日誌) 2.點添加,添加日誌文件備份存儲路徑 3.同資料庫完整備份一樣,你也可以選擇覆蓋現有備份集或者追加到現有備份集,這里現在覆蓋現有備份集、驗證完整性,然後確認備份 二.語句備份資料庫事務日誌 BACKUP LOG [test] TO DISK = N'D:test.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資料庫中日誌收縮、截斷等等是什麼

如:shgzts為資料庫名
mp transaction shgzts with no_log --截斷日誌
backup log shgzts with no_log --備份日誌
dbcc shrinkdatabase(shgzts,truncateonly) --資料庫收縮