Estou tentando criar um banco de dados usando duas partições brutas, ou seja, não formatadas.
O Microsoft Docs afirma que você pode fazer isso, basta especificar apenas a letra da unidade da partição bruta, como em:
CREATE DATABASE DirectDevice
ON (NAME = DirectDevice_system, FILENAME = 'S:')
LOG ON (NAME = DirectDevice_log, FILENAME = 'T:')
No entanto, o SQL Server 2017 retorna este erro:
Msg 5170, nível 16, estado 4, linha 1
Não é possível criar o arquivo 'S:' porque ele já existe. Altere o caminho ou o nome do arquivo e tente novamente a operação.
Msg 1802, nível 16, estado 4, linha 1
CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.
O bit pertinente da documentação declara:
Se o arquivo estiver em uma partição bruta, os_file_name deve especificar apenas a letra da unidade de uma partição bruta existente. Somente um arquivo de dados pode ser criado em cada partição bruta.
E sim, a unidade S: e T: são ambas partições brutas não formatadas que existem no meu sistema:
DISKPART> partição de detalhes Partição 4 Tipo: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 Oculto: Não Obrigatório: Não Atributo: 0000000000000000 Deslocamento em bytes: 999934656512 Volume ### Ltr Etiqueta Fs Tipo Tamanho Status Informações ---------- --- ----------- ----- ---------- ------- ---- ----- -------- * Volume 6 T Partição RAW 127 MB Saudável DISKPART> selecione a partição 3 A partição 3 agora é a partição selecionada. DISKPART> partição de detalhes Partição 3 Tipo: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 Oculto: Não Obrigatório: Não Atributo: 0000000000000000 Deslocamento em bytes: 1000067825664 Volume ### Ltr Etiqueta Fs Tipo Tamanho Status Informações ---------- --- ----------- ----- ---------- ------- ---- ----- -------- * Partição RAW S 7 Volume 129 MB Saudável
A remoção dos dois pontos das letras da unidade, como em FILENAME = 'S'
e FILENAME = 'T'
, resulta em:
Msg 5105, Nível 16, Estado 2, Linha 1
Ocorreu um erro de ativação do arquivo. O nome do arquivo físico 'S' pode estar incorreto. Diagnostique e corrija erros adicionais e tente novamente a operação.
Msg 1802, nível 16, estado 1, linha 1
CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.
A documentação do SQL Server 2000 mostra o seguinte exemplo na CREATE DATABASE
seção:
H. Usar partições brutas
Este exemplo cria um banco de dados chamado Funcionários usando partições brutas. As partições brutas devem existir quando a instrução é executada e apenas um arquivo pode ir em cada partição bruta.
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
No entanto, o exemplo mostra acima SIZE
, MAXSIZE
, e FILEGROWTH
parâmetros que claramente não são necessários para o SQL Server arquivos de dados armazenados em partições RAW.
Mais detalhes da documentação do SQL Server 2000, especificamente sobre unidades brutas:
Usando partições brutas
O Microsoft® SQL Server ™ 2000 suporta o uso de partições brutas para criar arquivos de banco de dados. Partições brutas são partições de disco que não foram formatadas com um sistema de arquivos do Microsoft Windows NT®, como FAT e NTFS. Em alguns casos, o uso de bancos de dados criados em partições brutas pode gerar um pequeno ganho de desempenho em relação ao NTFS ou FAT. No entanto, para a maioria das instalações, o método preferido é usar arquivos criados em partições NTFS ou FAT. Ao criar um arquivo de banco de dados em uma partição bruta, você não especifica os nomes físicos dos arquivos que compõem o banco de dados; você especifica apenas as letras da unidade dos discos nos quais os arquivos do banco de dados devem ser criados. Se você estiver usando o Microsoft Windows® 2000 Server, poderá criar unidades montadas para apontar para partições brutas. Quando você monta uma unidade local em uma pasta vazia, O Windows 2000 atribui um caminho para a unidade em vez de uma letra da unidade. As unidades montadas não estão sujeitas ao limite de 26 unidades imposto pelas letras da unidade; portanto, você pode usar um número ilimitado de partições brutas. Ao criar um arquivo de banco de dados em uma unidade montada, você deve finalizar o caminho da unidade para o nome do arquivo com uma barra invertida à direita (), por exemplo, E: \ Sample name. Para obter informações sobre como criar uma unidade montada, consulte a documentação do Windows 2000 Server.Existem várias limitações a serem consideradas ao usar partições brutas:
Apenas um arquivo de banco de dados pode ser criado em cada partição bruta. A partição lógica deve ser configurada como um único arquivo de banco de dados, porque não há sistema de arquivos na partição bruta.Operações padrão do sistema de arquivos, como copiar, mover e excluir, não podem ser usadas com partições brutas.
Arquivos de banco de dados localizados em partições brutas não podem ser copiados usando o utilitário de backup do Windows NT. No entanto, os backups do banco de dados ou do log de transações do SQL Server ainda podem ser criados.
Arquivos de banco de dados em partições brutas não podem ser expandidos automaticamente. Crie inicialmente o banco de dados no tamanho máximo ou expanda manualmente os arquivos do banco de dados. Para mais informações, consulte Expandindo um banco de dados.
Somente partições com letras, como E: ou unidades montadas, como E: \ Sample name \ podem ser usadas. Dispositivos numerados não podem ser usados.
Serviços de sistema de arquivos, como substituição incorreta de bloco, não estão disponíveis com partições brutas.
Isto foi inspirado por post de Brent Ozar sobre o SQL Server 6.5 , que fez oferecem suporte a partições matérias