- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL数据库紧急修复
SQL数据库紧急修复
一.如果sql服务器因为异常断电或者磁盘空间不足很容易引起数据库出现置疑的问题.如下图.
图片网上搜的
出现这样的问题,其实不用慌张,利用sql自带的数据修复功能就能修复好,一般情况下只要不是因为磁盘坏道引起的置疑问题都是可以修复的.
二.首先关闭所有的sql用户连接 该步骤应该都会吧.不会的话,我告诉你,有3个办法. 1. 拔掉此机器的网线. 呵呵, 这种方法立竿见影, 但是可能对其他的连接造成影响.
2. 通知连接至此数据库的用户断开连接. 如果可能连接的用户很多或不知道哪个用户正在连接的话就不可行了.
3. 在SQL Server中用命令StopLogin强行断开连接.详细说明如下:
使用说明:
StopLogin @UFMeta_006
该操作为强行断开连接的数据库ummeta_006, 如果您要断开所有数据库的连接进行维护的话则只要执行[StopLogin ’’]即可.
三,停止sql服务,将置疑的数据库日志文件删掉就是那个ldf文件,然后将数据库文件剪切到其他地方去,然后启动sql服务,新建一个和置疑数据库名字一模一样的数据库.然后再次停止sql服务,将刚才置疑的数据库文件复制回去替换掉新建的.然后再次启动sql服务.
四,这样启动sql服务之后在企业管理器里面看到该数据库还是置疑.但是因为ldf文件已经重建,我们可以开始对它进行修复了.
首先设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
use master
go
sp_configure allow updates,1
go
reconfigure with override
go
然后设置UFMeta_006紧急修复模式 update sysdatabases set status -32768 where dbid DB_ID UFMeta_006 此时可以在SQL Server Enterprise Manager里面看到该数据库为“紧急模式”。
然后执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log UFMeta_006,C:\Program Files\Microsoft SQL Server\MSSQL\Data\ UFMeta_006_log.ldf “该路径视你当初新建的数据库而定”
执行到该步骤之后如果发现数据库已经可以使用了,那么恭喜你,你的数据库问题不严重,以下的步骤都可以省略了.但是还是不能使用的话,请接着往下看.
五,验证数据库的一致性
dbcc checkdb UFMeta_006
如果出现错误一大堆也不要慌张,手动打开几张表,如果大部分数据都还在的话,这个数据库还是可以修复的.
首先
use master
declare @databasename varchar 255
set @databasename UFMeta_006
exec sp_dboption @databasename, Nsingle, Ntrue --将目标数据库置为单用户状态
dbcc checkdb @databasename,REPAIR_ALLOW_DATA_LOSS
dbcc checkdb @databasename,REPAIR_REBUILD
exec sp_dboption @databasename, Nsingle, Nfalse--将目标数据库置为多用户状态
然后再次dbcc checkdb UFMeta_006 如果还是有错误的话,就要先看看具体出现错误的是哪几张表了,然后接着使用
use 需要修复的数据库实体的名称
declare @dbname varchar 255
set @dbname UFMeta_006
exec sp_dboption @dbname,single user,true
dbcc checktable 需要修复的数据表的名称,REPAIR_ALLOW_DATA_LOSS
dbcc checktable 需要修复的数据表的名称,REPAIR_REBUILD
把需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称
exec sp_dboption @dbname,single user,false
这样应该就可以修复该数据库了,但是修复之后也可能会出现部分数据丢失,这也是没办法的事,总比不能使用好得多了,所以还是建议各位同仁做好数据库实时备份.
.
您可能关注的文档
最近下载
- 中储粮油脂有限公司2025年下半年招聘笔试模拟试题及答案解析.docx VIP
- 长庆低渗透油藏描述难点、主要做法及典型案例.pptx VIP
- 安徽省2024_2025学年高二化学上学期第一次月考试题.doc VIP
- 2025北京房山区区直部门和乡镇(街道)全日制临聘人员招聘37人笔试备考试题及答案解析.docx VIP
- 学校建筑结构设计计算书.doc VIP
- 《应用文写作》高职完整全套教学课件.pdf
- 【施工】劳动力计划安排.docx VIP
- 2025北京房山区区直部门和乡镇(街道)全日制临聘人员招聘补充考试备考题库及答案解析.docx VIP
- 2025年河北保定市莲池区招聘社区工作者80人备考练习试题及答案解析.docx VIP
- 2022-2023年药物制剂期末复习-药物制剂设备与车间工艺设计(药物制剂)考试全真模考卷9(附答案.docx VIP
文档评论(0)