Восстановление резервной копии AdventureWorks2017 на Linux SQL Server - PullRequest
0 голосов
/ 01 апреля 2019

Я оказался в очень странной ситуации: то, что раньше работало, больше не работает.

Я пытаюсь восстановить резервную копию Adventureworks на SQL Server, работающем на компьютере с Ubuntu, с помощью этого кода T-SQL:

RESTORE DATABASE AdventureWorks2017
FROM DISK = '/home/sergey/AW/AdventureWorks2017.bak'
WITH MOVE 'AdventureWorks2017' TO '/home/sergey/AW/AdventureWorks2017.mdf',
     MOVE 'AdventureWorks2017_log' TO '/home/sergey/AW/AdventureWorks2017_log.ldf'
GO

Но я получаю сообщение об ошибке:

[S0001] [3142] Файл "AdventureWorks2017" нельзя восстановить поверх существующего "/home/sergey/AW/AdventureWorks2017.mdf". Повторите инструкцию RESTORE, используя WITH REPLACE, чтобы перезаписать уже существующие файлы, или WITH MOVE, чтобы определить альтернативное расположение.

Этот пост в блоге, кажется, говорит о подобной проблеме, но упомянутые рецепты не работают.

Любая помощь высоко ценится!

1 Ответ

3 голосов
/ 01 апреля 2019

В сообщении об ошибке указывается, что целевой файл уже существует.

Попробуйте

RESTORE DATABASE AdventureWorks2017
FROM DISK = '/home/sergey/AW/AdventureWorks2017.bak'
WITH MOVE 'AdventureWorks2017' TO '/home/sergey/AW/AdventureWorks2017.mdf',
     MOVE 'AdventureWorks2017_log' TO '/home/sergey/AW/AdventureWorks2017_log.ldf',
     REPLACE
GO

Полная документация для команды RESTORE Transact-SQL может быть найдена здесь .

...