SQL数据库文件损坏,怎么修复

SQL数据库文件损坏,怎么修复,第1张

可以修复,从故障解析,数据库损坏分为逻辑层损坏和物理层损坏。
1,逻辑损坏是指,文件本身完整,系统表在逻辑结构上混乱造成的错误。
2,物理损坏是指,文件由于不完整,导致置疑等故障
数据库损坏,由断电,非法关机,系统重启,文件被误删除,误ghost自己恢复出来的文件附加失败,阵列崩溃等原因造成的。
逻辑层修复方法,网上有很多dbcc修复命令,可以区尝试下、
物理层还是找专业人员吧!

仅仅从错误上的话,看不出比较具体的问题,不过有一点是:
就是log文件满了,已经写不进去了。
我觉得,很有可能就是,这个网站写的不好,
log随便打,以为这样可以安全的防范,有什么访问啊什么的都可以记录下来。
但是这也恰恰是的网站的性能一个桎梏。
如果说有什么要做的话,那要看你有什么权限了:
1重启数据库。
2清空log文件
3修改网站代码,将记录log简化

1停止SQL Server的服务,备份SQL Server安装目录下的\data子目录
下故障数据库的两个文件,一个数据文件hbposv6_branch_datamdf,
一个hbposv6_branch_logldf(也有可能非此命名),同时查看磁盘
空间是否有足够的空间;
2启动SQL Server服务(如已停止),创建一个新的数据库,命名为
原来数据库的名字。
3停止SQL Server
4把老数据库的MDF文件(hbposv6_branch_datamdf)替换
新数据库的相应的MDF文件,
并把LDF文件(hbposv6_branch_logldg)删除。
5重新启动SQL Server服务,然后运行如下命令:
Use Master
go
sp_configure 'allow updates', 1
reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = 'hbposv6_branch'
--Verify one row is updated before committing
commit tran
go
6停止SQL然后重新启动SQL Server服务,然后运行如下命令
(更换日志文件路径地址):
use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
('hbposv6_branch',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_logldf')
--在这里,请输入你的数据库的路径
go
7停止SQL然后重新启动SQL Server服务,然后运行:
use master
go
update sysdatabases set status = 8 where name = 'hbposv6_branch'
go
sp_configure 'allow updates', 0
reconfigure with override
go
8运行dbcc checkdb(db_name) 检查数据库的完整性
9修复数库
--请在查询分析器中执行下列语句执行前断开其它
所有数据库连接,最好是断开网线
--如果不是该数据库名,请将数据库
--hbposv6_branch
--改为要修复的数据库
USE master
Go
--单用户模式
EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
go
--数据库检查
DBCC CHECKDB ('hbposv6_branch')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
DBCC CHECKDB ('hbposv6_branch','repair_rebuild')
Go
--再次数据库检查,如果返回结果中没有了红色的提示文字,
说明修复成功;
DBCC CHECKDB ('hbposv6_branch')
Go
--否则意味着还需要更高级别的修复;尝试将上面修复语句的
'repair_rebuild'换为'repair_allow_data_loss'再试,
之后再次检查数据库。
--如果还有错误未修复,请把这些信息以文字的方式发给我们
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'
go
注:都要把 dbname 替换成真实的数据库名字。

sql2005数据库修复方法如下:
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL
Server
Management
Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter
database
dbname
set
emergency,将数据库设置为emergency
mode
10、运行下面的命令就可以恢复数据库:Titleuse
masterdeclare
@databasename
varchar(255)
set
@databasename='要恢复的数据库名称'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12809366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存