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'

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

sql2008还原问题的更多相关文章

  1. SQL2008还原数据库无法还原问题

    SQL2008还原备份的SQL2008的.bak文件时会报错,大部分原因是因为当前登录的版本是2005的,因而无法还原用SQL2008备份的数据,结局的办法是去掉登录的服务器名称后面的后缀SQLEXP ...

  2. SQLServer 之 2008还原的时候无法获得对数据库的独占访问权解决

    SQL2008还原的时候无法获得对数据库的独占访问权解决 还原或删除sql server 2008数据库时,经常会出现: “因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下 // ...

  3. TFS2010升级至TFS2013完全指南

    一.背景:         公司已使用tfs2010很长时间,目前随着公司的发展,项目越来越少,而产品越来越多,采用的开发模式,也逐渐从瀑布式.迭代式转向敏捷开发.为了更好的支持产品研发,决定将tfs ...

  4. TFS2010升级至TFS2013完全指南(更换服务器)

    一.背景:         公司已使用tfs2010很长时间,目前随着公司的发展,项目越来越少,而产品越来越多,采用的开发模式,也逐渐从瀑布式.迭代式转向敏捷开发.为了更好的支持产品研发,决定将tfs ...

  5. sql2012还原sql2008备份文件语句

    --sql2012还原sql2008语句 --选择master数据库,新建查询 输入下面sql语句 --选择兼容模式(sql 2008)创建数据库db RESTORE DATABASE db FROM ...

  6. sql2008 误操作还原至指定时间点

    --drop database db --创建一个测试库 create database db go --备份一个完整备份文件 backup database db to disk = 'd:\db. ...

  7. sqlserver还原数据库失败,sql2008备份集中的数据库备份与现有的xxx数据库不同

    正常操作发现报标题错误,百度后解决思路如下(@参考文章)转到选项下面,勾选覆盖现有数据库即可

  8. Sql server2012还原备份文件语句

    --sql2012还原sql2008语句 --选择master数据库,新建查询 输入下面sql语句 --选择兼容模式(sql 2008)创建数据库db(还原时db写成原生数据库名称) RESTORE ...

  9. MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏

    我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦: 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命 ...

随机推荐

  1. EntityFramework使用中的一些Bug

    1. No Entity Framework provider found for the ADO.NET provider 解决方法:添加  EntityFramework.SqlServer.dl ...

  2. C语言中char* 和 char []区别

    想要把丢掉的东西捡起来,还是很辛苦啊,今天我就发现,我连char* 和 char []的区别都不知道. 很多人觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正. 本质上 ...

  3. Jmail发送邮件与带附件乱码解决办法

    Jamil发送邮件的具体用法: 首先,我们要从网上下载Jamil.dll的组件,这个网上很多,然后添加引用using jmail,然后再本机或者服务器上注册一下 将jmail.dll拷贝到服务器的sy ...

  4. java中serializable

    java中serializable是一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的.因此如果要序列化某些类的对象,这些类就必须实现Serializable接 ...

  5. 《Cocos2d-x实战 JS卷 Cocos2d-JS开发》上线了

    感谢大家一直以来的支持! 各大商店均开始销售:京东:http://item.jd.com/11659698.html当当:http://product.dangdang.com/23659808.ht ...

  6. php_2

    form表单提交: <body> <form action="php_request2.php" method="post"> 姓名: ...

  7. SpringMvc入门三----控制器

    在传统的Spring MVC开发方法中,必须在Bean配置文件中为每个控制器类配置实例和请求映射和让每个控制器类去实现或者扩展特定于框架的接口或者基类,不够灵活. 如果Spring MVC可以自动侦测 ...

  8. 杭电ACM2011-- 多项式求和

    题目地址 :多项式求和 /* #include<stdio.h> int main() { int n,b; double a[110],x; double z; int i,j; int ...

  9. Java直接插入排序

    插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法步骤: 1)将第一待排序序列第一个元素看做一个有序序列,把第二 ...

  10. 内核 current宏解析

    Technorati 标签: current thread_info      在内核中,可以通过current宏来获得当前执行进程的task_struct指针.现在来简要分析以下:      最原始 ...