sql2008还原问题

    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'

 在几分钟的等待之后,终于提示还原成功. 问题得已解决,至于解决问题的关键点在哪里,没有具体测试!

原文地址:https://www.cnblogs.com/hanf/p/3483061.html