2003的服务器系统不知是因为对SSD的支持不好还是别的原因,系统使用有很多奇怪的问题,所以就升级一下系统,在备份数据库的时候出现了各种问题
源数据库与现数据库都为sqlserver2008,并都安装自同一个ISO镜像, 区别就是系统不同,源系统是2003,现系统是win7x64
1.完整备份之后,直接用GUI还原时提示: "指定的转换无效。 (SqlManagerUI)", 排除数据库版本不一致的原因, 使用脚本还原提示:"在从该备份集进行读取时,RESTORE 检测到在数据库 "xxxx" 中的页(0:0)上存在错误。"
2.使用分离/附加方式, 附加的时候提示: " 无法为该请求检索数据。 xxx.mdf 不是主数据库文件。 (Microsoft SQL Server,错误: 5171)"
3.建立同名空数据库,然后替换文件,直接数据库成无效状态
解决文案:
1.使用源服务器的物理桌面(非远程),备份数据库到移动硬盘(之前是备份到SSD) ,备份选项勾选"仅复制备份"
2.使用以下脚本还原数据库:
use master RESTORE DATABASE [DBName] FROM DISK = N'[bak_file].bak' WITH replace, MOVE N'[logical_name]' TO N'[db_file].mdf', MOVE N'[logical_name]_log' TO N'[db_log_file].ldf' --查看备份文件中的逻辑名称 --RESTORE FILELISTONLY FROM DISK = N'[bak_file].bak'
在几分钟的等待之后,终于提示还原成功. 问题得已解决,至于解决问题的关键点在哪里,没有具体测试!