码迷,mamicode.com
首页 > 数据库 > 详细

梳理一下重装sql2008R2sp1步骤

时间:2015-02-06 13:00:48      阅读:1565      评论:0      收藏:0      [点我收藏+]

标签:

我的电脑是这样,最早的时候装的是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步骤

标签:

原文地址:http://www.cnblogs.com/hrbadmin/p/4276704.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!