CRÉER UNE BASE DE DONNÉES sur les partitions RAW ne fonctionne plus?


16

J'essaie de créer une base de données en utilisant deux partitions brutes, c'est-à-dire non formatées.

Microsoft Docs indique que vous pouvez le faire, vous devez simplement spécifier uniquement la lettre de lecteur de la partition brute, comme dans:

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

Cependant, SQL Server 2017 renvoie cette erreur:

Msg 5170, niveau 16, état 4, ligne 1
Impossible de créer le fichier «S:» car il existe déjà. Modifiez le chemin d'accès au fichier ou le nom du fichier et recommencez l'opération.
Msg 1802, niveau 16, état 4, ligne 1
CREATE DATABASE a échoué. Certains noms de fichiers répertoriés n'ont pas pu être créés. Vérifiez les erreurs associées.

La partie pertinente de la documentation indique:

Si le fichier se trouve sur une partition brute, os_file_name doit spécifier uniquement la lettre de lecteur d'une partition brute existante. Un seul fichier de données peut être créé sur chaque partition brute.

Et oui, les lecteurs S: et T: sont tous les deux des partitions brutes non formatées qui existent dans mon système:

DISKPART> partition de détail

Partition 4
Type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Caché: Non
Obligatoire: non
Attrib: 0000000000000000
Décalage en octets: 999934656512

  Volume ### Ltr Label Fs Type Size Status Info
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 6 T Partition RAW 127 Mo en bonne santé

DISKPART> sélectionner la partition 3

La partition 3 est maintenant la partition sélectionnée.

DISKPART> partition de détail

Partition 3
Type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Caché: Non
Obligatoire: non
Attrib: 0000000000000000
Décalage en octets: 1000067825664

  Volume ### Ltr Label Fs Type Size Status Info
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 7 S Partition RAW 129 Mo en bonne santé

La suppression des deux points des lettres de lecteur, comme dans FILENAME = 'S'et FILENAME = 'T', entraîne:

Msg 5105, niveau 16, état 2, ligne 1
Une erreur d'activation de fichier s'est produite. Le nom de fichier physique «S» est peut-être incorrect. Diagnostiquez et corrigez les erreurs supplémentaires et recommencez l'opération.
Msg 1802, niveau 16, état 1, ligne 1
CREATE DATABASE a échoué. Certains noms de fichiers répertoriés n'ont pas pu être créés. Vérifiez les erreurs associées.

La documentation de SQL Server 2000 montre l'exemple suivant sous la CREATE DATABASEsection:

H. Utiliser des partitions brutes
Cet exemple crée une base de données appelée Employés utilisant des partitions brutes. Les partitions brutes doivent exister lorsque l'instruction est exécutée et un seul fichier peut aller sur chaque partition brute.

    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

Cependant, l'exemple ci-dessus montre SIZE, MAXSIZEet les FILEGROWTHparamètres qui ne sont clairement pas requis pour les fichiers de données SQL Server stockés sur des partitions RAW.

Plus de détails dans la documentation de SQL Server 2000, en particulier concernant les lecteurs bruts:

Utilisation de partitions brutes
Microsoft® SQL Server ™ 2000 prend en charge l'utilisation de partitions brutes pour créer des fichiers de base de données. Les partitions brutes sont des partitions de disque qui n'ont pas été formatées avec un système de fichiers Microsoft Windows NT®, tel que FAT et NTFS. Dans certains cas, l'utilisation de bases de données créées sur des partitions brutes peut entraîner un léger gain de performances par rapport à NTFS ou FAT. Cependant, pour la plupart des installations, la méthode préférée consiste à utiliser des fichiers créés sur des partitions NTFS ou FAT. Lorsque vous créez un fichier de base de données sur une partition brute, vous ne spécifiez pas les noms physiques des fichiers comprenant la base de données; vous spécifiez uniquement les lettres de lecteur des disques sur lesquels les fichiers de base de données doivent être créés. Si vous utilisez Microsoft Windows® 2000 Server, vous pouvez créer des lecteurs montés pour pointer vers des partitions brutes. Lorsque vous montez un lecteur local dans un dossier vide, Windows 2000 attribue un chemin d'accès au lecteur plutôt qu'une lettre de lecteur. Les lecteurs montés ne sont pas soumis à la limite de 26 lecteurs imposée par les lettres de lecteur; par conséquent, vous pouvez utiliser un nombre illimité de partitions brutes. Lorsque vous créez un fichier de base de données sur un lecteur monté, vous devez terminer le chemin d'accès du lecteur au nom de fichier avec une barre oblique inverse (), par exemple, E: \ Sample name. Pour plus d'informations sur la création d'un lecteur monté, consultez la documentation de Windows 2000 Server.

Il existe plusieurs limitations à prendre en compte lors de l'utilisation de partitions brutes:
un seul fichier de base de données peut être créé sur chaque partition brute. La partition logique doit être configurée en tant que fichier de base de données unique, car il n'y a pas de système de fichiers sur la partition brute.

Les opérations standard du système de fichiers telles que la copie, le déplacement et la suppression ne peuvent pas être utilisées avec des partitions brutes.

Les fichiers de base de données situés sur des partitions brutes ne peuvent pas être sauvegardés à l'aide de l'utilitaire de sauvegarde Windows NT. Cependant, des sauvegardes de bases de données SQL Server ou de journaux de transactions peuvent toujours être créées.

Les fichiers de base de données sur les partitions brutes ne peuvent pas être développés automatiquement. Créez initialement la base de données à sa taille maximale ou développez manuellement les fichiers de base de données. Pour plus d'informations, voir Développement d'une base de données.

Seules les partitions en lettres, telles que E :, ou les lecteurs montés, tels que E: \ Sample name \ peuvent être utilisés. Les appareils numérotés ne peuvent pas être utilisés.

Les services de système de fichiers tels que le mauvais remplacement de bloc ne sont pas disponibles avec les partitions brutes.


Cela a été inspiré par le post de Brent Ozar sur SQL Server 6.5 , qui prenait en charge les partitions brutes


3
Vous devez utiliser RPaaS - Raw Partition as a Service ou ARPL - Azure Raw Partition Lake pour qu'il fonctionne avec SS 2017 ;-)
SQLRaptor

Réponses:


3

Je peux confirmer que les partitions brutes fonctionnent, comme prévu, avec SQL Server 2000 SP4 sous Windows XP x64.

Je viens d'exécuter ce qui suit via Query Analyzer (shudders) contre SQL Server 2000 SP4:

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

Les resultats:

Le processus CREATE DATABASE alloue 0,64 Mo sur le disque 't_primary'.
Le processus CREATE DATABASE alloue 1,00 Mo sur le disque 't_log'.

Le CREATE DATABASE tcode ci-dessus fonctionne avec SQL Server 2005 sous Windows XP x64; la seule sortie estCommand(s) completed successfully.

SSMS affiche les éléments suivants lorsque vous examinez les fichiers de base de données:

entrez la description de l'image ici

N'est-ce pas aussi cool qu'un seau de boulons?

SQL Server 2012 SP1 sur Windows Server 2012 Standard, avec le compte de service SQL Server Management Studio défini sur «Système local»:

entrez la description de l'image ici

SQL Server 2014 (12.0.5000.0) s'exécutant en tant que «système local» sur Windows Server 2012 présente le même comportement que SQL Server 2017; c'est-à-dire qu'il renvoie ce message d'erreur:

Msg 5170, niveau 16, état 4, ligne 1
Impossible de créer le fichier «E:» car il existe déjà. Modifiez le chemin d'accès au fichier ou le nom du fichier et recommencez l'opération.
Msg 1802, niveau 16, état 4, ligne 1
CREATE DATABASE a échoué. Certains noms de fichiers répertoriés n'ont pas pu être créés. Vérifiez les erreurs associées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.