Sql-Server-2008-R2

巨大的分析服務日誌文件:msmdsrv.log

  • January 14, 2015

我剛剛發現我們的產品分析服務正在寫入大小為 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/上寫了一篇部落格。

高溫高壓

引用自:https://dba.stackexchange.com/questions/82624