MSSQL清空日志删除日志文件_MySQL教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:关于数据库中保留小数位的问题
本篇文章是对关于在数据库中保留小数位的问题进行了详细的分析介绍,需要的朋友参考下 在数据库中有时我们可能需要对一些数据进行处理,例如四舍五入、直接舍去后面的几位等,其实很简单,都是有现成的函数,我们只需要套用就行了: select round(10.98*10)/10 from dua

   最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,造成新数据库的日志文件非常大;或者数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。于是想把日志文件删除。最简单就是先分离数据库-》删除日志文件-》最后附加数据,我这里需要在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=1

  select @datafilename=physical_name from sys.database_files where type=0

  然后切换到master下,分离数据库

  use master

  exec sp_detach_db @dbname='TestVFA';

  紧接下来就是删除数据库 日志文件

  ----Remove file

  DECLARE @Result int

  DECLARE @FSO_Token int

  EXEC @Result = sp_OACreate 'Scripting.FileSystemObject', @FSO_Token OUTPUT

  EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFile', NULL, @logfilename

  EXEC @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;

分享:解析mysql与Oracle update的区别
本篇文章是对mysql与Oracle update的区别进行了详细的分析介绍,需要的朋友参考下 update :单表的更新不用说了,两者一样,主要说说多表的更新 复制代码 代码如下: Oracle Oracle的多表更新要求比较严格,所以有的时候不是很好写,我们可以试试Oracle的游标 update (

来源:模板无忧//所属分类:MySQL教程/更新时间:2013-07-05
相关MySQL教程