1.如何截断sqlserver巨大的日志文件
对于数据库用的时间长了,就会产生大量的日志文件,清理日志文件的方法,步骤如下:
--选择需要使用的数据库: USE DATABASENAME;GO
--将数据库设置为SIMPLE 独占模式:ALTER DATABASE DATABASENAMESET RECOVERY SIMPLE;GO
--将日志文件收缩到1M: DBCC SHRINKFILE (DATABASENAME_Log, 1);GO
--还原数据库到正常模式: ALTER DATABASE DATABASENAMESET RECOVERY FULL;GO
--MyDB为修复的数据名
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASEMyDBSET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASEMyDBSET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'MyDB', 'single user', 'false'
GO
3.执行select查询语句,警告显示:“LOB数据类型节点的数据库ID 30,页(1:438),槽7不存在。
这通常是由于可以读取数据页上未提交的数据的事务所致。请运行DBCC CHECKTABLE”,方法/步骤:
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'--将目标数据库置为多用户状态

微信公众号