Por meio do Failover Cluster Manager, adicionei recentemente um novo disco a um cluster SQL Server 2008 R2 existente, em execução no Windows Server 2012 R2.
Ao tentar criar um banco de dados neste novo armazenamento, recebo o seguinte erro:
Msg 5123, Level 16, State 1, Line 1
CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file 'J:\DATA\mydatabase.mdf'.
Msg 1802, Level 16, State 4, Line 1
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Posso adicionar manualmente um arquivo a J:\data
O novo armazenamento pode ser movido entre nós sem erros
A conta de serviço do SQL Server tem controle total sobre toda a unidade J:\
A conta de serviço do SQL Server tem controle total sobre J:\DATA Aqui está um layout da unidade, você notará que DATA é um volume separado montado dentro de J:\
Alguém pode me ajudar a descobrir por que estou recebendo esse erro?
Atualizar
De James, se eu adicionar um subdiretório aos dados, o comando create database funcionará
CREATE DATABASE [MCO_DB] ON PRIMARY
( NAME = N'MYDATABASE_DB', FILENAME = N'J:\DATA\MYDATABASE\MYDATABASE_DB.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'MYDATABASE_DB_log', FILENAME = N'J:\TRN\MYDATABASE_DB_1.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
O erro 5 do sistema operacional é simples
Access is denied
, você sempre pode verificar esses erros no prompt de comandonet helpmsg 5
.Agora, os pontos de montagem de volume às vezes são um incômodo. No Windows server 2000, o calcs.exe apresentava um erro e não conseguia definir as permissões na unidade subjacente e a única maneira de fazer isso era montar o volume usando uma letra de unidade, definir permissões na pasta raiz e criar um ponto de montagem.
Versões posteriores do Windows devem ser capazes de definir as permissões no ponto de montagem usando a opção /M para que
Irá conceder ao domínio\conta permissões totais na raiz da unidade montada em j:\data, ainda não aprendi a fazer isso
icacls.exe
e um comentário sobre como fazer isso será bem apreciado.Como você descobriu, a criação de uma subpasta no ponto de montagem possibilita a criação de uma lista de acesso para essa pasta, mas ainda parece haver problemas com a configuração de permissões na pasta raiz da unidade usando a GUI.
Normalmente, não me preocupo com o comando calcs e, se precisar definir permissões na raiz, adicionarei uma letra de unidade, definirei as permissões usando a GUI e removerei a letra da unidade.
Ocorreu um problema com a Pasta de Informações do Volume do Sistema, que é uma pasta oculta na raiz deste volume.
Em outros volumes na mesma máquina, este volume protegido ficou acessível depois de se tornar visível em Opções de Pasta
No entanto, não consegui acessar a pasta System Volume Information do diretório DATA em que estava tentando criar bancos de dados.
Etapas tomadas para resolver pelo nosso administrador do Windows
Uma nova letra de unidade T: foi criada
O conteúdo da unidade J: foi copiado para ela
A unidade J: foi destruída e a unidade T: foi alterada para a unidade J: no Windows.
Depois disso, consegui criar bancos de dados normalmente.
Obrigado a @jamesanderson por me colocar no caminho certo.