SQL Server日志损坏造成整个数据库损坏的修复

SQL Server日志损坏造成整个数据库损坏的修复

ID:47886002

大小:298.05 KB

页数:13页

时间:2019-08-03

SQL Server日志损坏造成整个数据库损坏的修复_第1页
SQL Server日志损坏造成整个数据库损坏的修复_第2页
SQL Server日志损坏造成整个数据库损坏的修复_第3页
SQL Server日志损坏造成整个数据库损坏的修复_第4页
SQL Server日志损坏造成整个数据库损坏的修复_第5页
资源描述:

《SQL Server日志损坏造成整个数据库损坏的修复》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SQLServer日志损坏造成整个数据库损坏的修复版本:V1.0作者:知行合一邮箱:409629442@qq.com时间:2014/9/29一、问题说明由于用户的数据库某张表比较大,大约有1000万条记录,数据库管理员在非业务时间对这个表进行删除清理,删除操作持续了1个小时左右,到工作时间,仍然没有正常结束。前端用户反应应用系统比较慢后,数据库管理员对删除操作进行终止,终止时仍然无法正常终止。最后,数据库管理员不得已对数据库进行重启,重启后发现数据库已经无法正常打开。由于用户比较急,就用一个比较老的备份进行了恢复。我们赶赴现场后,原先的数据库

2、已经被删除,但用户已经针对原先的数据库文件和日志文件进行了拷贝。我们把备份的数据库文件拷贝到异机进行附加,总是报错,提示无法读取日志文件。具体报错如下:Thelogcannotberebuiltbecausetherewereopentransactions/userswhenthedatabasewasshutdown,nocheckpointoccurredtothedatabase,orthedatabasewasread-only.Thiserrorcouldoccurifthetransactionlogfilewasmanuall

3、ydeletedorlostduetoahardwareorenvironmentfailure.Msg1813,Level16,State2,Line2通过上面的报错可知,数据库的日志文件发生了损坏,这时已经不能通过简单的附加方式进行恢复,也无法通过无日志附加的方式进行附加,因为这时数据库处在一个不一致的状态。一、环境介绍操作系统:Windows2008R2SQLserver:SQLServer2008SP1数据文件路径:数据文件路径File_id逻辑文件名称文件组大小D:PPmonitorPPmonitor_Data.MDF1PPmo

4、nitor_DataPRIMARY41787200KBD:PPmonitorPPmonitor_Log.LDF2PPmonitor_LogD:PPmonitorPPmonitor_Data1.NDF3PPmonitor_1_DataPRIMARYD:PPmonitorPPmonitor_Log1.ldf4PPmonitor_1_LogD:PPmonitorPPmonitor_Log2.ldf5PPmonitor_2_LogG:PPmonitorPPmonitor_Dtat3.Mdf6PPmonitor_3_DataPRIM

5、ARYG:PPmonitorPPmonitor_data2.Ndf7PPmonitor_2_DataPRIMARYG:PPmonitorPPmonitor_Log3.Ldf8PPmonitor_3_Log注:数据文件后面为数据文件的file_id,file_id可以通过sys.master_files进行查看三、处理过程由于这时数据库已经无法正常打开(已经没有对应的数据库,或数据库状态错误,查看不了任何属性信息),所以我们必须重新创建同名的数据库,然后用备份的数据文件覆盖新创建的数据文件。处理的主要过程如下:3.1、新建同名的数据库。

6、1、新建数据库时,要求数据文件目录、路径、数据文件大小要和原来保持一致。如果是恢复到其他机器,要保证SQLServer实例的版本和原来保持一致,小版本也要保持一致,如果小版本不一致,需要设置实例和数据库兼容级别。2、数据文件大小不能小于原来的数据文件,可以比原来的数据文件大。数据文件大小不一致时,替换数据文件时会发生错误。3、日志文件大小可以不一致。4、需要保持文件的file_id要和原来对应,文件的Id可以通过mster数据库系统表sys.master_files进行查看。如果包含文件组,且文件组中含有多个数据文件,直接一起创建的时候,可能

7、会产生文件id和原来不一致的情况,这时可以采用一个一个数据文件单独创建的方式进行创建。如果文件id不一致,用备份的数据文件替换新建的数据文件时会报错。具体错误信息如下:文件Id的查看方法:UsemasterSelect*fromsys.master_file;3.2、用备份的数据文件替换新的数据文件1、首先停止SQLServer服务2、替换数据文件和日志文件3、启动数据库服务如果替换时,报拒绝访问错误,需要把数据文件的权限更改为everyone完全访问3.3、数据库日志修复在用备份的数据和日志文件替换新建的数据文件和日志文件后,启动数据库时,

8、数据库自动置为inrecovery状态,这时修复的时间可能会比较长。由于日志文件3已经发生损坏,修复到损坏日志部分的时候,数据库会无法进行修复。这时可以采用如下方法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。