1. 程式人生 > >關於資料庫的ldf和mdf檔案變得超大解決辦法

關於資料庫的ldf和mdf檔案變得超大解決辦法

截斷事務日誌  
如果從來沒有從事務日誌中刪除日誌記錄,邏輯日誌就會一直增長,直到填滿容納物理日誌檔案的磁碟上的所有可用空間。在某個即時點,必須刪除恢復或還原資料庫時不再需要的舊日誌記錄,以便為新日誌記錄騰出空間。刪除這些日誌記錄以減小邏輯日誌的大小的過程稱為截斷日誌。  
 
永遠不能截斷事務日誌的活動部分。日誌的活動部分是在任何時間恢復資料庫所需的日誌部分,因此必須有回滾所有未完成的事務所需的日誌映像。這部分必須始終在資料庫中,因為一旦伺服器發生故障,在伺服器重新啟動時必須用它恢復資料庫。日誌活動部分起點處的記錄由最小恢復日誌序號  (MinLSN)  標識。  
 
為資料庫選擇的恢復模式決定了在資料庫內,必須在活動部分之前保留的事務日誌量。雖然  MinLSN  之前的日誌記錄對恢復活動事務沒有作用,但在使用日誌備份將資料庫還原到故障點時,必須用這些記錄前滾修改。如果由於某種原因丟失了資料庫,則可以通過還原上次的資料庫備份,然後還原自該資料庫備份後的每個日誌備份來恢復資料。這意味著這些日誌備份必須包含自資料庫備份後所寫入的每個日誌記錄。當維護事務日誌備份序列時,日誌記錄直到寫入日誌備份時才能被截斷。  
 
 
---------------------------------------------------------------  
 
DBCC  SHRINKDATABASE  
DBCC  SHRINKDB  
DBCC  SHRINKFILE  
---------------------------------------------------------------  
 
DBCC  SHRINKFILE  
在企業管理器--〉收縮資料庫--〉收縮檔案--〉選日誌檔案--〉確定  
---------------------------------------------------------------  
 
-假設test2為資料庫名稱  日誌已經很大的時候用    
方法一此方法適用於7.0和2000。    
 
1、在查詢分析器中執行:  exec  sp_detach_db  'DB_Name','true'    
 
2、在我的電腦中將日誌的物理檔案xxx_Log.LDF改名。    
 
3、在查詢分析器中執行:  exec  sp_attach_single_file_db  'DB_Name','C:/Program  Files/Microsoft  SQL  Server/MSSQL/Data/DB_Name.MDF'    
 
4、如果上一步成功,將步驟2中改名後的檔案刪除。如果上一步不成功,改回原來的檔名,用sp_attach_db將資料庫附加到伺服器,然後用方法二。    
 
方法二    
 
6.X中  DUMP  TRANSACTION  test2  with  NO_LOG  DUMP  TRANSACTION  test2  with  TRUNCATE_ONLY  將上面的語句多次執行,直到日誌縮小。7.0和2000中  backup  log  test2  with  NO_LOG  backup  log  test2  with  TRUNCATE_ONLY  DBCC  SHRINKDATABASE(test2)  將上面的語句多次執行,直到日誌檔案縮小。上面的方法治標不治本,標本兼治要用下面的方法。    
 
方法三:    
 
--6.X和7.0中改為日誌處於截斷模式,2000中恢復模型改為簡單恢復  exec  sp_dboption  'test2','trunc.  log  on  chkpt.','on'  --7.0和2000中設為自動收縮,6.x中不用執行。  exec  sp_dboption  'test2','autoshrink','on'  通常用於測試環境。    
 
方法四:  --7.0中改為日誌不處於截斷模式,2000中恢復模型改為完全恢復  exec  sp_dboption  'test2','trunc.  log  on  chkpt.','off'  --7.0和2000中設為自動收縮,6.x中不用執行。  exec  sp_dboption  'test2','autoshrink','on'  建立作業,每半個小時一次日誌備份,每天一次完全資料庫備份。  7.0和2000中:在Log收縮到正常大小後,將autoshrink選項設定為off。通常用於真實環境。  在產品化系統中將autoshrink選項設定為開啟狀態並非明智之舉(除非您真的需要這樣做),這是因為,當您的系統正在忙於完成其它任務時,autoshrink選項可能會同時啟動,從而降低系統執行速度。然而,對於那些資料庫管理員無暇估計並且資料庫尺寸有可能在您毫無察覺的情況下超出控制範圍的桌面或遠端系統來說,開啟這一選項卻是一種非常有效的措施。  收縮事務日誌  在下列情況下,日誌檔案的物理大小將減少:    
 
*執行  DBCC  SHRINKDATABASE  語句時。    
 
*執行引用日誌檔案的  DBCC  SHRINKFILE  語句時。    
 
*自動收縮操作發生時。  日誌收縮操作依賴於最初的日誌截斷操作。日誌截斷操作不減小物理日誌檔案的大小,但減小邏輯日誌的大小,並將沒有容納邏輯日誌任何部分的虛擬日誌標記為不活動。日誌收縮操作會刪除足夠多的不活動虛擬日誌,將日誌檔案減小到要求的大小。  按下面任一方式控制事務日誌的大小:    
 
*在維護日誌備份序列時,排程  BACKUP  LOG  語句按間隔發生,以使事務日誌不致增長到超過預期的大小。    
 
*當不維護日誌備份序列時,指定簡單恢復模式。  詳情請參考  MS  SQL  Server  2000  聯機叢書:  目錄-->  SQL  Server構架-->資料庫構架-->物理資料庫構架-->事務日誌構架-->收縮事務日誌  目錄-->  SQL  Server構架-->資料庫構架-->物理資料庫構架-->事務日誌構架-->截斷事務日誌  
 
---------------------------------------------------------------  
 
 
請確認你的資料庫屬性-〉選項-〉故障還原模型選擇“簡單”或者“大容量日誌記錄恢復”。  
 
BACKUP  LOG  database_name  WITH  NO_LOG  
GO  
DBCC  SHRINKFILE  (datafile,  size)  
GO  
DBCC  SHRINKFILE  (logfile,  size)  
GO  
 
 
---------------------------------------------------------------  
 
徹底解決的方法:  
     定時備份日誌,會自動截斷日誌,用job排程,不用人工干預。對萬一情況的恢復也有幫助。建議用維護計劃。  

相關推薦

關於資料庫ldfmdf檔案超大解決辦法

截斷事務日誌  如果從來沒有從事務日誌中刪除日誌記錄,邏輯日誌就會一直增長,直到填滿容納物理日誌檔案的磁碟上的所有可用空間。在某個即時點,必須刪除恢復或還原資料庫時不再需要的舊日誌記錄,以便為新日誌記錄騰出空間。刪除這些日誌記錄以減小邏輯日誌的大小的過程稱為截斷日誌。   永遠不能截斷事務日誌的活動部分。日誌

鏈表的數組實現中,令鏈表自由表緊湊《算法導論》10.3-5

bject and elements 多少 lse tex com spa 使用 有一個雙向鏈表L,存儲於長度為m的數組。假設m個元素中有n個元素在鏈表L中,m-n個元素由自由表F管理。現在實現方法CompacifyList,它的功能是讓鏈表L中元素緊湊地占據數組的前n個

SQL Server2017還原資料庫時指定mdf檔案及日誌檔案的名稱

由於需要還原同一個資料庫的不同備份到不同資料庫中,可是在還原的時候,可是在指定目標資料庫時,填寫不同的資料庫名稱,在SQL Server Data資料夾中生成的.mdf檔案還是同一個,如圖,雖然是很簡單的一個操作,在這裡記錄一下,以防忘記。 折騰了半天。之前記得可以把資料庫分離,然後直接修改mdf檔案,

為什麼應用程式在Android 7.0之後安裝執行都更快?

需要了解幾個概念 Dalvik 虛擬機器 負責解釋dex檔案為機器碼,每次執行程式碼,都需要Dalvik將dex程式碼翻譯為微處理器指令,然後交給系統處理,這樣效率不高。 JIT(Just-In-Time) 為了解決上面的問題,Google在2

資料庫正常執行,突然慢的解決思路

<資料庫正常執行,突然變慢的解決思路> 資料庫正常執行,突然變慢的解決思路: 1、檢視資料庫版本(select * from v$version) 2、檢視作業系統的程序(top,ps -ef) 3、檢視作業系統的IO情況(sar 1 10) 4、製作awr報表,檢視報告 在報告中 :

MyBatis - 實體類的屬性名資料庫列名不一致時的兩種解決辦法!

問題:兩者不一致時 , 查詢結果無法封裝到實體!(也就無法查詢出來) ① 查詢的sql語句中使用別名進行查詢. 但要注意: 欄位名的別名 要和 實體類的屬性名一致! UserMapper.xml <!-- namespace:介面的全路徑名.

JDBC寫入MySQL資料庫中文問號問題解決辦法

1.在mysql的配置檔案my.ini或者my-default.ini中新增如下欄位[client]default-character-set=gbk[mysql]default-character-set=gbk[mysqld]character-set-server=gb

idea中的spring boot maven專案的依賴pom.xml檔案不一致的解決辦法

今天用idea建立了一個spring boot專案,包含了spring security,在pom檔案和專案依賴都存在security依賴的情況下,對專案的訪問連結都會跳轉到輸入賬號密碼的驗證登入頁面,程式碼和跳轉如下:   為了驗證security的

python使用xlrd讀取excel資料時,整數日期小數的解決辦法

想讓excel資料返回一個字串字典list,造了一個excel。資料如下: 用程式碼讀取後發現整型和日期變成了小數(123456變成了123456.0,2017/5/20 5:20變成了42875.22222222222): 有個比較簡單的解決辦法就是在數字和日期的

eclipse打斷點除錯進入到class檔案中,不顯示數值的解決辦法彙總

問題描述:eclipse打斷點除錯進入到class檔案中,而且監視區不顯示變數結果是由於對應的Java類跟編譯後的class檔案,沒有關聯上,解決辦法:在打斷點除錯的時候,如果發現進入到了class檔案,先彆著急關閉class檔案,在該class檔案中有個按鈕,然後點選這個按鈕,選擇跟該專案對應的專案型別(j

Git忽略規則.gitignore規則不生效的解決辦法

note 生效 sub cached git 一行 server 自己 原來 Git忽略規則: 在git中如果想忽略掉某個文件,不讓這個文件提交到版本庫中,可以使用修改根目錄中 .gitignore 文件的方法(如果沒有這個文件,則需自己手工建立此文件)。這個文件每一行保存

linuxwindows下TIME_WAIT過多的解決辦法

iss abs apach cti ack tps als improve increase http://www.51testing.com/html/48/202848-249774.html linux和windows下TIME_WAIT過多的解決辦法 http:

百度雲盤上傳文件下載文件慢的解決辦法

修改註冊表 管理 鼠標右鍵 back bsp sha images machine otto 百度雲盤上傳文件和下載文件慢的解決辦法一:上傳文件慢1. 左下角點擊搜索,輸入cmd,右鍵以管理員身份運行2. 在彈出的窗口中輸入netsh interface tcp set g

臺式機(華碩主板)前面板音頻接口(耳機麥克風)均無聲的解決辦法

html .net AC 總結 .html log 揚聲器 baidu 報警 去年組裝一臺新臺式機(華碩主板),把金河田機箱的前面板的Audio的線,插在了Speaker和Power標識的備用的10位口的8針位,其實應該插在AAFP(大概是AC97 Audio Front

對生產者消費者問題的另一個解決辦法是使用QWaitCondition(封裝好了wakeOne,wakeAll,而且與QReadWriteLock對接,幾乎是萬能的辦法

thread wak clu cor int csdn 但是 targe get 對生產者和消費者問題的另一個解決辦法是使用QWaitCondition,它允許線程在一定條件下喚醒其他線程。其中wakeOne()函數在條件滿足時隨機喚醒一個等待線程,而wakeAll()函數

mysql資料庫時間欄位相差8個小時解決辦法

資料庫->mysql 持久層框架->mybatis 解決思路:使用mybatis提供的型別轉換器功能 建立DateHandler,指定泛型為Date package cn.nsu.edu.web.four.handler.mybatis; import org.ap

pandas讀取大檔案時memoryerror的解決辦法

再用pd.read_csv讀取大檔案時,如果檔案太大,會出現memoryerror的問題。   解決辦法一:pd.read_csv的引數中有一個chunksize引數,為其賦值後,返回一個可迭代物件TextFileReader,對其遍歷即可 reader = pd.read_csv(file_

Unable to resolve dependency forCould not resolve project 的解決辦法,針對AndroidStudio高版本

前提是這樣的:我找了一個AndroidStudio3.0之前版本的專案,把它其中的Module匯入到一個新專案中作為依賴 然後就出現此報錯資訊,老是說Could not resolve project:xxx 解決了一下午。有人說在Setting-Build,Gradle,xxx選項中

CentOs系統自帶pythonyum解除安裝後的解決辦法

事故背景:前幾天因專案需要,在伺服器上搭建python-mysql模組,結果沒安裝好,於是乎想解除安裝重灌,遂在網上查詢解除安裝python的方法,結果一不小心直接把系統的python刪了個乾淨.......... 現在只能含淚修復,博主在網上搜了一圈辦法,基本上都不是那麼的詳細,現在記下這一方法,希望能幫

Office2013 開啟檔案提示檔案已損壞的解決辦法

今天從業務OA下載考勤記錄後,用新安裝的office2016開啟,提示:檔案已損壞。用WPS開啟則沒有問題,於是建議用WPS,多人性化,但是由於客戶的office版本可能較高,用WPS 或office2007 都不太相容,造成內容丟壞。沒辦法只能解決問題了。然後百度了一下,大體都差不多,(少了第5步)但就是不