#sql-server #windows-server-2012
#sql-server #windows-server-2012
Вопрос:
У меня есть SQL Server 2016, запущенный в виртуальной машине на Windows Server 2012 R2. Хост — это Windows 7.
На локальном C:
диске виртуальной машины я сопоставил общий сетевой диск ( Z:
), который указывает на другой диск ( F:
) на хосте. Я могу получить доступ к F:
диску с виртуальной машины в проводнике Windows.
Я пытаюсь создать новый файл данных SQL Server на F:
диске:
ALTER DATABASE AdventureWorksDW
ADD FILE
(
NAME = [FactResellerSales],
FILENAME = 'Z:SQL_filesAdventureWorksDW_FactResellerSales.ndf',
SIZE = 100MB,
MAXSIZE = 1GB,
FILEGROWTH = 100MB
)
TO FILEGROUP [FactResellerSales]
Это завершается ошибкой:
Сообщение 5133, уровень 16, состояние 1, строка 112
Поиск в каталоге для файла «Z:SQL_filesAdventureWorksDW_FactResellerSales.ndf «сбой с ошибкой операционной системы 3 (система не может найти указанный путь.).Сообщение 5009, уровень 16, состояние 8, строка 112
Не удалось найти или инициализировать один или несколько файлов, перечисленных в инструкции.
Кажется, я не могу понять, как предоставить SQL Server доступ к этому диску.
Когда я щелкаю правой кнопкой мыши по общей папке ( Z:
), расширенных параметров общего доступа нет (только вкладки «Общие», «Предыдущие версии» и «Настройка»).
Кто-нибудь знает, что еще я мог бы сделать?
Спасибо! J
Ответ №1:
Сопоставления дисков в Windows для каждого пользователя, а не для всей системы. При создании базы данных в общей папке следует использовать путь UNC вместо сопоставления букв диска. См. https://learn.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-with-smb-fileshare-as-a-storage-option?view=sql-server-ver15
Ответ №2:
вместо z: укажите имя вашего компьютера, например:
\имя_компьютера SQL_filesAdventureWorksDW_FactResellerSales.ndf’
он автоматически укажет на ваш общий диск
Комментарии:
1. Спасибо, Роя, кажется, это работает, но теперь я получаю сообщение об ошибке операционной системы 5 (доступ запрещен). Кажется, я не могу понять, как предоставить SQL Server правильный доступ. В документации BOL я вижу «Учетная запись службы SQL Server и учетная запись службы агента SQL Server должны иметь разрешения на ПОЛНЫЙ контроль общего доступа и разрешения NTFS для общих папок SMB». Я не разбираюсь в разрешениях Windows. Любой способ указать мне правильное направление? TIA
2. В общей папке убедитесь, что оба пользователя mssqlserver и mssqlagent имеют полные разрешения