我的电脑是这样,最早的时候装的是2005,后来公司用到2008,我就手动卸载,但是好像卸载的不够彻底,在装2008的时候,选择升级方式安装。

虽然成功了,但是在运行select @@version 时,发现还是2005,但奇怪的是,启动界面确是2008,这说明升级安装虽然表面上成功了,但并不是很彻底。尤其是升级后,存在着一些类似复制这样的功能不好使的情况。但是我本机仅是用来做实验,所以也没太在意。

但最近,我需要还原正式库的备份文件,因为服务器上装的是64bit的sql2008r2sp1,所以和我本机不兼容,所以无法恢复。

没办法,只好想法升级到2008r2sp1,由于之前的状况,既有2005残留文件,又有2008残留文件,尝试了一下,升级到R2,结果不成功,干脆全部卸载,重新装吧。于是手动各种删除,又进注册表,又进控制面板,又停服务,折腾了一小天,最后一装,发现还是卸载的不干净,无法安装成功。

百度了一下,发现有一款软件,名字叫Windows Installer Clean Up,下载后,发现卸载那叫一个快,而且非常干净。

于是正常安装sql2008r2,一切顺利,安装完后,记住要安装sp1的补丁程序,地址如下:

http://download.microsoft.com/download/0/9/9/099E0C83-072B-42A5-83A0-9BB3D2E6E2A3/SQLServer2008R2SP1-KB2528583-x86-CHS.exe

记得下载的时候,注意网速通畅。安装的时候尽量不要同时运行其它程序,我发现该程序不稳定,解压缩时容易出现文件损坏提示,其实并没有损坏。多解压几次就好。

之后正常安装,不要略过其中的安装步骤。

正常启动后想用sa账户登陆,选择sqlserver方式登陆,但是发现密码不对提示,于是想改sa密码。

用windows验证模式登陆,打开服务器属性对话框,启用sqlserver和windows验证模式。点确定。然后找安全性==>登陆名==>sa==>属性,修改密码后,重新启动数据库服务,在相关项点重新启动即可。之后即可以以sqlserver方式登陆了。

然后准备还原数据库,最好用语句还原,这样有一个好处,就是如果有错误,它会提示相关的错误:

restore database heb00 from

disk = 'e:\heb000_2012-12-25 01.40.00.bak'

with replace

虽然现在版本一致了,但是还是有错误,如下:

消息 3183,级别 16,状态 2,第 1 行

在从该备份集进行读取时,RESTORE 检测到在数据库 "heb00" 中的页(0:0)上存在错误。

消息 3013,级别 16,状态 1,第 1 行

RESTORE DATABASE 正在异常终止。

根据提示,以为是heb00这个新建的数据库问题,由于原数据库34个G左右,而初始的数据库很小,以为有这种可能,所以把初始大小定为35个G,但问题依旧,反复试了几次,感觉应该是处在备份文件上。拷备份时,先把备份文件从服务器上拷到移动硬盘上,再从移动硬盘上拷到本机上,根据经验,一般大文件在复制过程中,都容易受损。

突然想到可以查看日志文件:

日期2012-12-28 10:33:29

日志SQL Server (当前 - 2012-12-28 10:33:00)

源spid55

消息

The backup data at the end of "e:\heb000_2012-12-25 01.40.00.bak" is incorrectly formatted. Backup sets on the media might be damaged and unusable. To determine the backup sets on the media, use RESTORE HEADERONLY. To determine the usability of the backup sets, run RESTORE VERIFYONLY. If all of the backup sets are incomplete, reformat the media using BACKUP WITH FORMAT, which destroys all the backup sets.

根据提示,估计出在备份文件上的问题可能性很大了。

再根据提示,做了一下对比:

RESTORE HEADERONLY

FROM DISK = N'e:\heb000_2012-12-25 01.40.00.bak'

WITH NOUNLOAD;

GO

RESTORE HEADERONLY

FROM DISK = N'd:\book.bak'

WITH NOUNLOAD;

GO

可以看到,第二个数据库备份文件是可以识别出来的,但第一个要还原的数据库文件确显示未完成,所以到这里,问题应该可以肯定出在备份文件上了,

命苦啊,只能重新复制了。

“因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下

关键SQL语句:

ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE

用完之后再

ALTER  database  [ datebase]  set   online

梳理一下重装sql2008R2sp1步骤的更多相关文章

  1. 重装mysql步骤

    , 卸载MySQL 2, 删除目录 C:\Documents and Settings\All Users\Application Data\MySQL (这个真的有,原先没注意到,删掉!) 如果没有 ...

  2. TFS 2010 迁移/重装/还原 步骤

    1.签入所有代码 2.停止TFS服务:运行命令行,并将路径切换到TFS安装路径:C:\Program Files\Microsoft Team Foundation Server 2010\Tools ...

  3. Dell台式机Window10恢复重装window7步骤

    1.开机页面出现Dell标识时,连续点击F2 2.进入bois页面,选择boot ,将光标移动到USB启动盘符位置, 3.按 - 号,将 USB Srorage Device 改为第一启动项,F10保 ...

  4. Win7重装系统遇到的问题以及MysQL的问题解决

    连续三天因为系统的错误,android方面的软件一直不能正确运行.而且每次开机的时候QQ 微信等聊天工具也出现损坏.虽然重新下载一个可以保证在电脑不管的情况下正常的运行.可是作为玩电脑时间不长的我来说 ...

  5. 电脑重装后 python 2 3快速安装

    背景: 电脑重装后,python也要跟着重装,将安装包.环境变量备份等安装完成后直接安装 重装前 1. pip包备份,命令窗口 pip freeze > py2.txt #python2的包 p ...

  6. U盘重装系统

    一.准备工作 (1)8G以上空间的U盘一个: (2)将U盘制作好启动工具: 1.下载启动工具制作软件(常用的有:大白菜.电脑店.老毛桃.快启动等等一系列软件,直接百度这些软件的名称,或者百度U盘启动制 ...

  7. Mac 电脑如何卸载 重装node

    由于在日常开发中,部分node版本不支持,因此,我们需要对已安装的node进行卸载重装,步骤如下: 一.在终端依次输入以下命令   sudo npm uninstall npm -g   sudo r ...

  8. 异步编程 In .NET

    概述 在之前写的一篇关于async和await的前世今生的文章之后,大家似乎在async和await提高网站处理能力方面还有一些疑问,博客园本身也做了不少的尝试.今天我们再来回答一下这个问题,同时我们 ...

  9. Mac MySQL启动不了解决办法(MySQL卸载重新安装教程)

    一段时间没用MySQL,今天使用时突然发现启动不了了,怎么点start都没用,或者输入密码了  还是没用... 好急...找了一圈资料,没发现特别好的解决办法,只能使用大招了----->< ...

随机推荐

  1. makefile 里面 := 和 = 的区别

    此文版权属于作者所有,任何人.媒体或者网站转载.借用都必须征得作者本人同意! 参考:What is the colon equals sign ( := ) in makefiles? Makefil ...

  2. Scala函数---既存类型

    语法: Type ::= InfixType ExistentialClauses ExistentialClauses ::= „forSome‟ „{‟ ExistentialDcl {semi ...

  3. Ext JS学习第八天 Ext基础之 认识Ext.js 和Ext-more.js

    此文来记录学习笔记: •认识Ext.js 和Ext-more.js •首先,我们要知道这2个js文件的作用,这俩个文件包含了Ext的一些基础定义.基本的属性和方法,我们要重点学习和深入底层代码进行研究 ...

  4. vue开发体验

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  5. 工具篇-TraceView

    --- layout: post title: 工具篇-TraceView  description: 让我们远离卡顿和黑屏 2015-10-09 category: blog --- ## 让我们远 ...

  6. thinkphp第二天

    1.使用print_r();打印数组的时候最好使用<pre>标签,可以是数组表现的更加直观. pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本 ...

  7. 【转】C++常见错误大全

    原文转自:http://hi.baidu.com/qiou2719/item/b9eed949130ff50ec0161331 C++常见错误大全 0. XXXX "is not a cla ...

  8. 使用Jquery后去div个数

    <div id="tree1" class="tree-folder-content"> <div class="tree-fold ...

  9. c显示数字的LED(数字转LED)

    实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图,例如: 输入1234567890,输出: 请注意每个字符的固定宽度和高度,两个数字间保留一个空格. 函数名:void LE ...

  10. 建房子之前先挖地基 - Java BlockingQueue理解

    最近一直在看<Think In Java>里关于并发部分的章节,读到第二十一章有一个有趣的比喻:必须先挖房子的地基,但是接下来可以并行的铺设钢结构和构建水泥部件,而这两项任务必须在混凝土浇 ...