sqlserver日志文件


過程:   昨天下午數據庫奔潰,表現就是連不上數據庫了,重啟服務之后好了。

 

              查詢日文文件 , “Autogrow of file 'XX_log' in database 'XX' was cancelled by user or timed out after 1896 milliseconds. Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.”。

              找到原因: 數據庫在自動增長,所以連接超時。

分析:數據庫日志文件滿了,開始自動增長,自動增長方式是按默認的10%。這個初期是沒有問題的,但是到了后期。日志文件巨大,有幾十G,幾十g的百分之十也有幾個G,所以再去磁盤上再分配這么大的空間,很容易超時。

 

解決辦法:1,把自動增長的方式設置為固定,太小了,容易造成磁盤碎片,太大容易超時。一般500M是沒有問題的。

     2,定期收縮日志文件。

                   

 

 

其他:sqlserver 數據庫的文件有mdf文件和ldf文件。mdf是數據文件,ldf是日志文件。假如有完整的日志文件,可以把數據庫恢復到任何一個時間點的狀態 。可見日志文件的重要性,但是日志文件一般增長很快,所以需要定期收縮。

             

USE[master]  
GO  
ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE WITH NO_WAIT  
GO  
ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE   --簡單模式  
GO  
USE Rk  
GO  
DBCC SHRINKFILE (N'數據庫名_log' , 2, TRUNCATEONLY)  --設置壓縮后的日志大小為2M,可以自行指定  
GO  
USE[master]  
GO  
ALTER DATABASE 數據庫名 SET RECOVERY FULL WITH NO_WAIT  
GO  
ALTER DATABASE 數據庫名 SET RECOVERY FULL  --還原為完全模式  
GO  

      可以分為三步,把數據表設置為簡單模式,收縮,再設置回完整模式。

 

    數據庫有三種模式,簡單恢復模式,完整恢復模式,大容量日志恢復模式 

 

 

 

 

,可以看這里   https://www.cnblogs.com/OpenCoder/p/5708226.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM