我需要恢复 MS SQL 2008 R2 服务器。原始服务器已完全损坏,无可挽救。但是所有数据以及系统数据库、master、msdb、model 均有备份;.bak 文件。
我设置了一台新机器,使用完全相同版本的 sql,2008R2 SP2,并尝试先恢复主数据库。恢复成功,但使用恢复的主数据库时,sql 服务无法启动。似乎旧的损坏服务器上的每个路径都是自定义的,数据数据库、系统数据库,甚至 sql 可执行文件。
有没有办法找出旧服务器上使用的路径,甚至是 sql 可执行文件?
我想我必须再次卸载并安装 sql server,以设置所有自定义路径,以防我们找到自定义可执行文件路径,这样对吗?
另外,为了将来参考,在 MS SQL 服务器上,有没有办法导出所有这些路径?
答案1
考虑不要恢复系统数据库。只恢复包含文件的数据,希望有人足够聪明,能够将它们包含在内(这样它们就包含了用户)。
答案2
我按照以下步骤查明被毁坏的服务器上使用了哪些路径:
本地管理员找到了被毁坏的服务器的旧系统状态备份。因此我使用此备份提取注册表并找到 MS SQL 可执行文件和实例路径。
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL10.MyInstance
在另一个实验室 SQL 服务器上,我创建了一个新的数据库,然后导入了被毁坏的服务器的 masterdb 备份。
在导入的旧主数据库上使用此查询,旧 SQL 服务器的数据路径位于:
SELECT name, physical_name FROM destroyed_master
(改变了这个在实时 SQL 服务器上输出数据路径的查询)
SELECT name, physical_name AS current_file_location FROM sys.master_files
恢复路径后,我重新安装了 Windows 和 SQL,在安装时使用了恢复的路径,然后成功恢复了主服务器。SQL 服务启动并运行,随后恢复了数据,服务器恢复了。