- 21
- 0
- 约2.38千字
- 约 5页
- 2017-08-26 发布于河南
- 举报
数据库出现问题与解决方法
数据库出现问题与解决方法
------------------------------------------数据库常见问题的解决方法-------------------------------------------------
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K,再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = pubs
EXEC sp_attach_single_file_db @dbname = pubs,
@physname = c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 如果想以后不让它增长
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M
--压缩日志
1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K,再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = pubs
EXEC sp_attach_single_file_db @dbname = pubs,
@physname = c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf
对于有两个库文件的数据库请用下面的语句:exec sp_attach_db @dbname = pubs, @filename1 = c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf, @filename2 = c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs1_Data.NDF
如果数据库有两个日志文件,则以上方法就不行了。需要删掉其中一个日志文件,方法如下:截断事务日志:
BACKUP LOG otsp WITH NO_LOG
清空日志
DUMP TRANSACTION otsp WITH NO_LOG
删除LOG文件
企业管理器->服务器->数据库->右键->属性->日志文件->选择第二个日志文件删除->确定再按上面说的删除日志的方法去附加数据库,就成功了
4: 如果想以后不让它增长企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)5.设置为自动收缩企业管理器--服务器--右键数据库--属性--选项--选择自动收缩
--还不行,就关闭用户打开的进程处理,在查询分析器中执行下面的语句
use master
go
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_killspid]) and OBJECTPROPERTY(id, NIsProcedure) = 1)
drop procedure [dbo].[p_killspid]
GO
create proc p_killspid
@dbname varchar(200) --要关闭进程的数据库名
as
原创力文档

文档评论(0)