MSSQL 清空日志 删除日志文件

MSSQL 清空日志 删除日志文件,第1张

最近的项目主要做数据的归档 把数据从一个数据库拉到另一个数据库 造成新数据库的日志文件非常大 或者数据库在使用过程中会使日志文件不断 增加 使得数据库的性能下降 并且占用大量的磁盘空间 于是想把日志文件删除 最简单就是先分离数据库 》删除日志文件 》最后附加数据 我这里需要在 SSIS中调用 所以已sql脚本为主

两种简单的清除日志的方法

一分离附加法 首先把数据库分离 分离数据库之前一定要做好数据库的全备份 选择数据库——右键——任务——分离 其中药勾选删除连接!

分离后在数据库列表将看不到已分离的数据库 删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件 附加数据库 附加的时候会提醒找不到log文件 到时附加上后会自动创建一个新的日志文件 从而达到清理数据库的目的

二 sql语句清除mssql日志 DUMP TRANSACTION TestDB WITH NO_LOG 清除日志 DBCC SHRINKFILE ( TestDB_log ) 收缩数据库文件 BACKUP LOG TestDB WITH NO_LOG 截断事务日志 该命令在SQL Server 也是不支持 在SQL Server 和 可以使用

首先我们需要获取数据库文件的路径

declare @logfilename varchar( )  declare @datafilename varchar( ) select @logfilename=physical_name from sys database_files where type= select @datafilename=physical_name from sys database_files where type=

然后切换到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 是禁用的我们需要启用它

lishixinzhi/Article/program/MySQL/201311/29584

1、首先打开数据库,建立好表。

2、然后查询全体教师的教师号、姓名、职称,并分别为三列指定别名:教师号、姓名、职称,如下图所示。

3、查询结果如下图所示。

4、接着查询所有姓张的学生的学号和姓名,如下图所示。

5、最后查询选修C1(高等数学)且成绩高于85分的学生的学号、课程号和成绩,如下图所示就完成了。

1、 打开数据库选择所需要 *** 作的数据库。

2、 右击选择“所有任务”中的“导出数据”。

3、  进入数据导入导出向导。

4、这里选择所要导出的数据库,点击下一步。

5、随后选择导出类型,根据如下图进行 *** 作,这里选择的就是Excel表。

6、  随后进入如下图所示,点击红线内目标。

7、之后在桌面中右击点击创建Excel表格。

8、  随后点击”下一步“。

9、选择“从数据库复制表和视图”随后点击“下一步”。

10、这里选择全部,之后点击”下一步“。

11、  点击“立即运行”,之后点击“下一步”。

12、   点击“完成”。

13、  随后进入导出进程。

14、导出完毕之后,点击“确定”后点击“完成”。

15、  导出完毕之后,桌面上就出现了EXCEL表格了 。

你建数据库(包括附加)建在哪里,分离的时候就在哪里。

如果是新建的时候没选择路径,默认在

C:\Program

Files\Microsoft

SQL

Server\MSSQL\Data\

以后记得在分离前查看下数据库的具体位置先

mdf

ldf

两个都要

sqlserver2008 怎样进行数据库分离??在数据库上点右键,就有数据库分离的菜单项,直接点击就好了

你在哪里抄来抄了错误的东西吗?或者你尝试刷新数据。

显然是数据库连接字符串,不,啊,你要连接本地(local)数据库实例名称不会是localhost

-- 清空日志

--压缩日志及数据库文件大小

/--特别注意

请按步骤进行,未进行前面的步骤,请不要做后面的步骤

否则可能损坏你的数据库

--/

selectfromsysfiles

--1清空日志

DUMPTRANSACTIONusernameWITHNO_LOG

--2截断事务日志:

BACKUPLOGusernameWITHNO_LOG

--3收缩数据库文件(如果不压缩,数据库的文件不会减小

-- 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件

--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

-- 也可以用SQL语句来完成

--收缩数据库

DBCCSHRINKDATABASE(username)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:selectfromsysfiles

DBCCSHRINKFILE(2)

--4为了最大化的缩小日志文件(如果是sql70,这步只能在查询分析器中进行)

-- a分离数据库:

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

-- b在我的电脑中删除LOG文件

-- c附加数据库:

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

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

-- 或用代码:

-- 下面的示例分离username,然后将username中的一个文件附加到当前服务器。

execsp_dboptionusername,'singleuser',true

a分离

EXECsp_detach_db@dbname='username'

b删除日志文件

execmasterxp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOGldf'

c再附加

EXECsp_attach_single_file_db@dbname='username',

@physname='D:\ProgramFiles\SQL\database\username_DataMDF'

--5为了以后能自动收缩,做如下设置:

-- 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:

EXECsp_dboption'数据库名','autoshrink','TRUE'

--6如果想以后不让它日志增长得太大

-- 企业管理器--服务器--右键数据库--属性--事务日志

--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:

alterdatabase数据库名modifyfile(name=逻辑文件名,maxsize=20)

以上就是关于MSSQL 清空日志 删除日志文件全部的内容,包括:MSSQL 清空日志 删除日志文件、sql简单查询语句、在sql server2000中如何导出数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存