SQL?Server事務(wù)日志文件過大(已滿)的解決方案
前言
事務(wù)日志文件(Transaction Log File)是用來記錄數(shù)據(jù)庫更新情況的文件,擴(kuò)展名為ldf。當(dāng)出現(xiàn)以下情況時(shí),就會(huì)報(bào)“事務(wù)日志已滿”的錯(cuò)誤:
日志文件沒有設(shè)置了自動(dòng)增長(zhǎng),當(dāng)記錄超過初始大小;
日志文件設(shè)置了自動(dòng)增長(zhǎng),“最大文件大小”設(shè)置了具體的大?。ㄈ?000M),當(dāng)文件達(dá)到設(shè)置的大小時(shí)。
解決SQL Server數(shù)據(jù)庫事務(wù)日志已滿的方法
要解決事務(wù)日志已滿的問題,可以采用以下三種方法,截?cái)嗳罩?、收縮日志文件以及修改數(shù)據(jù)庫恢復(fù)模式.
修改數(shù)據(jù)庫恢復(fù)模式
將數(shù)據(jù)庫恢復(fù)模式從“完整模式”或“大容量日志恢復(fù)模式”更改為“簡(jiǎn)單模式”可以解決SQL Server數(shù)據(jù)庫事務(wù)日志已滿問題。但是,請(qǐng)注意這種方法可能會(huì)導(dǎo)致數(shù)據(jù)丟失。以下是修改數(shù)據(jù)庫恢復(fù)模式的步驟:
1. 在 SQL Server Management Studio 中,右鍵單擊數(shù)據(jù)庫,選擇“屬性”。
2. 在“選項(xiàng)”中,將“恢復(fù)模式”設(shè)置為“簡(jiǎn)單”,然后點(diǎn)擊“確定”
3. 在 SQL Server Management Studio 中,右鍵單擊數(shù)據(jù)庫,選擇“任務(wù)”->“備份”。
4. 在“備份類型”中,選擇“日志”,點(diǎn)擊“確定”。
截?cái)嗳罩?/h3>
截?cái)嗳罩臼墙鉀QSQL Server數(shù)據(jù)庫事務(wù)日志已滿問題的較簡(jiǎn)單方法。通過截?cái)嗳罩荆梢郧宄罩疚募械呐f數(shù)據(jù),從而釋放空間。
- 在對(duì)象資源管理器中,連接到 SQL Server 數(shù)據(jù)庫引擎的實(shí)例,然后展開該實(shí)例。
- 展開“數(shù)據(jù)庫”,再右鍵單擊要截?cái)嗳罩镜臄?shù)據(jù)庫。
- 指向“任務(wù)”,指向“收縮”,然后選擇“文件”。
- 選擇文件的文件類型??捎玫倪x項(xiàng)包括“數(shù)據(jù)”和“日志”文件。默認(rèn)選項(xiàng)為“數(shù)據(jù)”。
- 在與以上所選的“文件類型”相關(guān)聯(lián)的文件組列表中選擇文件組。
- 從所選文件組和文件類型的可用文件列表中選擇文件。
- 選中“釋放未使用的空間”選項(xiàng),將為操作系統(tǒng)釋放文件中所有未用空間,并嘗試將行重新定位到未分配頁。
- 根據(jù)需要,輸入在收縮數(shù)據(jù)庫后數(shù)據(jù)庫文件中要保留的最大可用空間百分比。值可以介于 0 和 99 之間。
請(qǐng)注意,在收縮日志文件之前,需要將數(shù)據(jù)庫的恢復(fù)模式更改為簡(jiǎn)單模式。此外,收縮日志文件的步驟與截?cái)嗳罩疚募牟襟E類似,但是收縮日志文件會(huì)將日志文件的大小縮小到指定的大小,而截?cái)嗳罩疚募皇莿h除不活動(dòng)的虛擬日志文件以釋放空間。
總之,使用 SQL Server Management Studio 截?cái)嗳罩镜姆椒òㄟB接到 SQL Server 數(shù)據(jù)庫引擎的實(shí)例,展開“數(shù)據(jù)庫”,右鍵單擊要截?cái)嗳罩镜臄?shù)據(jù)庫,指向“任務(wù)”,指向“收縮”,然后選擇“文件”。請(qǐng)注意,在執(zhí)行截?cái)嗖僮髦?,?yīng)該備份數(shù)據(jù)庫以防止數(shù)據(jù)丟失。
收縮日志文件
收縮日志文件是另一種解決SQL Server數(shù)據(jù)庫事務(wù)日志已滿問題的方法。通過收縮日志文件,可以壓縮日志文件的大小,從而釋放空間。
在 SQL Server 中,可以使用 SQL Server Management Studio 或 Transact-SQL 來收縮數(shù)據(jù)或日志文件。以下是使用 SQL Server Management Studio 收縮日志文件的步驟:
在對(duì)象資源管理器中,連接到 SQL Server 數(shù)據(jù)庫引擎的實(shí)例,然后展開該實(shí)例。
展開“數(shù)據(jù)庫”,再右鍵單擊要收縮的數(shù)據(jù)庫。
指向“任務(wù)”,指向“收縮”,然后選擇“文件”。
選擇文件的文件類型??捎玫倪x項(xiàng)包括“數(shù)據(jù)”和“日志”文件。默認(rèn)選項(xiàng)為“數(shù)據(jù)”。
在與以上所選的“文件類型”相關(guān)聯(lián)的文件組列表中選擇文件組。
從所選文件組和文件類型的可用文件列表中選擇文件。
選中“釋放未使用的空間”選項(xiàng),將為操作系統(tǒng)釋放文件中所有未用空間,并嘗試將行重新定位到未分配頁。
根據(jù)需要,輸入在收縮數(shù)據(jù)庫后數(shù)據(jù)庫文件中要保留的最大可用空間百分比。值可以介于 0 和 99 之間。
請(qǐng)注意,收縮日志文件的步驟與收縮數(shù)據(jù)文件的步驟略有不同。在收縮日志文件之前,需要將數(shù)據(jù)庫的恢復(fù)模式更改為簡(jiǎn)單模式。以下是使用 Transact-SQL 收縮日志文件的步驟:
- 將數(shù)據(jù)庫的恢復(fù)模式更改為簡(jiǎn)單模式。
- 截?cái)嗍聞?wù)日志。
- 收縮日志文件。
具體的 Transact-SQL 命令如下:
-- 將數(shù)據(jù)庫的恢復(fù)模式更改為簡(jiǎn)單模式 ALTER DATABASE database_name SET RECOVERY SIMPLE; -- 截?cái)嗍聞?wù)日志 BACKUP LOG database_name WITH TRUNCATE_ONLY; -- 收縮日志文件 DBCC SHRINKFILE (file_name, target_size);
其中,file_name
是要收縮的日志文件的邏輯名稱,target_size
是要收縮到的目標(biāo)大小。
總之,收縮日志文件的步驟包括將數(shù)據(jù)庫的恢復(fù)模式更改為簡(jiǎn)單模式、截?cái)嗍聞?wù)日志、收縮日志文件。請(qǐng)注意,在執(zhí)行收縮操作之前,應(yīng)該備份數(shù)據(jù)庫以防止數(shù)據(jù)丟失。
使用傲梅企業(yè)備份網(wǎng)絡(luò)版軟件備份 SQL Server 數(shù)據(jù)庫并解決事務(wù)日志已滿問題
如果您的 SQL Server 數(shù)據(jù)庫事務(wù)日志已滿,并且您正在使用 SSMS 解決該問題,您也可以考慮使用傲梅企業(yè)備份網(wǎng)絡(luò)版軟件來備份數(shù)據(jù)庫。傲梅企業(yè)備份網(wǎng)絡(luò)版提供了以下功能:
提供系統(tǒng)/磁盤/分區(qū)/文件備份,助您創(chuàng)建集中備份對(duì)于 LAN 內(nèi)的所有客戶端。它還提供 SQL Server 備份,用于在一臺(tái) PC/服務(wù)器上備份多個(gè)實(shí)例。
它使您能夠使用計(jì)劃功能創(chuàng)建自動(dòng)備份任務(wù)。有四種可用的計(jì)劃模式:一次、每日、每周和每月。
支持SQL Server 2019/2017/2016/2014/2012/2008(R2)/2005數(shù)據(jù)庫備份。
它可以安裝在Windows Server(Windows Server 2019/2016/2012/2011/2008/2003等)和Windows PC(Windows 10/8.1/8/7/Vista/XP)上。
使用傲梅企業(yè)備份網(wǎng)絡(luò)版軟件備份 SQL Server 數(shù)據(jù)庫可以幫助您解決事務(wù)日志已滿的問題。下面是使用傲梅企業(yè)備份網(wǎng)絡(luò)版?zhèn)浞?SQL Server 數(shù)據(jù)庫的步驟:
1. 在局域網(wǎng)內(nèi)的其中一臺(tái)計(jì)算機(jī)上安裝傲梅企業(yè)備份網(wǎng)絡(luò)版作為中央管理計(jì)算機(jī)。
2.安裝客戶端程序
啟動(dòng)傲梅企業(yè)備份網(wǎng)絡(luò)版 并轉(zhuǎn)到 "計(jì)算機(jī)" > "未控制的計(jì)算機(jī)" > "安裝客戶端"。您將看到如下兩個(gè)選項(xiàng):
客戶端手動(dòng)安裝:點(diǎn)擊“下一步”即可得到客戶端程序安裝文件。將安裝文件復(fù)制到裝有 SQL Server 的計(jì)算機(jī)上,并以管理員身份運(yùn)行它以安裝傲梅企業(yè)備份網(wǎng)絡(luò)版 Agent。
遠(yuǎn)程客戶端安裝:點(diǎn)擊“下一步”,您將擁有局域網(wǎng)內(nèi)所有可用的計(jì)算機(jī)。選擇裝有SQL Server 的計(jì)算機(jī),輸入它的用戶名和密碼,然后單擊“安裝”。
3.請(qǐng)求控制
3.1. 如果您手動(dòng)安裝了客戶端程序,客戶端計(jì)算機(jī)將列在 "計(jì)算機(jī)" > “未控制的計(jì)算機(jī)”下。勾選裝有SQL Server的電腦,點(diǎn)擊 “請(qǐng)求控制” 獲取控制權(quán)限。 提供了兩種方法:
輸入賬號(hào):輸入客戶端的用戶名和密碼,點(diǎn)擊“確定”。
通過發(fā)送消息:程序?qū)⑾蚩蛻舳擞?jì)算機(jī)發(fā)送消息。在客戶端計(jì)算機(jī)上單擊“同意”以授權(quán)訪問。
3.2. 如果您遠(yuǎn)程安裝了客戶端程序,客戶端計(jì)算機(jī)將列在 "計(jì)算機(jī)" > “已控制的計(jì)算機(jī)”下。在這種情況下,您無需請(qǐng)求控制權(quán)。
現(xiàn)在您可以通過 傲梅企業(yè)備份網(wǎng)絡(luò)版每天執(zhí)行SQL Server自動(dòng)備份,步驟如下:
1. 轉(zhuǎn)到 “任務(wù)” 選項(xiàng)卡,單擊 “新建任務(wù)” 并選擇 “SQL Server 備份”。
2. 在彈出窗口中,根據(jù)需要編輯任務(wù)名稱。然后, 在“第一步”欄中點(diǎn)擊 “添加計(jì)算機(jī)” ,選擇帶有SQL Server數(shù)據(jù)庫的受控計(jì)算機(jī)。
3. 單擊“步驟 2”列,然后單擊“添加”。該程序?qū)z測(cè)計(jì)算機(jī)上的所有 SQL Server 實(shí)例。選擇要備份的實(shí)例和數(shù)據(jù)庫,然后單擊“確定”。
4. 單擊“第 3 步”列,然后單擊“添加存儲(chǔ)”。鍵入網(wǎng)絡(luò)共享或 NAS 路徑以添加目標(biāo)位置以存儲(chǔ)備份文件。
5. 單擊左下角的“計(jì)劃并選擇您要為其創(chuàng)建計(jì)劃的計(jì)算機(jī)”。在“日程設(shè)置”窗口的下拉列表中選擇“每天” ,完成相應(yīng)的設(shè)置。您還可以通過單擊“高級(jí)”選擇運(yùn)行完整/差異備份。
6. 確認(rèn)操作,點(diǎn)擊 “開始備份”。您可以在此處選擇“僅創(chuàng)建任務(wù)”或“創(chuàng)建并執(zhí)行任務(wù)”。
結(jié)論
以上是解決 SQL Server數(shù)據(jù)庫事務(wù)日志已滿問題的多種方法。截?cái)嗳罩竞褪湛s日志文件是較為簡(jiǎn)單的方法,但可能會(huì)導(dǎo)致數(shù)據(jù)丟失。修改數(shù)據(jù)庫恢復(fù)模式可以解決問題,但也可能會(huì)導(dǎo)致數(shù)據(jù)丟失。使用傲梅企業(yè)備份網(wǎng)絡(luò)版軟件備份 SQL Server 數(shù)據(jù)庫是最安全的方法,可以保證數(shù)據(jù)的完整性。
總結(jié)
到此這篇關(guān)于SQL Server事務(wù)日志文件過大(已滿)解決的文章就介紹到這了,更多相關(guān)SQLServer事務(wù)日志文件過大內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析Sql server鎖,獨(dú)占鎖,共享鎖,更新鎖,樂觀鎖,悲觀鎖
以下是對(duì)Sql server鎖,獨(dú)占鎖,共享鎖,更新鎖,樂觀鎖,悲觀鎖進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下2013-08-08CPU?核心數(shù)超過?Enterprise?Server/CAL?限制問題的解決方法
最近有客戶要求安裝sql?server?2019?數(shù)據(jù)庫,安裝過程中提示Enterprise?Server/CAL?CPU?核心利用率限制規(guī)則生成了警告,CPU?核心數(shù)超過?Enterprise?Server/CAL?限制,20?個(gè)物理核心,或已啟用超線程的?40?個(gè)邏輯核心,原來企業(yè)版也是有區(qū)別的2024-04-04MS SQL Server排查多列之間的值是否重復(fù)的功能實(shí)現(xiàn)
在日常的應(yīng)用中,排查列重復(fù)記錄是經(jīng)常遇到的一個(gè)問題,但某些需求下,需要我們排查一組列之間是否有重復(fù)值的情況,本文給大家介紹了MS SQL Server排查多列之間的值是否重復(fù)的功能實(shí)現(xiàn),需要的朋友可以參考下2024-09-09SQL 比較一個(gè)集合是否在另一個(gè)集合里存在的方法分享
SQL 比較一個(gè)集合是否在另一個(gè)集合里存在的方法分享,需要的朋友可以參考下。2011-11-11