CREA DATABASE su partizioni RAW non funziona più?


16

Sto tentando di creare un database utilizzando due partizioni non formattate, ovvero non formattate.

Microsoft Docs afferma che puoi farlo, devi semplicemente specificare solo la lettera di unità della partizione non elaborata, come in:

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

Tuttavia, SQL Server 2017 restituisce questo errore:

Messaggio 5170, livello 16, stato 4, riga 1
Impossibile creare il file "S:" perché esiste già. Modificare il percorso del file o il nome del file e ritentare l'operazione.
Messaggio 1802, livello 16, stato 4, riga 1
CREATE DATABASE non riuscito. Non è stato possibile creare alcuni nomi di file elencati. Verifica errori correlati.

Il bit pertinente della documentazione afferma:

Se il file si trova su una partizione raw, os_file_name deve specificare solo la lettera di unità di una partizione raw esistente. È possibile creare un solo file di dati su ciascuna partizione non elaborata.

E sì, unità S: e T: sono entrambe partizioni non formattate che esistono nel mio sistema:

DISKPART> partizione dettagli

Partizione 4
Tipo: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Nascosto: No
Richiesto: no
Attrib: 0000000000000000
Offset in byte: 999934656512

  Volume ### Ltr Etichetta Fs Tipo Dimensione Stato Informazioni
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 6 T Partizione RAW 127 MB salutari

DISKPART> seleziona partizione 3

La partizione 3 è ora la partizione selezionata.

DISKPART> partizione dettagli

Partizione 3
Tipo: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Nascosto: No
Richiesto: no
Attrib: 0000000000000000
Offset in byte: 1000067825664

  Volume ### Ltr Etichetta Fs Tipo Dimensione Stato Informazioni
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 7 S Partizione RAW 129 MB In salute

La rimozione dei due punti dalle lettere dell'unità, come in FILENAME = 'S'e FILENAME = 'T', comporta:

Messaggio 5105, livello 16, stato 2, riga 1
Si è verificato un errore di attivazione del file. Il nome del file fisico 'S' potrebbe non essere corretto. Diagnosticare e correggere errori aggiuntivi e riprovare a eseguire l'operazione.
Messaggio 1802, livello 16, stato 1, riga 1
CREATE DATABASE non riuscito. Non è stato possibile creare alcuni nomi di file elencati. Verifica errori correlati.

La documentazione di SQL Server 2000 mostra il seguente esempio nella CREATE DATABASEsezione:

H. Usa partizioni grezze In
questo esempio viene creato un database chiamato Employees che utilizza partizioni grezze. Le partizioni non elaborate devono esistere quando viene eseguita l'istruzione e su ogni partizione non elaborata può essere presente un solo file.

    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

Tuttavia, l'esempio mostra di cui sopra SIZE, MAXSIZEe FILEGROWTHdei parametri che non sono chiaramente necessari per i file di dati di SQL Server memorizzati su partizioni RAW.

Ulteriori dettagli dalla documentazione di SQL Server 2000, in particolare per quanto riguarda le unità raw:

Utilizzo di partizioni non elaborate
Microsoft® SQL Server ™ 2000 supporta l'uso di partizioni non elaborate per la creazione di file di database. Le partizioni non elaborate sono partizioni del disco che non sono state formattate con un file system di Microsoft Windows NT®, come FAT e NTFS. In alcuni casi, l'utilizzo di database creati su partizioni non elaborate può comportare un leggero aumento delle prestazioni su NTFS o FAT. Tuttavia, per la maggior parte delle installazioni il metodo preferito è utilizzare i file creati su partizioni NTFS o FAT. Quando si crea un file di database su una partizione non elaborata, non si specificano i nomi fisici dei file che compongono il database; si specificano solo le lettere di unità dei dischi su cui devono essere creati i file di database. Se si utilizza Microsoft Windows® 2000 Server, è possibile creare unità montate per puntare a partizioni non elaborate. Quando si monta un'unità locale in una cartella vuota, Windows 2000 assegna un percorso all'unità anziché una lettera di unità. Le unità montate non sono soggette al limite di 26 unità imposto dalle lettere di unità; pertanto, è possibile utilizzare un numero illimitato di partizioni non elaborate. Quando si crea un file di database su un'unità montata, è necessario terminare il percorso dell'unità al nome del file con una barra rovesciata finale (), ad esempio E: \ Nome campione. Per informazioni sulla creazione di un'unità montata, consultare la documentazione di Windows 2000 Server.

Esistono diverse limitazioni da considerare quando si utilizzano partizioni non elaborate: è
possibile creare un solo file di database su ciascuna partizione non elaborata. La partizione logica deve essere configurata come un singolo file di database, poiché sulla partizione non è presente alcun file system.

Le operazioni standard del file system come copia, spostamento ed eliminazione non possono essere utilizzate con partizioni non elaborate.

Non è possibile eseguire il backup dei file di database che si trovano su partizioni non elaborate utilizzando l'utilità di backup di Windows NT. Tuttavia, è ancora possibile creare backup del database o del registro delle transazioni di SQL Server.

I file di database su partizioni non elaborate non possono essere espansi automaticamente. Inizialmente creare il database a dimensione intera o espandere manualmente i file del database. Per ulteriori informazioni, consultare Espansione di un database.

È possibile utilizzare solo partizioni con lettere, come E: oppure unità montate, come E: \ Nome campione \. I dispositivi numerati non possono essere utilizzati.

I servizi di file system come la sostituzione di blocchi danneggiati non sono disponibili con partizioni non elaborate.


Ciò è stato ispirato dal post di Brent Ozar su SQL Server 6.5 , che supportava le partizioni non elaborate


3
È necessario usare RPaaS - Raw Partition as a Service o ARPL - Azure Raw Partition Lake per funzionare con SS 2017 ;-)
SQLRaptor

Risposte:


3

Posso confermare il funzionamento delle partizioni non elaborate, come previsto, con SQL Server 2000 SP4 su Windows XP x64.

Ho appena eseguito il seguente tramite Query Analyzer (shudder) contro SQL Server 2000 SP4:

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

I risultati:

Il processo CREATE DATABASE sta allocando 0,64 MB sul disco 't_primary'.
Il processo CREATE DATABASE sta allocando 1,00 MB sul disco 't_log'.

Il CREATE DATABASE tcodice sopra funziona con SQL Server 2005 su Windows XP x64; l'unico output èCommand(s) completed successfully.

SSMS mostra quanto segue quando si guardano i file di database:

inserisci qui la descrizione dell'immagine

Non è bello come un secchio di bulloni?

SQL Server 2012 SP1 su Windows Server 2012 Standard, con l'account del servizio SQL Server Management Studio impostato su "Sistema locale":

inserisci qui la descrizione dell'immagine

SQL Server 2014 (12.0.5000.0) in esecuzione come "Sistema locale" su Windows Server 2012 presenta lo stesso comportamento di SQL Server 2017; cioè restituisce questo messaggio di errore:

Messaggio 5170, livello 16, stato 4, riga 1
Impossibile creare il file "E:" perché esiste già. Modificare il percorso del file o il nome del file e ritentare l'operazione.
Messaggio 1802, livello 16, stato 4, riga 1
CREATE DATABASE non riuscito. Non è stato possibile creare alcuni nomi di file elencati. Verifica errori correlati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.