Назад | Перейти на главную страницу

Восстановление SQL Server 2005

У меня есть SQL Server (в Windows XP), где я публиковал отчеты с помощью диспетчера отчетов и множества баз данных. В SQL Server у меня есть запланированные задания для запуска обновлений таблиц и т. Д. Я пришел сегодня утром и обнаружил, что корневой диск умер. Мой диск разбит на разделы, так что мои базы данных не находятся на корневом диске, поэтому я смог спасти базы данных.

Я смог использовать предыдущий жесткий диск (примерно месяц назад - мы обновили) и загрузить текущие базы данных на старый диск. Я пытаюсь довести старый диск до скорости сегодняшних данных, заданий, файлов ...

Мои базы данных загружались нормально.

Что я не могу сделать, так это просмотреть какие-либо отчеты, использующие диспетчер отчетов. Несколько вопросов:

  1. Хранятся ли задания, выполняемые через SQL Server, в другом каталоге, чем базы данных?
  2. Есть идеи, что происходит с доступом к отчетам диспетчера отчетов? Обычно клиентская машина могла получить доступ к отчетам через IE. - также не может подключиться с помощью ODBC-соединения с Access. (сетевой штекер подключен).
  3. Не хватает ли мне каких-либо других частей, которые могут потребоваться восстановить в текущем виде, кроме баз данных?

Любые предложения приветствуются.

Я собираюсь предположить, из ваших вопросов, что вы могли потерять master и msdb. В остальном это сложно сказать по вашему вопросу, но ...

  1. Задания хранятся в MSDB. Если у вас есть резервная копия, но нет файлов для MSDB, вы можете восстановить ее как old-msdb и, возможно, найти файлы в таблицах msdb.dbo.sysjob *.
  2. Ссылки ODBC на правильное имя машины? Правильны ли сетевые параметры на новом имени компьютера в диспетчере конфигурации SQL Server? Также - тупой вопрос, но я должен задать - диспетчер отчетов / SSRS является установлен, да? Разрешает ли брандмауэр соединение? Это также могут быть разрешения, особенно если вы потеряли мастера.

Если вы потеряли мастер, но воссоздали логины, ваши логины SQL могут быть «осиротевшими». Вы можете определить, есть ли у вас осиротевшие пользователи, запустив

USE <database_name>;
GO; 
sp_change_users_login @Action='Report';
GO; 

Если у вас есть осиротевшие пользователи, вы можете исправить их с помощью

USE <database_name>;
GO
sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
   @LoginName='<login_name>';
GO

(Код из MSDN.)

Первое, что я сделал бы, это аккуратно остановил бы ваши службы SQL Server. Затем сделайте копию всех файлов ldf / mdf на сервере. Также найдите расположение файлов резервных копий - они должны называться MyDBname_backup_200907220000.bak и переименовать расширение в что-то вроде .hold. Таким образом, они не будут уничтожены планом обслуживания, если вам придется идти на восстановление.

После этого верните только службу SQL Server, а не агент сервера.

Убедитесь, что базы данных по-прежнему помечены как подозрительные. Если они

ALTER DATABASE [MyDBName]
     SET EMERGENCY
GO
EXEC sp_resetstatus 'your_db_name';
GO
DBCC DBRECOVER ('your_db_name')
GO
ALTER DATABASE [MyDBName]
     SET ONLINE
GO

Если это не сработает - отправьте ответ, и мы увидим, что еще мы можем сделать.