SQL Server 2005修复

我有一个SQL Server(在Windows XP),我已经发布报告使用报告pipe理器和一堆数据库。 在SQL Server中,我有计划在桌面上运行更新等的工作。今天上午我来到了,发现根驱动器死了。 我的驱动器被分区,使我的数据库不在根驱动器 – 所以我能挽救数据库。

我能够使用以前的硬盘驱动器(从大约一个月前 – 我们升级),并加载当前的数据库到旧的驱动器。 我正试图用今天的数据,工作,文件来加快旧的硬盘速度。

我的数据库似乎加载正常。

我不能做的是查看任何使用Report Manager的报告。 几个问题:

  1. 通过SQL Server运行的作业是否存储在与数据库不同的目录中?
  2. 任何想法访问报告pipe理器报告发生了什么? 通常客户机可以使用IE访问报表。 – 也不能使用Access连接使用ODBC连接。 (networking插头已连接)。
  3. 除了数据库之外,我是否还有其他需要恢复到当前视图的部分?

任何build议表示赞赏。

我要做的第一件事是正常地停止你的SQL Server服务 – 然后在服务器上创build所有ldf / mdf文件的副本。 另外find备份文件的位置 – 它们应该被命名为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 

如果这不起作用 – 请回复,我们可以看到我们还能做些什么。

我想从你的问题中猜测,你可能已经失去了master和msdb。 否则,从你的问题很难说,但…

  1. 作业存储在MSDB中。 如果您有一个备份但不是MSDB的文件,则可以将其还原为old-msdb,并可能能够在msdb.dbo.sysjob *表中find这些文件。
  2. ODBC连接是否指向正确的机器名称? SQL Serverconfigurationpipe理器中的新计算机名称上的networking设置是否正确? 另外 – 愚蠢的问题,但我不得不问 – 报告经理/ SSRS 安装,对不对? 防火墙是否允许连接? 这也可能是权限,特别是如果你失去了主人。

如果您失去了主服务器,但重新创build了login名,那么您的SQLlogin名可能是“孤立的”。 您可以通过运行来判断是否有孤立的用户

 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的代码)