我的电脑是这样,最早的时候装的是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. 使用js对select动态添加和删除OPTION示例代码

    动态删除select中的所有options.某一项option以及动态添加select中的项option,在IE和FireFox都能测试成功,感兴趣的朋友可以参考下,希望对大家有所帮助   <s ...

  2. android TDD平台插入双卡时,查看允许返回发送报告的选项,去掉勾选,不起作用

    请在MultiSimPreferenceActivity.java 下修改 修改1: 函数 isChecked()     private boolean isChecked(String prefe ...

  3. Linux下shell编程实例

    1. 推断一文件是不是块或字符设备文件.假设是将其复制到 /dev 文件夹下 read -p "input a file:" filename if [ -b $filename ...

  4. Eclipse使用笔记

    eclipse内容辅助键 alt+ /用法: Alt+/ 提示作用 帮助补齐一些东西,还可以帮助你起名字, main+alt+/,syso+alt+/ alt+shift+s给出一些快捷操作,比如fo ...

  5. ThinkPHP第五天(提交类型判定常量IS_POST等,错误页面种类,Model实例化方式,模板中使用函数,foreach循环,模板中.语法配置)

    1.IS_GET.IS_POST.IS_PUT.IS_DELETE.IS_AJAX常量,方便快捷实现各个判断. 在Action类中还可以使用$this->isPost()等进行判断. 2.错误页 ...

  6. 转: cmd和amd的区别

    AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMDCMD 规范在这里:https://github.com/seajs/seajs/issues ...

  7. Qt mac QMYSQL(动态加载插件QPluginLoader的用法)

    用此段代码查出问题所在 QPluginLoader loader; loader.setFileName("/Users/danny/Qt5.3.2/5.3/clang_64/plugins ...

  8. 引用 IP电话的原理结构及其关键技术

    引用 茫然 的 两种将字符串转换成浮点数的方法 方法一: char szString[] = "-2876.99812376443"; double db1; db1 = atof ...

  9. 基于visual Studio2013解决C语言竞赛题之0401阶乘

      题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...

  10. hdu 4737

    题目链接 直接暴力,或运算只会越来越大 #include <cstdio> #include <cstring> using namespace std; #define N ...