Пояснение
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'
, надеюсь, без ошибок.