CREATE DATABASE auf RAW-Partitionen funktioniert nicht mehr?

16

Ich versuche, eine Datenbank mit zwei unformatierten Partitionen zu erstellen.

Microsoft Docs gibt an, dass Sie dies tun können. Sie müssen lediglich den Laufwerksbuchstaben der unformatierten Partition angeben, wie in:

CREATE DATABASE DirectDevice 
ON (NAME = DirectDevice_system, FILENAME = 'S:')
LOG ON (NAME = DirectDevice_log, FILENAME = 'T:')

SQL Server 2017 gibt jedoch diesen Fehler zurück:

Meldung 5170, Ebene 16, Status 4, Zeile 1 Die
Datei 'S:' kann nicht erstellt werden, da sie bereits vorhanden ist. Ändern Sie den Dateipfad oder den Dateinamen und wiederholen Sie den Vorgang.
Meldung 1802, Ebene 16, Status 4, Zeile 1
ERSTELLEN DER DATENBANK fehlgeschlagen. Einige aufgelistete Dateinamen konnten nicht erstellt werden. Überprüfen Sie die zugehörigen Fehler.

Der relevante Teil der Dokumentation besagt:

Wenn sich die Datei auf einer unformatierten Partition befindet, darf os_dateiname nur den Laufwerksbuchstaben einer vorhandenen unformatierten Partition angeben. Auf jeder Raw-Partition kann nur eine Datendatei erstellt werden.

Und ja, Laufwerk S: und T: sind beide unformatierte unformatierte Partitionen, die in meinem System vorhanden sind:

DISKPART> Detailpartition

Partition 4
Geben Sie Folgendes ein: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Versteckt: Nein
Erforderlich: Nein
Attrib: 0000000000000000
Offset in Bytes: 999934656512

  Volumen ### Ltr Label Fs Typ Größe Status Info
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 6 T RAW-Partition 127 MB fehlerfrei

DISKPART> Partition 3 auswählen

Partition 3 ist jetzt die ausgewählte Partition.

DISKPART> Detailpartition

Partition 3
Geben Sie Folgendes ein: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Versteckt: Nein
Erforderlich: Nein
Attrib: 0000000000000000
Offset in Bytes: 1000067825664

  Volumen ### Ltr Label Fs Typ Größe Status Info
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 7 S RAW-Partition 129 MB fehlerfrei

Das Entfernen des Doppelpunkts aus den Laufwerksbuchstaben wie in FILENAME = 'S'und FILENAME = 'T'führt zu:

Meldung 5105, Ebene 16, Status 2, Zeile 1
Ein Fehler bei der Dateiaktivierung ist aufgetreten. Der physische Dateiname 'S' ist möglicherweise falsch. Diagnostizieren und korrigieren Sie zusätzliche Fehler und wiederholen Sie den Vorgang.
Meldung 1802, Ebene 16, Status 1, Zeile 1
ERSTELLEN DER DATENBANK fehlgeschlagen. Einige aufgelistete Dateinamen konnten nicht erstellt werden. Überprüfen Sie die zugehörigen Fehler.

Die SQL Server 2000-Dokumentation zeigt das folgende Beispiel im CREATE DATABASEAbschnitt:

H. Verwenden von unformatierten Partitionen In
diesem Beispiel wird eine Datenbank mit dem Namen Employees mithilfe von unformatierten Partitionen erstellt. Die unformatierten Partitionen müssen vorhanden sein, wenn die Anweisung ausgeführt wird, und auf jeder unformatierten Partition kann nur eine Datei gespeichert werden.

    USE master
    GO
    CREATE DATABASE Employees
    ON
    ( NAME = Empl_dat,
        FILENAME = 'f:',
        SIZE = 10,
        MAXSIZE = 50,
        FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
        FILENAME = 'g:',
        SIZE = 5MB,
        MAXSIZE = 25MB,
        FILEGROWTH = 5MB )
    GO

Das obige Beispiel zeigt jedoch SIZE, MAXSIZEund FILEGROWTHParameter, die für SQL Server-Datendateien, die auf RAW-Partitionen gespeichert sind, eindeutig nicht erforderlich sind.

Weitere Details aus der SQL Server 2000-Dokumentation, insbesondere zu Raw-Laufwerken:

Verwenden von unformatierten Partitionen
Microsoft® SQL Server ™ 2000 unterstützt die Verwendung von unformatierten Partitionen zum Erstellen von Datenbankdateien. Raw-Partitionen sind Festplattenpartitionen, die nicht mit einem Microsoft Windows NT®-Dateisystem wie FAT und NTFS formatiert wurden. In einigen Fällen kann die Verwendung von Datenbanken, die auf unformatierten Partitionen erstellt wurden, zu einem leichten Leistungsgewinn gegenüber NTFS oder FAT führen. Bei den meisten Installationen werden jedoch bevorzugt Dateien verwendet, die auf NTFS- oder FAT-Partitionen erstellt wurden. Wenn Sie eine Datenbankdatei auf einer unformatierten Partition erstellen, geben Sie nicht die physischen Namen der Dateien an, aus denen die Datenbank besteht. Sie geben nur die Laufwerksbuchstaben der Datenträger an, auf denen die Datenbankdateien erstellt werden sollen. Wenn Sie Microsoft Windows® 2000 Server verwenden, können Sie bereitgestellte Laufwerke erstellen, um auf unformatierte Partitionen zu verweisen. Wenn Sie ein lokales Laufwerk in einem leeren Ordner mounten, Windows 2000 weist dem Laufwerk einen Laufwerkspfad zu und keinen Laufwerksbuchstaben. Bereitgestellte Laufwerke unterliegen nicht dem durch Laufwerksbuchstaben festgelegten Limit von 26 Laufwerken. Daher können Sie eine unbegrenzte Anzahl von unformatierten Partitionen verwenden. Wenn Sie eine Datenbankdatei auf einem bereitgestellten Laufwerk erstellen, müssen Sie den Laufwerkspfad zum Dateinamen mit einem abschließenden Backslash () beenden, z. B. E: \ Beispielname. Informationen zum Erstellen eines bereitgestellten Laufwerks finden Sie in der Windows 2000 Server-Dokumentation.

Bei der Verwendung von unformatierten Partitionen sind verschiedene Einschränkungen zu beachten:
Auf jeder unformatierten Partition kann nur eine Datenbankdatei erstellt werden. Die logische Partition muss als einzelne Datenbankdatei konfiguriert werden, da sich auf der unformatierten Partition kein Dateisystem befindet.

Standard-Dateisystemoperationen wie Kopieren, Verschieben und Löschen können nicht mit unformatierten Partitionen verwendet werden.

Datenbankdateien auf unformatierten Partitionen können nicht mit dem Windows NT-Sicherungsdienstprogramm gesichert werden. Es können jedoch weiterhin SQL Server-Datenbank- oder Transaktionsprotokollsicherungen erstellt werden.

Datenbankdateien auf unformatierten Partitionen können nicht automatisch erweitert werden. Erstellen Sie die Datenbank zunächst in voller Größe oder erweitern Sie die Datenbankdateien manuell. Weitere Informationen finden Sie unter Erweitern einer Datenbank.

Es können nur Partitionen mit Buchstaben wie E: oder bereitgestellte Laufwerke wie E: \ Beispielname \ verwendet werden. Nummerierte Geräte können nicht verwendet werden.

Dateisystemdienste wie das Ersetzen fehlerhafter Blöcke sind bei unformatierten Partitionen nicht verfügbar.


Dies wurde von inspiriert Brent Ozar der Post über SQL Server 6.5 , das tat Rohpartitionen unterstützen

Max Vernon
quelle
3
Sie müssen RPaaS - Raw Partition als Dienst oder ARPL - Azure Raw Partition Lake verwenden, damit es mit SS 2017
funktioniert ;-)

Antworten:

3

Ich kann bestätigen, dass Raw-Partitionen erwartungsgemäß mit SQL Server 2000 SP4 unter Windows XP x64 funktionieren.

Ich habe gerade Folgendes durch Query Analyzer (Shudders) gegen SQL Server 2000 SP4 ausgeführt:

CREATE DATABASE t
ON PRIMARY 
(
    NAME = t_primary
    , FILENAME = 'E:'
)
LOG ON 
(
    NAME = t_log
    , FILENAME = 'F:'
);

Die Ergebnisse:

Der CREATE DATABASE-Prozess reserviert 0,64 MB auf der Festplatte 't_primary'.
Der CREATE DATABASE-Prozess weist 1,00 MB auf der Festplatte 't_log' zu.

Der obige CREATE DATABASE tCode funktioniert mit SQL Server 2005 unter Windows XP x64. Die einzige Ausgabe istCommand(s) completed successfully.

SSMS zeigt beim Betrachten der Datenbankdateien Folgendes:

Bildbeschreibung hier eingeben

Ist das nicht cool wie ein Eimer Bolzen?

SQL Server 2012 SP1 unter Windows Server 2012 Standard, wobei das SQL Server Management Studio-Dienstkonto auf "Lokales System" festgelegt ist:

Bildbeschreibung hier eingeben

SQL Server 2014 (12.0.5000.0), der unter Windows Server 2012 als "Lokales System" ausgeführt wird, weist dasselbe Verhalten wie SQL Server 2017 auf. Das heißt, es gibt diese Fehlermeldung zurück:

Meldung 5170, Ebene 16, Status 4, Zeile 1 Die
Datei 'E:' kann nicht erstellt werden, da sie bereits vorhanden ist. Ändern Sie den Dateipfad oder den Dateinamen und wiederholen Sie den Vorgang.
Meldung 1802, Ebene 16, Status 4, Zeile 1
ERSTELLEN DER DATENBANK fehlgeschlagen. Einige aufgelistete Dateinamen konnten nicht erstellt werden. Überprüfen Sie die zugehörigen Fehler.

Max Vernon
quelle