1.停止SQL Server的服务,备份SQL Server安装目录下的\data子目录
下故障数据库的两个文件,一个数据文件hbposv6_branch_data.mdf,
一个hbposv6_branch_log.ldf(也有可能非此命名),同时查看磁盘
空间是否有足够的空间;
2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为
原来数据库的名字。
3.停止SQL Server
4.把老数据库的MDF文件(hbposv6_branch_data.mdf)替换
新数据库的相应的MDF文件,
并把LDF文件(hbposv6_branch_log.ldg)删除。
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_log.ldf')
--在这里,请输入你的数据库的路径
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 替换成真实的数据库名字。
B. 如何修复sql数据库数据不一致
修复sql2000数据库置疑在实际的操作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQLServerEnterpriseManager里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。E.设置数据库允许直接操作系统表。此操作可以在SQLServerEnterpriseManager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。usemastergosp_configure'allowupdates',1goreconfigurewithoverridegoF.设置test为紧急修复模式updatesysdatabasessetstatus=-32768wheredbid=DB_ID('test')此时可以在SQLServerEnterpriseManager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表G.下面执行真正的恢复操作,重建数据库日志文件dbccrebuild_log('test','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\test_log.ldf')执行过程中,如果遇到下列提示信息:服务器:消息5030,级别16,状态1,行1未能排它地锁定数据库以执行该操作。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQLServerEnterpriseManager打开了test库的系统表,那么退出SQLServerEnterpriseManager就可以了。正确执行完成的提示应该类似于:警告:数据库'test'的日志已重建。已失去事务的一致性。应运行DBCCCHECKDB以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。此时打开在SQLServerEnterpriseManager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。H.验证数据库一致性(可省略)dbcccheckdb('test')一般执行结果如下:CHECKDB发现了0个分配错误和0个一致性错误(在数据库'test'中)。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。I.设置数据库为正常状态sp_dboption'test','dbouseonly','false'如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQLServerEnterpriseManager里面恢复,也可以使用如下语句完成sp_configure'allowupdates',0goreconfigurewithoverridego
C. 什么方法可以修复SQL server数据库
SQL Server 2000数据库LDF损坏,只有mdf的恢复方法。
SQL Server 2000数据库文件遭到破坏的现象经常出现,数据库出错是否可以修复呢?答案是可以的,本日志以一个sql server 2000数据库,数据库日志文件ldf损坏了,mdf正常,数据库附加失败的修复方法总结一下,数据库数据恢复在很多时候比较复杂,当数据库存在大量错误的时候,使用DBCC修复也是不可以的,需要拆解数据库来抢救重要的数据,下面是较为常见的一种SQL Server 2000数据库修复方式:
1) 先及时把原来的数据库文件(如test.mdf)备份到其他地方。
2) 停掉服务器。
3) 删除这个test.mdf。
4) 重新建立一个test同名数据库。
5) 删除这个新建立的test数据库的test.ldf文件,并用开始备份好test.mdf文件覆盖这个新建立的test.mdf文件。
6) 启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。
.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”。
7) 设置test为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
8) 下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
执行过程中,如果遇到下列提示信息:
服务器: 消息 5030,级别 16,状态 1,行 1
未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
说明您的其他程序正在使用该数据库,如果刚才您在操作中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。
正确执行完成的提示应该类似于:
警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
9) 验证数据库一致性
dbcc checkdb('test')
10.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
11)最后一步,我们要将步骤6中设置的“允许对系统目录直接修改”一项恢复;
D. 日志文件丢失或出错的情况下如何恢复SQL数据库
1. 新建数据库(同名)
2. 停掉数据库
3. 删除新建数据库的日志文件,用要恢复的覆盖mdf文件
4. 启动数据库服务器
5. 设置数据库允许直接操作系统表
6. 设置数据库为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('dbDataHome')
7. 重建数据库日志文件
dbcc rebuild_log('dbDataHome','D:\Data\dbData_Data.LDF')
8. 验证数据库一致性(可省略)
dbcc checkdb('dbDataHome')
9.设置数据库为正常状态
exec sp_dboption 'dbDataHome','dbo use only','false'
10. 最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。
E. 如何恢复和修复MS SQL数据库的MDF文件[2]
怎么办呢?别着急 下面我们举例说明恢复办法
A 我们使用默认方式建立一个供恢复使用的数据库(如test) 可以在SQL Server Enterprise Manager里面建立
B 停掉数据库服务器
C 将刚才生成的数闷谈仿据库的日志文件test_log ldf删除 用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data mdf
D 启动数据库服务器 此时会看到数据库test的状态为 置疑 这时候不能对此数据库进行任何操作
E 设置数据库允许直接
操作系统表 此操作可以在SQL Server Enterprise Manager里面选择数据库服务器 按右键 选择 属性 在 服务器设置 页面中将蚂纤 允许对系统目录直接修改 一项选中 也可以使用如下语句来实现
以下是引用片段 usemaster go sp_configure allowupdates go reconfigurewithoverride go
F 设置test为紧急修复模式
update sysdatabases set status= where dbid=DB_ID( test )
此时可以在SQL Server Enterprise Manager里面看到该数据库处于 只读置疑脱机紧急模式 可以看到数据库里面的表 但是仅仅有系统表
G 下面执行真正的恢复操作 重建数据库日志文件
dbcc rebuild_log( test C:Program FilesMicrosoft SQL ServerMSSQLData est_log ldf )
执行过程中 如果遇到下列提示信息
服务器: 消息 级别 状态 行
未能排它地锁定数据库以执行该操作
DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统管理员联系
说明您的其他程序正在使用该数据库 如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表 那么退出SQL Server Enterprise Manager就可以了
正确执行完成的提示应该类似于
警告: 数据库 test 的日志已重建 已失去事务的一致性 应运行 DBCC CHECKDB 以验证物理一致性 将必须重置数据库选项 并且可能需要删除多余的日志文件
DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统管理员联系
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为 只供DBO使用 此时可以访问数据库里面的用户表了
H 验证数据库一致性(可省略)
dbcc checkdb( test )
一般执行结果如下
CHECKDB 发现了 个分配错误和 个一致性错误(在数据库 test 中)
DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统管理员联系
I 设置数据库为正常状态
sp_dboption test dbo use only false
侍拍如果没有出错 那么恭喜 现在就可以正常的使用恢复后的数据库啦
J 最后一步 我们要将步骤E中设置的 允许对系统目录直接修改 一项恢复 因为平时直接操作系统表是一件比较危险的事情 当然 我们可以在SQL Server Enterprise Manager里面恢复 也可以使用如下语句完成
以下是引用片段 sp_configure allowupdates go reconfigurewithoverride go
lishixin/Article/program/SQL/201311/16354
F. 如何修复SQL数据库置疑
步骤如下:迟信告
停止SQL服务管理器,将原数据文件拷贝进行备份,然后将原数据库删除;启动SQLServer服务,创建一个新的数据库,命名为原来数据库的名字;停止SQLServer服务,用备份出来的老数据库的MDF文件替换新数据库相应的MDF文件,并把新数据库相应的LDF文件码明删除;重新启动SQLServer服务,然后运行命令;停止SQL然后重新启动SQLServer服务,然后运行命令坦键;运行hbfsv8检查数据库的完整性;进行数据库修复;修复成功后,返回多用户模式。
G. SQL数据库文件损坏,怎么修复
如果只是BLACK.LST丢失或损坏应该可以进行更新来修复,因为更新的时候一部分就是在更新此文件...如果无法更新,无须完全卸载,直接重新装下,覆盖下即可
H. 怎么修复sql2005数据库
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='要恢复的数据库名称'
I. SQL数据库如何还原
把数据库的备份文件放到服务器的任意目录下先, 然后按下面的步骤做。
如何从备份设备还原备份(企业管理器) ,从备份设备配厅销还原备份 。
展开服务器组,然后展开服务器。
展开"数据库"文件夹,右击数据库,指向"所有任务"子菜单,然后单击"还原数据库"命令。
在"还原为数据库"框中,如果要还原的数据库名称与显示的默认数据库名称不同,请在其中进行输入或选择。
若要用新名称还原数据库,请输入新的数据库名称。
说明 为数培游据库指定新名称将自动为从数据库备份中还原的数据库文件指定新名称。
单击"从设备",然后单击"选择设备"。
在"还原自"下,单击"磁带"或"磁盘",然后选择还原设备。
如果没有出现设备,则单击"添加"以添加现有的备份设备或创建新的备份设备。
在"还原数据库"对话框内,单击"查看内容"并选择要还原的备份集。
说明 此选项将扫描备份集以获得备份内容信息,该操作可能需要花费较长时间,特别是在使用磁带设备时。
如果已经知道要还原的备份集,则在"备份号"中输入备份集编号。
在"还原备伏大份集"下执行下列操作之一: 单击"数据库 — 完全"还原数据库备份。
单击"数据库 — 差异"还原差异数据库备份。
单击"事务日志"应用事务日志备份。