¿CREAR BASE DE DATOS en particiones RAW ya no funciona?


16

Estoy intentando crear una base de datos usando dos particiones sin formato, es decir, sin formato.

Microsoft Docs afirma que puede hacer esto, simplemente necesita especificar solo la letra de unidad de la partición sin formato, como en:

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

Sin embargo, SQL Server 2017 devuelve este error:

Msg 5170, Nivel 16, Estado 4, Línea 1
No se puede crear el archivo 'S:' porque ya existe. Cambie la ruta del archivo o el nombre del archivo y vuelva a intentar la operación.
Msg 1802, nivel 16, estado 4, línea 1
CREATE DATABASE falló. Algunos de los nombres de archivos en la lista no se pudieron crear. Verifique los errores relacionados.

La parte pertinente de la documentación dice:

Si el archivo está en una partición sin formato, os_file_name debe especificar solo la letra de unidad de una partición sin formato existente. Solo se puede crear un archivo de datos en cada partición sin formato.

Y sí, la unidad S: y T: son particiones sin formato sin formato que existen en mi sistema:

DISKPART> partición de detalle

Partición 4
Tipo: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Oculto: no
Requerido: No
Atributo: 0000000000000000
Desplazamiento en bytes: 999934656512

  Volumen ### Ltr Etiqueta Fs Tipo Tamaño Estado Información
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volumen 6 T RAW Partición 127 MB Saludable

DISKPART> seleccione partición 3

La partición 3 es ahora la partición seleccionada.

DISKPART> partición de detalle

Partición 3
Tipo: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Oculto: no
Requerido: No
Atributo: 0000000000000000
Desplazamiento en bytes: 1000067825664

  Volumen ### Ltr Etiqueta Fs Tipo Tamaño Estado Información
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volumen 7 S RAW Partición 129 MB Saludable

Al eliminar los dos puntos de las letras de unidad, como en FILENAME = 'S'y FILENAME = 'T', resulta en:

Msg 5105, Nivel 16, Estado 2, Línea 1
Se produjo un error de activación de archivo. El nombre de archivo físico 'S' puede ser incorrecto. Diagnostique y corrija errores adicionales y vuelva a intentar la operación.
Msg 1802, nivel 16, estado 1, línea 1
CREATE DATABASE falló. Algunos de los nombres de archivos en la lista no se pudieron crear. Verificar errores relacionados.

La documentación de SQL Server 2000 muestra el siguiente ejemplo en la CREATE DATABASEsección:

H. Usar particiones sin formato
Este ejemplo crea una base de datos llamada Empleados que usan particiones sin formato. Las particiones sin formato deben existir cuando se ejecuta la instrucción, y solo un archivo puede ir en cada partición sin formato.

    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

Sin embargo, el ejemplo anterior muestra SIZE, MAXSIZEy FILEGROWTHparámetros que claramente no son necesarios para los archivos de datos de SQL Server almacenados en particiones RAW.

Más detalles de la documentación de SQL Server 2000, específicamente sobre unidades sin formato:

Usar particiones sin formato
Microsoft® SQL Server ™ 2000 admite el uso de particiones sin formato para crear archivos de base de datos. Las particiones sin formato son particiones de disco que no han sido formateadas con un sistema de archivos Microsoft Windows NT®, como FAT y NTFS. En algunos casos, el uso de bases de datos creadas en particiones sin formato puede generar un ligero aumento de rendimiento sobre NTFS o FAT. Sin embargo, para la mayoría de las instalaciones, el método preferido es usar archivos creados en particiones NTFS o FAT. Al crear un archivo de base de datos en una partición sin formato, no especifique los nombres físicos de los archivos que componen la base de datos; solo especifica las letras de unidad de los discos en los que se deben crear los archivos de la base de datos. Si está utilizando Microsoft Windows® 2000 Server, puede crear unidades montadas para apuntar a particiones sin formato. Cuando monta una unidad local en una carpeta vacía, Windows 2000 asigna una ruta de unidad a la unidad en lugar de una letra de unidad. Las unidades montadas no están sujetas al límite de 26 unidades impuesto por las letras de unidad; por lo tanto, puede usar un número ilimitado de particiones sin formato. Cuando crea un archivo de base de datos en una unidad montada, debe finalizar la ruta de la unidad al nombre del archivo con una barra diagonal inversa (), por ejemplo, E: \ Nombre de la muestra. Para obtener información sobre cómo crear una unidad montada, consulte la documentación de Windows 2000 Server.

Hay varias limitaciones a tener en cuenta al usar particiones sin formato:
solo se puede crear un archivo de base de datos en cada partición sin formato. La partición lógica debe configurarse como un único archivo de base de datos, porque no hay un sistema de archivos en la partición sin formato.

Las operaciones estándar del sistema de archivos como copiar, mover y eliminar no se pueden usar con particiones sin formato.

Los archivos de base de datos ubicados en particiones sin formato no se pueden hacer una copia de seguridad con la utilidad de copia de seguridad de Windows NT. Sin embargo, las bases de datos de SQL Server o las copias de seguridad del registro de transacciones aún se pueden crear.

Los archivos de base de datos en particiones sin formato no se pueden expandir automáticamente. Inicialmente cree la base de datos en su tamaño completo o expanda manualmente los archivos de la base de datos. Para obtener más información, vea Expandir una base de datos.

Solo se pueden usar particiones con letras, como E :, o unidades montadas, como E: \ Nombre de muestra \. Los dispositivos numerados no se pueden usar.

Los servicios del sistema de archivos, como el reemplazo de bloques defectuosos, no están disponibles con particiones sin formato.


Esto fue inspirado por el post de Brent Ozar acerca de SQL Server 6.5 , lo que hizo soportar particiones primas


3
Debe usar RPaaS - Raw Partition as a Service, o ARPL - Azure Raw Partition Lake para que funcione con SS 2017 ;-)
SQLRaptor

Respuestas:


3

Puedo confirmar que las particiones sin procesar funcionan, como se esperaba, con SQL Server 2000 SP4 en Windows XP x64.

Acabo de ejecutar lo siguiente a través de Query Analyzer (shudders) contra SQL Server 2000 SP4:

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

Los resultados:

El proceso CREATE DATABASE está asignando 0,64 MB en el disco 't_primary'.
El proceso CREATE DATABASE está asignando 1.00 MB en el disco 't_log'.

El CREATE DATABASE tcódigo anterior funciona con SQL Server 2005 en Windows XP x64; la única salida esCommand(s) completed successfully.

SSMS muestra lo siguiente cuando mira los archivos de la base de datos:

ingrese la descripción de la imagen aquí

¿No es eso tan genial como un cubo de tornillos?

SQL Server 2012 SP1 en Windows Server 2012 Standard, con la cuenta de servicio de SQL Server Management Studio establecida en "Sistema local":

ingrese la descripción de la imagen aquí

SQL Server 2014 (12.0.5000.0) que se ejecuta como "Sistema local" en Windows Server 2012 exhibe el mismo comportamiento que SQL Server 2017; es decir, devuelve este mensaje de error:

Msg 5170, Nivel 16, Estado 4, Línea 1
No se puede crear el archivo 'E:' porque ya existe. Cambie la ruta del archivo o el nombre del archivo y vuelva a intentar la operación.
Msg 1802, nivel 16, estado 4, línea 1
CREATE DATABASE falló. Algunos de los nombres de archivos en la lista no se pudieron crear. Verificar errores relacionados.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.