Sql-Server-2008-R2
巨大的分析服務日誌文件:msmdsrv.log
我剛剛發現我們的產品分析服務正在寫入大小為 1.6 GB 的日誌。
我能夠將日誌文件的副本保存到備用位置並在寫字板中打開它(記事本、Word 等。說文件太大)。看來這個日誌已經攪動了近 4 年,沒有出現任何問題。但現在的問題是它太大了。msmdsrv.ini 文件似乎沒有滾動日誌或限制其大小的設置。
防止將來發生這種情況的最佳方法是什麼?如何正確管理 Analysis Services 日誌文件?
您不能以與 SQL Server 類似的方式回收 SSAS 日誌。您需要手動執行此操作,方法是建構一個腳本,然後安排它在 SQL 代理或 Windows 任務計劃程序中執行。
這是您可以使用的範例 Powershell 腳本:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") #Get a list of installed SSAS instances on this server that are running #We need a service to be started in order to rename the log file $SSASServices = Get-WmiObject -query "select * from win32_service where DisplayName LIKE 'SQL Server Analysis%' and State = 'Running'" #for each installed instance, update the logfile name ForEach ($sname in $SSASServices) { # Connect to the SSAS server $SSASServer = New-Object Microsoft.AnalysisServices.Server $SSASServer.Connect($sname.SystemName) #gets current filename $SSASErrorFileName = ($SSASServer.Serverproperties | where-Object {$_.Name -eq "Log\File"}).Value #split out the .log extension $SSASErrorName=$SSASErrorFileName.Split(".")[0] #rename the errorlog, appending the current date $ErrorLogName = "msmdsrv_{0}.log" -f (Get-Date -Format 'MM_dd_yyy_hh_mm_ss') $SSASServer.ServerProperties['Log\File'].Value = $ErrorLogName $SSASServer.ServerProperties['Log\File'].PendingValue = $ErrorLogName $SSASServer.Update() Restart-Service $SSASServices.Name }
我也在http://thomaslarock.com/2015/01/how-to-recycle-the-sql-server-analysis-services-msmdsrv-log-file/上寫了一篇部落格。
高溫高壓