Ошибка восстановления SQL Server: не удалось выполнить поиск в каталоге для файла «db.mdf» - PullRequest
0 голосов
/ 21 июня 2019

При попытке восстановить файл dbname.bak (с компьютера с Windows) для SQL Server на компьютере с Linux, используя:

RESTORE DATABASE dbname
FROM DISK = '/path/to/dbname.bak'

Я получил следующую ошибку:

Ошибка: поиск в каталоге для файла "C: \ Program Files \ Microsoft SQL Server \ MSSQL \ DATA \ dbname.mdf" завершился ошибкой операционной системы 2 (система не может найти указанный файл.).
SQLState:S0001
ErrorCode: 5133

, а также другая ошибка для файла dbname_log.ldf.

Почему SQL Server пытается ссылаться на файлы Windows на компьютере с Linux, я слышал, выспросить?

1 Ответ

0 голосов
/ 21 июня 2019

Пояснение

MS SQL Server по умолчанию предполагает, что пути к файлам, сохраненные внутри dbname.bak, - это то место, куда должна быть восстановлена ​​база данных.Если пути к файлам не существует, вы получите такую ​​ошибку.

Решение

Явно сообщите БД использовать другой файл (с).Но сначала вам нужно узнать, как на файл (ы) ссылаются, выполнив следующий T-SQL:

RESTORE FILELISTONLY FROM DISK = '/path/to/dbname.bak'

, который может дать вам что-то вроде этого:

Dbname_Empty
Dbname_Empty_log

, который затем можно использовать для выполнения следующего T-SQL:

RESTORE DATABASE dbname
FROM DISK = '/path/to/dbname.bak'
WITH MOVE 'Dbname_Empty' TO '/var/opt/mssql/data/dbname.mdf',
MOVE 'Dbname_Empty_log' TO '/var/opt/mssql/data/dbname.ldf'

, надеюсь, без ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...