| Datenbank teilweise offlline |
|
|
|
| SQL Server - SQL 2005 Administration | |||
| Geschrieben von: Fumus | |||
| Donnerstag, 29. Mai 2008 um 21:02 | |||
|
Seit SQL 2005 ist eine Datenbank bereits dann online, wenn die Primary Dateigruppe intakt ist. Was aber passiert, wenn eine der zusätzlich erstellten Dateigruppen defekt ist? Lösung gesucht...
In der Praxis werden bei sehr grossen Datenbanken oftmals Dateigruppen erstellt, um eine physikalische Verteilung Daten/Tabellen zu erreichen. Beispielsweise konnte man Stammdaten auf HDD 1 legen, während die Bewegungsdaten auf HDD 2 lagen. Dafür war es notwendig Tabellen auf die dementsprechnenden Dateigruppen zu anzulegen. Jedoch steht unter SQL Server 2000 eine DB nicht zur Verfügung, wenn eine der Dateigruppen defekt ist.
ALTER DATABASE MeineDB ADD FILEGROUP [Stamm] create table kunden Nun ist aber diese Dateigruppe, sprich die Datei "stammdaten.ndf" defekt. Startet der SQL Server, steht die DB zunächst nicht zur Verfügung. Dieser Umstand ist aber unter SQL Server 2005 wie folgt zu beheben. --defekte/fehlende Datei offline setzen und anschliessend die Datenbank wieder online schalten alter database meineDB Somit steht die Datenbank komplett zur Verfügung. Lediglich die betroffenden Tabellen der fehlenden Datei stehen nicht zur Verfügung. Der "Trick" kann sogar noch ausgebaut werden. Falls für große Tabellen eine Partitionierung (horizontales Splitten einer Tabelle auf mehrere Dateigruppen) vorgenommen worden ist, würde sogar eine Tabelle teilweise zur Verfügung gestellt werden können. Bsp: Tabelle Umsatz...besteht aus 3 Dateigruppen: Umsatz2003, Umsatz2004 und Umsatz2005. Als Ergebnis für select * from Umsatz erhalten wir dennoch Werte. Sogar update und Insert funktionieren tadellos bei den vorhanden Werten. --> Tab: Umsatz Summe | Kunden | Jahr (Zum Thema: "Wie partitioniere ich Tabelle horiontal" wird hier demnächst ein eigener Artikel erscheinen.) Für den Restore der DB ist es allerdings von Nöten eine Sicherung der Dateigruppen zu haben und sowie eine aktuelle Sicherung des Transaktionsprotokolls.
|




