修复SQLSERVER 数据库一致性错误与分配错误
2013-09-06 09:46
429 查看
一、把数据库置为单用户模式:
sp_dboption '数据库名称', 'single user', 'true'
二、在允许数据丢失情况下修复数据库:
DBCC checkdb('数据库名称',REPAIR_ALLOW_DATA_LOSS)
如果执行一次不行,可以在多执行几次直到没有再提示数据库有错误为止。
三、把数据库重新设置为多用户模式:
sp_dboption '数据库名称', 'single user', 'false'
这样这个数据库的错误修复就完成了。然后停止掉SQLSERVER,重新启动服务器就可以。
这种方法对于一般出现问题可以不用安装企业管理器,直接在服务器用OSQL –E 进入数据库,然后通过上面两条命令来修复数据库。这样速度比较快!
其他人提供的方法:
一、DBCC CHECKDB :
在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use master
declare @databasename varchar(255)
set @databasename='需要修复的数据库名称'
exec sp_dboption @databasename, N'single', N'true'
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'
然后执行 DBCC CHECKDB('需要修复的数据库名称') 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname='需要修复的数据库实体的名称'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
exec sp_dboption @dbname,'single user','false'
sp_dboption '数据库名称', 'single user', 'true'
二、在允许数据丢失情况下修复数据库:
DBCC checkdb('数据库名称',REPAIR_ALLOW_DATA_LOSS)
如果执行一次不行,可以在多执行几次直到没有再提示数据库有错误为止。
三、把数据库重新设置为多用户模式:
sp_dboption '数据库名称', 'single user', 'false'
这样这个数据库的错误修复就完成了。然后停止掉SQLSERVER,重新启动服务器就可以。
这种方法对于一般出现问题可以不用安装企业管理器,直接在服务器用OSQL –E 进入数据库,然后通过上面两条命令来修复数据库。这样速度比较快!
其他人提供的方法:
一、DBCC CHECKDB :
在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use master
declare @databasename varchar(255)
set @databasename='需要修复的数据库名称'
exec sp_dboption @databasename, N'single', N'true'
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'
然后执行 DBCC CHECKDB('需要修复的数据库名称') 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname='需要修复的数据库实体的名称'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
exec sp_dboption @dbname,'single user','false'
相关文章推荐
- 修复数据库出现一致性错误的方法
- Sqlserver附加数据库错误823的解决方案824错误修复软件mdf附加失败绿色版
- 数据库 CHECKDB 发现了x个分配错误和 x 个一致性错误
- 用友U8数据库修复用友t3数据库修复用友/823错误824错误/检测到基于一致性的逻辑 I O 错误/ tempdb 空间用尽或某一系统表不一致
- SqlServer附加数据库出错,错误代码5123
- sqlserver数据库一致性错误修复
- sqlserver附加数据库时显示错误5120解决办法
- DBCC 数据库错误检查与修复(转)
- 解决Kettle数据库连接sqlserver错误一则
- sqlserver 此数据库没有有效所有者错误的解决方法
- SQLServer: 解决“错误15023:当前数据库中已存在用户或角色”
- sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)
- sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)
- 如何修复SQLSERVER 数据库"置疑"之(二)
- sqlserver 登录时 默认数据库找不到错误(4064)解决
- sqlserver附加数据库错误823的解决方案
- SQLSERVER主数据库损坏修复方法
- (转)看到网上有很多关于这个的帖子,但在执行“设置test数据库为紧急修复模式”时,SQL Server 2008总是失败。哪位大侠给个SQLServer 2008的有效方法。
- sqlserver 2005附加数据库的时候发生错误
- 关于SQLServer无法对数据库'XXX'执行删除,因为它正用于复制。错误:'3724' 的解决方案