Восстановление базы данных из скрипта - PullRequest
0 голосов
/ 18 марта 2020

Я создал небольшой скрипт для восстановления баз данных из резервных копий. После запуска сценария он отображает

RESTORE DATABASE успешно обработал 28818 страниц за 1,568 секунды (143,584 МБ / с c).

У меня есть еще код для изменения базы данных, изменить несколько просмотров и SP тоже, но я получаю следующую ошибку; У пользователя нет прав на изменение базы данных GreyGoo, база данных не существует или база данных не находится в состоянии, которое позволяет проверять доступ.

Я также заметил, что не могу увидеть базу данных в объекте explorer

это то, что я использую для восстановления БД из резервной копии

  1. , если БД существует, задайте для одного пользователя
  2. , если БД существует, отбросьте базу данных
  3. Запустил следующий скрипт
RESTORE DATABASE GreyGoo FROM DISK = 'C:\Bkp\GreyGoo_backup_2020_03_02_180002_5403592.bak'
WITH 
MOVE 'GreyGoo' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.mdf',
MOVE 'GreyGoo_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.ldf', 
REPLACE;
установить для БД многопользовательские и другие свойства

Так в чем проблема и как я могу ее решить, я сейчас тестирую свой код на SQL Server 2008

Спасибо

1 Ответ

0 голосов
/ 18 марта 2020

Во время процесса восстановления вам нужно будет убедиться, что ваши

  1. логин / разрешения верны.
  2. , если другой предыдущей базы данных с таким же именем нет, если это так, удалите ее , Возможно, с предыдущей попытки
  3. Вы также можете отключить опцию восстановления, как показано ниже, восстановление по умолчанию
  4. RESTORE FILELISTONLY

Пример - MSDN

USE master;  
GO  
-- First determine the number and names of the files in the backup.  
-- AdventureWorks2012_Backup is the name of the backup device.  
RESTORE FILELISTONLY  
   FROM AdventureWorks2012_Backup;  
-- Restore the files for MyAdvWorks.  
RESTORE DATABASE MyAdvWorks  
   FROM AdventureWorks2012_Backup  
   WITH RECOVERY,  
   MOVE 'AdventureWorks2012_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',   
   MOVE 'AdventureWorks2012_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';  
GO  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...