2016-09-29 2 views
0

Ich bin an einer Möglichkeit interessiert, die kleinste Größe zu nehmen, die eine SQL-Protokolldatei verkleinern kann. von diesem Blog zu lesen: http://social.technet.microsoft.com/wiki/contents/articles/22661.sql-server-misleading-database-initial-size-label.aspx Ich verstehe, ich muss irgendwie die Minsize (auch bekannt als Anfangsgröße) Wert aus der Datei Header greifen. Wie erreiche ich das?wie sql minsize -Eigenschaft von Dateiheader über Powershell zu bekommen?

+0

Also, Sie müssen eine Verbindung zu einer Instanz herstellen, erhalten Sie alle Datenbanken und ihre anfängliche Größe, über PowerShell? Sie brauchen nur LOG info oder ROWS? – gofr1

Antwort

1

auf alle Datenbanken und ihre Anfangsgröße, über Powershell auf einige Beispiel bekommen Sie diese verwenden können:

Import-Module SQLPS -DisableNameChecking 
$instance = 'SERVER\INSTANCE' 
$results = @() 

try { 
    $sqlres = Invoke-SQLcmd -Server $instance -Database master 'SELECT [name],(size * 8/1024) InitialSize FROM sys.master_files WHERE [type] = 1' 

    ForEach($st in $sqlres) { 
     $dbinfo = @{    
       Name = $st.Name 
       InitialSize = $st.InitialSize 
     } 
     $results += New-Object PSObject -Property $dbinfo  
    } 
} catch { 
    "error when running Invoke-SQLcmd "+$instance 
    Write-Host($error) 
} 

$results | export-csv -Path D:\sql_db_info.csv -NoTypeInformation 

Namen und Anfangsgröße in D:\sql_db_info.csv Datei Dies schreiben Datenbanken.

HINWEIS: in Abfrage verwende ich [type] = 1, um Informationen über LOG-Dateien zu erhalten, wenn Sie ROWS verwenden müssen [type] = 0, wenn Sie alle benötigen - WHERE-Anweisung entfernen.

Verwandte Themen