博客
关于我
MSSQL 清空日志 删除日志文件
阅读量:476 次
发布时间:2019-03-06

本文共 1118 字,大约阅读时间需要 3 分钟。

最近项目主要做数据归档工作,将数据库中的数据从一个数据库转移到另一个数据库。由于目标数据库生成的日志文件体积非常庞大,想删除这些日志文件。解决方案是先分离数据库,然后删除日志文件,最后附加数据。在SSIS中实现这个过程主要依赖于SQL脚本操作。

首先需要获取目标数据库的日志文件和数据文件的物理路径。在SQL中,可以使用系统函数来获取这些文件路径。

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'

然后删除目标数据库的日志文件。可以使用脚本文件系统对象来执行文件删除操作。

declare @result int
declare @fsotoken int
exec @result = sp_OACreate 'Scripting.FileSystemObject', @fsotoken output
exec @result = sp_OAMethod @fsotoken, 'DeleteFile', null, @logfilename
exec @result = sp_OADestroy @fsotoken

最后将数据库附加回目标数据库。

exec sp_attach_single_file_db @dbname='TestVFA', @physname=@datafilename

需要注意的是,默认情况下Ole Automation Procedures是禁用的,必须在SQL Server全局配置中重新启用。

exec sp_configure 'show advanced options', 1
reconfigure
exec sp_configure 'Ole Automation Procedures', 1
reconfigure

在实际项目中,为了减少数据库初始化大小,可以对数据库进行数据收缩操作。

dbcc shrinkdatabase(VFAsia)
dbcc shrinkfile(1)

以上是具体的实施步骤,通过这些步骤可以完成数据库归档操作和日志文件管理。

转载地址:http://vwxbz.baihongyu.com/

你可能感兴趣的文章
Navicat(数据库可视化操作软件)安装、配置、测试
查看>>
navigationController
查看>>
NB-IOT使用LWM2M移动onenet基础通信套件对接之APN设置
查看>>
NBear简介与使用图解
查看>>
Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
查看>>
Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)
查看>>
NCNN中的模型量化解决方案:源码阅读和原理解析
查看>>
NCNN源码学习(1):Mat详解
查看>>
nc命令详解
查看>>
NC综合漏洞利用工具
查看>>
ndarray 比 recarray 访问快吗?
查看>>
ndk-cmake
查看>>
NdkBootPicker 使用与安装指南
查看>>
ndk特定版本下载
查看>>
NDK编译错误expected specifier-qualifier-list before...
查看>>
Neat Stuff to Do in List Controls Using Custom Draw
查看>>
Necurs僵尸网络攻击美国金融机构 利用Trickbot银行木马窃取账户信息和欺诈
查看>>
Needle in a haystack: efficient storage of billions of photos 【转】
查看>>
NeHe OpenGL教程 07 纹理过滤、应用光照
查看>>
NeHe OpenGL教程 第四十四课:3D光晕
查看>>