如何清除SQLserver 日志

如何清除SQLserver 日志,第1张

打开企业管理器,右键单击你要删除日志数据库->属性,选择事务日志,选择你要删除的日志文件,点删除。 记得备份

EXEC sp_detach_db @dbname = '数据库名'

/

先执行上面语句,再访问到那个数据库目录下删除日志文件后,执行下面语句!

/

EXEC sp_attach_single_file_db @dbname = '数据库名',

@physname = 'd:\Microsoft SQL Server\MSSQL\Data\数据库名'_Datamdf'

1、确定SQL数据库安装路径与所用SQL数据库名称

2、点击开始--程序--Microsoft

SQL

Server--查询分析器--确定进入软件里点击菜单帮助--Transact-sql帮助(S)--索引--输入(sp_attach_single_file_db),右边对框里找下命令或者空白处直接输入下命令:

EXEC

sp_detach_db

@dbname

=

'pubs'returnEXEC

sp_attach_single_file_db

@dbname

=

'pubs',

@physname

=

'c:\Program

Files\Microsoft

SQL

Server\MSSQL\Data\pubsmdf'

注意:return加入命令语名数据库(LDF与MDF)分离再数据库名改回所要选即pubs改J2002即:

EXEC

sp_detach_db

@dbname

=

'

J2002'returnEXEC

sp_attach_single_file_db

@dbname

=

'

J2002',

@physname

=

'c:\Program

Files\Microsoft

SQL

Server\MSSQL\Data\

J2002mdf'

3、输入命令点击菜单查询--执行下面对框出现命令"命令已成功完成"

4、删除命令(EXEC

sp_detach_db

@dbname

=

'

J2002'

return)进入安装SQL数据库路径里J2002ldf文件重命名

5、接着第3点开始点击菜单查询--执行下面对框出现命令"设备激活错误物理文件名

'C:\Program

Files\Microsoft

SQL

Server\MSSQL\Data\J200188ldf'

能有误已创建名

'c:\Program

Files\Microsoft

SQL

Server\MSSQL\Data\j200188_logLDF'

新日志文件"

sql server数据库使用时间长了,日志文件会很大,占用过多系统资源,数据库可能会报 log full 的错误,甚至磁盘空间占满让数据库处于不可用状态,这个时候我们需要清理数据库:

清理sql server数据库日志可用两种方法:

方法一:清空日志。

1、打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG

2、再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至: ,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

方法二:有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。

1、删除LOG

分离数据库 企业管理器->服务器->数据库->右键->分离数据库

2、删除LOG文件

附加数据库 企业管理器->服务器->数据库->右键->附加数据库

此法生成新的LOG,大小只有500多K。

注意:建议使用第一种方法。

如果以后,不想要它变大。

SQL2000下使用:

在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。

或用SQL语句:alter database 数据库名 set recovery simple

另外,数据库属性有两个选项,与事务日志的增长有关:

Truncate log on checkpoint

(此选项用于SQL70,SQL 2000中即故障恢复模型选择为简单模型)

当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True

定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。

注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。

清理sql server 2008日志步骤如下:1将数据库设置成 简单 模式选择要收缩的数据库,点右键 属性->选项,选择 简单模式2选择任务->收缩->文件3选择日志或者用如下语句代码USE [master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLEGOUSE DNName GODBCC SHRINKFILE (N'LogFileName' , 0,TRUNCATEONLY)GOUSE [master]GOALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY FULLGOSQL Server 2000要清理日志使用的是dump语句,但是在SQL Server2008里,这个语句不管用了,如果日志文件很大,比如超过1G,就需要截断一下日志文件以加快sqlserver的运行速度,在SQL Server2008里,方法改为:有数据库 xxdb 在 SQL Server 2008 下,日志文件已经超过1G。以往使用BACKUP语句-BACKUP LOG xxdb WITH NO_LOG 已经失效,在查阅 MSDN 之后发现 MS 提供的标准截断日志语句已经变为了 “BACKUP LOG 语句不指定 WITH COPY_ONLY”使用语句 BACKUP LOG xxdb to disk='x:\work\1bak' 成功将日志文件备份,并截断日志文件。这里x:代表你想要备份文件的盘符。然后使用 DBCC SHRINKFILE (xxdb_log,10) 收缩日志文件到 10M总结:完整的收缩日志文件的 T-SQL 语句:BACKUP LOG xxdb to disk='x:\work\1bak'DBCC SHRINKFILE (xxdb_log,10)GO--BACKUP LOG <db_name> to disk=<'backupfilename'>DBCC SHRINKFILE (<log_filename>,10)GO里面的x:\work是随意设置的。当然也可以收缩到比如5M或1M。在用的:USE[master]GOALTERDATABASEYHDBSETRECOVERYSIMPLEWITHNO_WAITGOALTERDATABASEYHDBSETRECOVERYSIMPLE--简单模式GOUSEYHDBGODBCCSHRINKFILE(N'YHDB_log', 11,TRUNCATEONLY)GOUSE[master]GOALTERDATABASEYHDBSETRECOVERYFULLWITHNO_WAITGOALTERDATABASEYHDBSETRECOVERYFULL--还原为完全模式GO

USE [master]

GO

ALTER DATABASE AFMS SET RECOVERY SIMPLE WITH NO_WAIT

GO

ALTER DATABASE AFMS SET RECOVERY SIMPLE

GO

USE AFMS

GO

DBCC SHRINKFILE (N'AFMS_Log' , 11, TRUNCATEONLY)

GO

USE [master]

GO

ALTER DATABASE AFMS SET RECOVERY FULL WITH NO_WAIT

GO

ALTER DATABASE AFMS SET RECOVERY FULL

GO

2截断事务日志:BACKUP LOG 数据库名WITH NO_LOG3收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select from sysfilesDBCC SHRINKFILE(1) 代码如下复制代码backup, log, 模式-- 第一步:清空日志DUMP TRANSACTION [YZGA] WITH NO_LOG-- 第二步:截断事务日志BACKUP LOG [YZGA] WITH NO_LOG-- 第三步:收缩数据库尽管可用该选项手动截断事务日志,但是我们极力建议您不要这样做,因为这会将日志链断开。在下一次完整备份或完整差异备份之前,将无法为数据库提供媒体故障保护。只在非常特殊的情况下才手动截断日志,并立即创建数据备份。 删除日志方法二1、进入企业管理器,选中数据库,比如it,所有任务->分离数据库。2、如果数据库正在连接使用,要先点清除,才可以选确定。3、到数据库文件的存放目录,将it_logLDF文件删除,不放心可以先拷到别的地方。4、进入企业管理器,数据库->所有任务->附加数据库。5、选择it_DataMDF,这个时候你会看见日志文件这项是一个红叉,不要紧点确定。6、此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。

可以的

打开 SQL Server Management Studio并连接到数据库引擎数据库。

在“对象资源管理器”窗格中展开“数据库”节点。

右击要修改的数据库,在d出的快捷菜单中选择“属性”命令,打开“数据库属性”,对话框,选择“文件”选项,显示文件设置界面。

若要添加文件,单击“添加”按钮,在“数据库文件”列表框中将出现一个新的文件,设置该文件的各个参数即可。

若要删除文件,选中要删除的文件后单击“删除”按钮即可。需要注意的是,删除数据文件和日志文件时,必须确保文件里面不能包含数据或日志,即是空文件。

完成相应的 *** 作后,单击“确定”按钮。

参考资料

SQL数据库日志文件,可以删除吗?百度经验[引用时间2018-1-3]

以上就是关于如何清除SQLserver 日志全部的内容,包括:如何清除SQLserver 日志、SQL数据库如何删除日志ldf、sql server 2005 清空日志会怎样的后果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9408757.html

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

发表评论

登录后才能评论

评论列表(0条)

保存