我有一个SQL Server(在Windows XP),我已经发布报告使用报告pipe理器和一堆数据库。 在SQL Server中,我有计划在桌面上运行更新等的工作。今天上午我来到了,发现根驱动器死了。 我的驱动器被分区,使我的数据库不在根驱动器 – 所以我能挽救数据库。
我能够使用以前的硬盘驱动器(从大约一个月前 – 我们升级),并加载当前的数据库到旧的驱动器。 我正试图用今天的数据,工作,文件来加快旧的硬盘速度。
我的数据库似乎加载正常。
我不能做的是查看任何使用Report Manager的报告。 几个问题:
任何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。 否则,从你的问题很难说,但…
如果您失去了主服务器,但重新创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的代码)