AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 205749
Accepted
Hannah Vernon
Hannah Vernon
Asked: 2018-05-04 12:55:40 +0800 CST2018-05-04 12:55:40 +0800 CST 2018-05-04 12:55:40 +0800 CST

CREATE DATABASE em partições RAW não funciona mais?

  • 772

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, Level 16, State 4, Line 1
Não é possível criar o arquivo 'S:' porque ele já existe. Altere o caminho do arquivo ou o nome do arquivo e repita a operação.
Msg 1802, Level 16, State 4, Line 1
CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.

A parte pertinente da documentação afirma:

Se o arquivo estiver em uma partição bruta, os_file_name deverá especificar apenas a letra da unidade de uma partição bruta existente. Apenas um arquivo de dados pode ser criado em cada partição bruta.

E sim, a unidade S: e T: são 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 Label Fs Tipo Tamanho Informações de Status
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 6 T RAW Partição 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 Label Fs Tipo Tamanho Informações de Status
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 7 S RAW Partição 129 MB Saudável

Remover os dois pontos das letras da unidade, como em FILENAME = 'S'e FILENAME = 'T', resulta em:

Msg 5105, Level 16, State 2, Line 1
Ocorreu um erro de ativação de arquivo. O nome do arquivo físico 'S' pode estar incorreto. Diagnostique e corrija erros adicionais e repita a operação.
Msg 1802, Level 16, State 1, Line 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 DATABASEseção:

H. Use partições brutas
Este exemplo cria um banco de dados chamado Employees usando partições brutas. As partições brutas devem existir quando a instrução for 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 acima mostra SIZE, MAXSIZEe FILEGROWTHparâmetros que claramente não são necessários para arquivos de dados do SQL Server 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 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 preferencial é 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 de unidade dos discos nos quais os arquivos de 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 de unidade à unidade em vez de uma letra de unidade. As unidades montadas não estão sujeitas ao limite de 26 unidades imposto pelas letras das unidades; 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 encerrar o caminho da unidade para o nome do arquivo com uma barra invertida (), por exemplo, E:\Nome da amostra. Para obter informações sobre como criar uma unidade montada, consulte a documentação do Windows 2000 Server.

Há 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, pois não há sistema de arquivos na partição bruta.

As 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 Backup do Windows NT. No entanto, os backups de banco de dados ou 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 em seu tamanho completo ou expanda manualmente os arquivos do banco de dados. Para obter 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.

Os serviços do sistema de arquivos, como substituição de bloco inválido, não estão disponíveis com partições brutas.


Isso foi inspirado no post de Brent Ozar sobre o SQL Server 6.5 , que suportava partições brutas

sql-server storage
  • 1 1 respostas
  • 983 Views

1 respostas

  • Voted
  1. Best Answer
    Hannah Vernon
    2018-05-05T12:08:23+08:002018-05-05T12:08:23+08:00

    Posso confirmar que as partições brutas funcionam, como esperado, com o SQL Server 2000 SP4 no Windows XP x64.

    Acabei de executar o seguinte através do Query Analyzer (estremece) no SQL Server 2000 SP4:

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

    Os resultados:

    O processo CREATE DATABASE está alocando 0,64 MB no disco 't_primary'.
    O processo CREATE DATABASE está alocando 1,00 MB no disco 't_log'.

    O CREATE DATABASE tcódigo acima funciona com o SQL Server 2005 no Windows XP x64; a única saída éCommand(s) completed successfully.

    O SSMS mostra o seguinte quando você examina os arquivos de banco de dados:

    insira a descrição da imagem aqui

    Não é tão legal quanto um balde de parafusos?

    SQL Server 2012 SP1 no Windows Server 2012 Standard, com a conta de serviço do SQL Server Management Studio definida como "Sistema Local":

    insira a descrição da imagem aqui

    O SQL Server 2014 (12.0.5000.0) executado como "Sistema Local" no Windows Server 2012 apresenta o mesmo comportamento do SQL Server 2017; ou seja, ele retorna esta mensagem de erro:

    Msg 5170, Level 16, State 4, Line 1
    Não é possível criar o arquivo 'E:' porque ele já existe. Altere o caminho do arquivo ou o nome do arquivo e repita a operação.
    Msg 1802, Level 16, State 4, Line 1
    CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.

    • 3

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve