DTC-SQL-FAQ

Verschieben des LOG Files PDF Drucken E-Mail
  
Mittwoch, den 14. Juli 2010 um 13:04 Uhr

Um ein optimales I/O Verhalten für den SQL Server zu grantieren ist allgemein bekannt, dass das LOG File auf eine separates Laufwerk gelegt werden sollte.

Ab und an stellt man fest, dass dies zunächst übersehen wurde, oder man fügt auch erst nachträglich ein zusätzliches Laufwerk  hinzu, und muss nun die LOG-Datei verschieben.

Grundsätzlich verfügt jede SQL Server Datenbank über zwei Dateien. Die Primary Datenbank Datei und das LOG File.

Das Transaction LOG ist naturgemäß eine sequentielle Datei während die Datenbank an sich mit Random Zugriffen arbeitet.  Legt man nun die LOG Datei auf ein eigenes Laufwerk mit eigenem Controller erreicht man ein optimales Verhalten für die LOG Datei.

Anm.: Ersellen Sie nicht mehrere Filegroups für die LOG Datei. Auf Grund des sequentiellen Zugriffs hätte dies einen negativen Effekt.

Muss die LOG Datei nachträglich auf ein anderes Laufwerk verschoben werden, so kann das mit reinen T-SQL Kommandos oder auch über das SSMS (SQL Server Management Studio) erfolgen.

 

Folgende Punkte sollten Sie zuvor durchführen bzw. überprüfen:

  • Notieren Sie Position und Größe der Datenbankdatei.
  • Notieren Sie Position und Größe der LOG-Datei
  • Notieren Sie zukünftige Position und Größe der LOG-Datei
  • Legen Sie eine Downtime fest in der Sie die Aktionen durchführen wollen.
  • Stellen Sie sicher das die Datenbank kein Teil einer Replikation eines Snapshots oder einer Spiegelung ist.
  • Stellen Sie sicher das Sie über die Rolle db_owner verfügen.

 

Das grundsätzliche Vorgehen zum Verschieben des LOG-Files:

  1. Datenbank abhängen
  2. LOG-File verschieben
  3. Datenbank wieder anfügen. Hierbei geben Sie die neue Position des LOG-Files an.

Beispiel Durchführen mit T-SQL:

1. Datenbank und LOG Informationen abrufen:

 

USE dtcTermin
go
SP_HELPFILE
go

 

 

Ausgabe:

 

2. Nach dem Sie diese Informationen und mit den Anwendern die Downtime ausgehandelt haben:

 

USE MASTER
GO
-- Set database to single user mode
ALTER DATABASE dtcTermin
SET SINGLE_USER
GO
-- Detach the database
SP_DETACH_DB 'dtcTermin'
GO

 

 

3. Nach dem die Datenbank nun angehängt wurde können Sie die Datei mit dem Explorer verschieben
und anschliessend wieder anhängen:

 

USE master
GO
- Now Attach the DATABASE
SP_ATTACH_DB 'dtcTermin',
'C:\dbs\MSSQL\data\dtcTermin_Data.MDF'
'D:\dbs\log\dtcTermin_Log.ldf'

GO

 

 

Aktualisiert ( Mittwoch, den 28. Juli 2010 um 15:20 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Wer ist online

Wir haben 9 Gäste online
2432
HeuteHeute17
GesternGestern49
Diese WocheDiese Woche17
Dieser MonatDieser Monat238
TotalTotal2432
Statistik created: c
IP.:38.107.191.102
US
UNITED STATES
US
Copyright © 2010 DTC-SQL-FAQ. Alle Rechte vorbehalten.
Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software.