几种清除MSSQL日志方法
清除sql日志
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。
以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
如何清理SQL_2005的日志文件与压缩数据库
SQL 2005数据库日志文件过大,清理日志分离数据库,然后执行语句exec sp_attach_single_file_db '数据库名称', '数据库路径'附上其他参考方法:1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
清除Log有两种方法:1.自动清除法开放数据库选项Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。
此方法的优点是无须人工干预,由SQLServer自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。
2.手动清除法执行命令“dump transaction”来清除Log。
以下两条命令都可以清除日志:dump transaction with truncate_onlydump transaction with no_log通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。
SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。
为了尽量确保数据库的一致性,你应将它作为“最后一招”。
以上两种方法只??清除日志,而不做日志备份,若想备份日志,应执行“dump transactiondatabase_name todumpdevice”命令。
PS:附一个更好的方法先分离数据库后,直接删除日志以后,再在查询分析器里用exec sp_attach_single_file_db '数据库名', '.mdf文件路径'命令附加数据库。
SQL日志文件太大清理方法
SQL日志文件太大清理方法当SQL日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。
下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。
这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。
可以使用数据库管理工具或命令行工具进行备份。
2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。
压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。
在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。
3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。
通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。
这样,可以释放当前的日志文件空间,并保留原始的日志记录。
具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。
4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。
删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。
但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。
需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。
因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。
此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。
在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。
SQL SERVER清除日志的四种方法
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
SELECT @LogicalFileName = 'tablename_log', -- 日志文件名
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
如何清除SQL日志
如何清除SQL日志删除MS SQL Server 2000日志1.打开MS SQL Server 2000企业管理器2.打开数据库,选中需要删除日期的数据库,点击“察看”,选择“任务板”:3.鼠标右键点中需要删除日期的数据库,选择右键菜单“所有任务”-“备份数据库”:4.选择“事务日志”:5.点击“添加”,选择“文件名”:6.选择备份目录,输入文件名,点击“确定”:7.点击“确定”:8.选择“重写现有媒体”,点击“确定”:9.开始备份:10.备份完成:事务日志删除了一部分,如果还不够小,则再重复一次。
11.重新鼠标右键点中需要删除日志的数据库,选择右键菜单“所有任务”-“收缩数据库”:12.点击“文件”:13.选择日志“数据库文件”,在“收缩操作”中选择“从文件结尾截断可用空间”,点击“确定”:14.日志收缩完毕:关于SQL Server事务日志的问题汇总1、用BACKUP LOG database WITH NO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全。
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,删除主数据库事务日志文件步骤如下:(1)、分离数据库:企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库(2)、然后删除日志文件(3)、然后再附加数据库:企业管理器--数据库--右击数据库--所有任务--附加数据库。
这时候只附加mdf就可以了。
清理 sql server 数据库日志的几种方法
清理 SQL Server 数据库日志的几种方法随着企业数据量的不断增加,数据库的日志文件也会随之增长。
数据库日志文件的不断增长会消耗大量磁盘空间,甚至会影响数据库的性能。
定期清理数据库日志是数据库管理的一个重要环节。
本文将介绍清理 SQL Server 数据库日志的几种方法,帮助数据库管理员解决数据库日志文件过大的问题。
一、备份事务日志1. 利用 SQL Server Management Studio (SSMS) 进行备份通过使用 SSMS,可以进行数据库事务日志的定期备份。
在 SSMS 中选择要备份的数据库,右键点击“任务”->“备份”,在备份类型中选择“仅事务日志”,即可完成事务日志的备份。
2. 利用 T-SQL 命令进行备份在 SQL Server 中,可以通过使用 T-SQL 命令进行事务日志的备份。
例如:```BACKUP LOG [数据库名] TO DISK = '备份文件路径' WITH NOFORMAT, NOINIT, NAME = '备份名称', SKIP, NOUNLOAD, STATS = 10```通过上述两种备份方式,可以定期备份数据库的事务日志,避免日志文件过大。
二、修改日志文件的增长方式1. 修改日志文件增长的百分比在数据库管理中,可以通过修改数据库的日志文件的增长百分比来控制日志文件的增长。
通过减小增长百分比,可以减缓日志文件的增长速度,从而减少磁盘空间的消耗。
2. 修改日志文件的增长大小除了修改增长百分比外,还可以通过修改日志文件的增长大小来控制日志文件的大小。
将增长大小设置为一个合适的值,可以避免日志文件过大,减少磁盘空间的占用。
三、截断事务日志1. 利用 SQL Server Management Studio (SSMS) 进行截断通过使用 SSMS,可以对数据库的事务日志进行截断。
在 SSMS 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。
MSSQLServer数据库清理错误日志的方法
MSSQLServer数据库清理错误⽇志的⽅法SQL错误⽇志记录了数据库运⾏过程的遇到的各种问题及⼀些重要信息,作为排错需要,我们通常都不会主动去清理这些⽇志⽂件,只有每次重启服务器时,SQL会⾃动删除时间最⽼的⽇志⽂件,并新⽣成⼀个⽇志⽂件。
通过在服务器上查看数据库的⽇志⽂件,发现存在⼤量的query notification dialog的信息,⽽且出现的频率⾮常的⾼,导致⽇志⽂件增⼤⾮常快。
通过google了解到这个错误跟service broker的消息机制由关系,可以通过使⽤跟踪标记:DBCC TraceOn(4133,-1)可消除此信息。
不过现在的当务之急是如何清掉这些⽇志信息,最简单的办法就是到SQL的⽇志⽬录中删除这些⽇志⽂件即可,不过考虑到删除之前需要停⽌SQL Server服务,可能会导致缓存中的数据丢失,因此,这不是推荐的做法。
那么正确的做法应该怎样呢?执⾏如下语句:EXEC sp_cycle_errorlog;每执⾏⼀次SQL会⾃动初始化⼀个⽇志⽂件,将⽇志的内容清空,当SQL有7个⽇志⽂件时(默认),请执⾏7次该操作,每次会将⽇志⽂件时间最⽼那个清空。
读者不必担⼼清空会消耗很长的时间,我这边的有个⽇志有40G,命令执⾏完后,该⽂件⽴即清空了。
在时间紧急的情况,这种⽅式尤为⽅便。
那么有没有办法设置每个⽇志⽂件的固定⼤⼩呢?查过这⽅⾯的资料,有⼈说可以在注册表中设置ErrorLogSizeInKb的⼤⼩,不过仅限于SQL2012,其他版本的数据库设置后不⽣效,这个我没有验证过,有兴趣的朋友可以⼀起讨论下。
数据库⽆⽇志报错恢复造成原因,客户的SqlServer为2000版本,由于⽇志过⼤⽆⼈管理,没有空间了,然后客户分离数据库想删除⽇志(据说200G的⽇志=.=),然后显⽰分离出错,但是刷新后数据库却已经分离,删除⽇志后,数据库⽆法附加,经过在⽹上查询,总结出以下办法,幸好有⽤的表都没有损坏,只有统计表数据损坏,不过没关系反正作业会重置这些表的.--确保企业管理器没有打开任何数据库--设置数据库紧急状态use mastergosp_configure 'allow updates',1goreconfigure with overridego--设置数据库为紧急模式update sysdatabases set status=-32768 where dbid=DB_ID('Procurement')--重建数据库⽇志⽂件dbcc rebuild_log('Procurement','D:\Procurement_log.ldf')--验证数据库⼀致性(可省略)dbcc checkdb('Procurement')--设置数据库为正常状态sp_dboption 'Procurement','dbo use only','false'--最后⼀步,我们要将步骤E中设置的“允许对系统⽬录直接修改”⼀项恢复sp_configure 'allow updates',0goreconfigure with overridego现在你的数据库就允许连接了,现在可以查看⼀下每个表的数据是否有问题,如果有问题,只能找专业的数据回复了。
SQL日志文件太大,清理方法
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
07. exec('DBCC SHRINKDATABASE(['+@DBName+'])')
08.End
view plaincopy to clipboardprint?
01.--删除数据库日志
02.ALTER PROCEDURE [dbo].[NS_ShrinkLog]
03.@DBName nchar(50)
04.AS
05.Begin
MSSQL清空日志删除日志文件
MSSQL清空日志删除日志文件最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,造成新数据库的日志文件非常大;或者数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。
于是想把日志文件删除。
最简单就是先分离数据库-》删除日志文件-》最后附加数据,我这里需要在SSIS中调用,所以已sql脚本为主。
两种简单的清除日志的方法:一分离附加法:1、首先把数据库分离,分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离,其中药勾选删除连接!分离后在数据库列表将看不到已分离的数据库。
2、删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件3、附加数据库,附加的时候会提醒找不到log文件。
到时附加上后会自动创建一个新的日志文件,从而达到清理数据库的目的二、sql语句清除mssql日志DUMP TRANSACTION TestDB WITH NO_LOG 清除日志DBCC SHRINKFILE ('TestDB_log',1) 收缩数据库文件BACKUP LOG TestDB WITH NO_LOG 截断事务日志该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。
首先我们需要获取数据库文件的路径:declare @logfilename varchar(100)declare @datafilename varchar(100)select @logfilename=physical_name from sys.database_files where type=1select @datafilename=physical_name from sys.database_files where type=0然后切换到master下,分离数据库use masterexec sp_detach_db @dbname='TestVFA';紧接下来就是删除数据库日志文件----Remove fileDECLARE @Result intDECLARE @FSO_T oken intEXEC @Result = sp_OACreate 'Scripting.FileSystemObject', @FSO_Token OUTPUTEXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFile', NULL, @logfilenameEXEC @Result = sp_OADestroy @FSO_Token最后就是附加数据库exec sp_attach_single_file_db @dbname='TestVFA',@physname=@datafilename注意:默认Ole Automation Procedures 是禁用的我们需要启用它exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;。
【2018-2019】sql清理日志-word范文模板 (11页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==sql清理日志篇一:SQL Server201X日志清除Sql数据库日志清除方法一、简单方法1、右键数据库→属性→选项→故障还原模型→设为简单→确定;2、右键数据库→所有任务→收缩数据库→确定;3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。
二、复杂方法1、清空日志DUMP TRANSACTION 库名 WITH NO_LOG2、截断事务日志BACKUP LOG 数据库名 WITH NO_LOG3、收缩数据库文件(如果不压缩,数据库的文件不会减小)企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)4、为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离E(来自:WWw. : sql清理日志 )XEC sp_detach_db @dbname = 'pubs'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = 'pubs',@physname ='c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5、为了以后能自动收缩,做如下设置企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式:EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'6、如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)篇二:SQL_Server_自动清除日志文件方法SQL Server自动备份清除日志文件一、自动备份数据库日志打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。
SQL自动备份及自动清除日志文件
mssql自动备份及自动清除日志文件教程2009-08-08 17:24mssql自动备份及自动清除日志文件教程1、每日自动备份强烈建议有条件的用户进行此操作!1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器2、然后点上面菜单中的工具--选择数据库维护计划器3、下一步选择要进行自动备份的数据--下一步更新数据优化信息,这里一般不用做选择--下一步检查数据完整性,也一般不选择4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:ddatabak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名一般都是bak就用默认的6、下一步指定事务日志备份计划,看您的需要做选择--下一步要生成的报表,一般不做选择--下一步维护计划历史记录,最好用默认的选项--下一步完成7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务8、这个时候数据库计划已经成功的运行了,他将按照您上面的设置进行自动备份修改计划:1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器--管理--数据库维护计划--打开后可看到你设定的计划,可以进行修改或者删除操作2、定期自动清理数据库日志文件数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。
教你如何清除SQL日志
教你如何清除SQL日志在数据库管理系统中,SQL日志(又称事务日志)是记录数据库操作的重要组成部分。
它包含了每个SQL语句的详细信息,包括执行时间、执行结果、错误信息等等。
虽然SQL日志对于数据库运维和故障排查非常有用,但它也会占用大量的存储空间。
当日志文件过大时,不仅会占用磁盘空间,还会影响数据库性能。
1.压缩日志文件压缩日志文件是清除SQL日志的一种简单方法。
在许多数据库管理系统中,可以通过执行特定的备份命令来完成该过程。
备份会将日志文件中的已提交事务信息保存到备份文件中并压缩原始日志文件。
这种方法不会丢失任何已提交的事务数据,并且可以减小日志文件的大小。
但需要注意的是,压缩日志文件的操作可能会导致一些数据库性能下降,因为日志文件被磁盘I/O操作占用。
2.截断日志截断日志是一种将日志文件中已经完成的事务信息删除的方法。
截断日志可以实现通过释放日志文件空间来减小文件大小的目的。
虽然这种方法可以很好地清除日志文件,但需要谨慎处理。
如果在截断操作过程中出现故障或错误,可能会导致未提交的事务数据丢失。
因此,在执行截断日志之前,务必备份数据库以确保数据的安全。
3.调整日志文件大小另一种清除SQL日志的方法是调整日志文件的大小。
在一些数据库管理系统中,可以通过修改配置文件或使用特定的命令来调整日志文件的大小。
通过减小日志文件的大小,可以释放磁盘空间,并且可以同时减少数据库系统需要维护的日志信息量。
4.增加日志文件的自动增长阈值大多数数据库管理系统允许设置日志文件的自动增长阈值。
当日志文件达到预设的阈值时,数据库系统会自动增加文件的大小。
通过增加自动增长阈值,可以在一定程度上减少频繁清除日志文件的操作。
但需要注意的是,如果设置的阈值过大,可能会导致日志文件变得过大,影响数据库性能。
因此,需要根据数据库的负载和磁盘空间等因素进行合理的设置。
总的来说,清除SQL日志是数据库维护的重要任务之一、根据具体的数据库管理系统和运维需求,可以采用不同的方法进行清除。
几种清除MSSQL日志的方法
方法一、MS SQL清除日志的命令如何清除sql server 日志?设置数据库为简单模式,自动收缩1.打开查询分析器,输入命令backup log databasename with no_log2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了。
dbcc shrinkfile (databasename_log,truncateonly)方法三、1: 删除LOG第1步:分离数据库企业管理器->服务器->数据库->右键->分离数据库第2步:删除LOG文件第3布:附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K再将此数据库设置自动收缩方法四、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'方法五、Use Database_NameBackup Log Database_Name With No_logdbcc shrinkfile (Database_Name_Log,truncateonly)Go直接在查询分析那里执行backup log databasename with no_log然后回到企业管理器把数据库收缩一下(可能需另外设置属性)如果以后,不想要它变大。
SQL2000下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:alter database 数据库名set recovery simple另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True Auto shrink定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
广州速达软件SQL数据库日志文件清空技术
SQL数据库日志文件过大清理方法一:只做清理不做备份1、打开查询分析器,输入命令DUMP TRANSACTION数据库名WITH NO_LOG2、再打开企业管理器--右键你要压缩的数据库—选择所有任务—选择收缩数据库—选择文件(或收缩文件)--选择日志文件--在收缩方式里选择收缩方式—点击确定—再点击确定。
补充说明:如果要将日志文件缩至指定大小,则需要选择【收缩文件至】,并填写大小XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,也可以。
方法二:可以进行手动备份先分离数据库后,直接删除日志以后,然后在通过查询分析器执行下列语句进行附加数据库exec sp_attach_single_file_db'数据库名','.mdf文件路径'方法三:设置自动清除法开放数据库选项Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。
此方法的优点是无须人工干预,由SQLServer自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。
方法四:通过sql语句进行手动清除法执行命令“dump transaction”来清除Log。
以下两条命令都可以清除日志:1、dump transaction with truncate_only2、dump transaction with no_log补充说明:通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。
SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。
为了尽量确保数据库的一致性,你应将它作为“最后一招”。
相关补充说明:1.清空日志DUMP TRANSACTION库名WITH NO_LOG2.截断事务日志:BACKUP LOG数据库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select*from sysfiles DBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs中的一个文件附加到当前服务器。
将MSSQL数据库里数据清空以及更新数据的方法
将MSSQL数据库里数据清空以及更新数据的方法.txt心态决定状态,心胸决定格局,眼界决定境界。
当你的眼泪忍不住要流出来的时候,睁大眼睛,千万别眨眼,你会看到世界由清晰到模糊的全过程。
将MSSQL数据库里数据清空以及更新数据的方法2009/05/16 10:47 [未分类 ]我今天需要将MSSQL数据库里的数据清空,查了下资料。
其实清空数据库里的数据的方法很简单,就是执行系统存储过程 sp_MSforeachtable 。
我试了了一下,在查询分析器里执行 EXEC sp_MSforeachtable "truncate table ?",结果真的搞定了。
数据库里的数据全部清空,于是我就查了一下关于sp_MSforeachtable 的用法。
下面转载的:系统存储过程sp_MSforeachtable1.简介:作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的:EXEC sp_MSforeachtable @command1="print '?' DBCC CHECKTABLE ('?')"系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程,从mssql6.5开始。
存放在SQL Server的MASTER数据库中。
可以用来对某个数据库的所有表或某个SQL服务器上的所有数据库进行管理,后面将对此进行详细介绍。
2.参数说明:@command1 nvarchar(2000), --第一条运行的SQL指令@replacechar nchar(1) = N'?', --指定的占位符号@command2 nvarchar(2000)= null, --第二条运行的SQL指令@command3 nvarchar(2000)= null, --第三条运行的SQL指令@whereand nvarchar(2000)= null, --可选条件来选择表@precommand nvarchar(2000)= null, --执行指令前的操作(类似控件的触发前的操作) @postcommand nvarchar(2000)= null --执行指令后的操作(类似控件的触发后的操作) 以后为sp_MSforeachtable的参数,sp_MSforeachdb不包括参数@whereand3.使用举例:--统计数据库里每个表的详细情况:exec sp_MSforeachtable @command1="sp_spaceused '?'"--获得每个表的记录数和容量:EXEC sp_MSforeachtable @command1="print '?'",@command2="sp_spaceused '?'",@command3= "SELECT count(*) FROM ? "--获得所有的数据库的存储空间:EXEC sp_MSforeachdb @command1="print '?'",@command2="sp_spaceused "--检查所有的数据库EXEC sp_MSforeachdb @command1="print '?'",@command2="DBCC CHECKDB (?) "--更新PUBS数据库中已t开头的所有表的统计:EXEC sp_MSforeachtable @whereand="and name like 't%'",@replacechar='*',@precommand="print 'Updating Statistics.....' print ''",@command1="print '*' update statistics * ",@postcommand= "print''print 'Complete Update Statistics!'"--删除当前数据库所有表中的数据sp_MSforeachtable @command1='Delete from ?'sp_MSforeachtable @command1 = "TRUNCATE TABLE ?"4.参数@whereand的用法:@whereand参数在存储过程中起到指令条件限制的作用,具体的写法如下:@whereend,可以这么写 @whereand=' AND in (''Table1'',''Table2'',.......)' 例如:我想更新Table1/Table2/Table3中NOTE列为NULL的值sp_MSforeachtable @command1='Update ? Set NOTE='''' Where NOTE is NULL',@whereand=' AND in (''Table1'',''Table2'',''Table3'')'5."?"在存储过程的特殊用法,造就了这两个功能强大的存储过程.这里"?"的作用,相当于DOS命令中、以及我们在WINDOWS下搜索文件时的通配符的作用。
MYSQL日志的正确删除方法详解
MYSQL⽇志的正确删除⽅法详解本⽂详细讲述了MYSQL⽇志的正确删除⽅法。
分享给⼤家供⼤家参考,具体如下:1.查找:MySQL> show binary logs;+—————-+———–+| Log_name | File_size |+—————-+———–+| mysql-bin.000001 | 150462942 || mysql-bin.000002 | 125 || mysql-bin.000003 | 106 |+—————-+———–+2.删除bin-log(删除mysql-bin.000003之前的⽽没有包含mysql-bin.000003)mysql> purge binary logs to 'mysql-bin.000003';Query OK, 0 rows affected (0.16 sec)3. 查询结果(现在只有⼀条记录了.)mysql> show binlog events/G*************************** 1. row ***************************Log_name: mysql-bin.000003Pos: 4Event_type: Format_descServer_id: 1End_log_pos: 106Info: Server ver: 5.1.26-rc-log, Binlog ver: 41 row in set (0.01 sec)(mysql-bin.000001和mysql-bin.000002已被删除)mysql> show binary logs;+—————-+———–+| Log_name | File_size |+—————-+———–+| mysql-bin.000003 | 106 |+—————-+———–+1 row in set (0.00 sec)(删除的其它格式运⽤!)PURGE {MASTER | BINARY} LOGS TO 'log_name'PURGE {MASTER | BINARY} LOGS BEFORE 'date'⽤于删除列于在指定的⽇志或⽇期之前的⽇志索引中的所有⼆进制⽇志。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法一、
1 / 4
2 /
4
方法二、
MS SQL清除日志的命令
如何清除sql server 日志?
设置数据库为简单模式,自动收缩
1.打开查询分析器,输入命令
backup log databasename with no_log
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了。
dbcc shrinkfile (databasename_log,truncateonly)
方法三、
1: 删除LOG
第1步:分离数据库企业管理器->服务器->数据库->右键->分离数据库
第2步:删除LOG文件
第3布:附加数据库企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
方法四、
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'
方法五、
Use Database_Name
Backup Log Database_Name With No_log
dbcc shrinkfile (Database_Name_Log,truncateonly)
Go
方法六、
直接在查询分析那里执行backup log databasename with no_log
然后回到企业管理器把数据库收缩一下(可能需另外设置属性)
3 / 4
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名set recovery simple
另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True Auto shrink定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。
4 / 4。