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