返回顶部
首页 > 资讯 > 数据库 >SQL中怎么删除大容量日志
  • 603
分享到

SQL中怎么删除大容量日志

2024-04-02 19:04:59 603人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关sql中怎么删除大容量日志,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1: 删除LOG1:分离 企业管理器->服务器->数据库->右键

这期内容当中小编将会给大家带来有关sql中怎么删除大容量日志,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1: 删除LOG
1:分离 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有520多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 77169database
EXEC sp_attach_single_file_db @dbname = 77169database,
@physname = c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf

2:清空日志
DUMP TRANSACTioN 库名 WITH NO_LOG

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

3: 如果想以后不让它增长
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M
自动收缩日志,也可以用下面这条语句
ALTER DATABASE 数据库名
SET AUTO_SHRINK ON

故障还原模型改为简单,用语句是
USE MASTER
Go
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE
GO
---------------------------------------------------------------------------------

截断事务日志:

BACKUP LOG { database_name | @database_name_var }
{
[ WITH
{ NO_LOG | TRUNCATE_ONLY } ]
}

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

1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至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

或用代码:
下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。

a.分离
EXEC sp_detach_db @dbname = 77169database

b.删除日志文件

c.再附加
EXEC sp_attach_single_file_db @dbname = 77169database,
@physname = c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf

5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:
EXEC sp_dboption 数据库名, autoshrink, TRUE

6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
-------------------------------------------------------------------------------------------

use master --注意,此存储过程要建在master数据库中
go

if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_compdb]) and OBJECTPROPERTY(id, NIsProcedure) = 1)
drop procedure [dbo].[p_compdb]
GO

create proc p_compdb
@dbname sysname, --要压缩的数据库名
@bkdatabase bit=1, --因为分离日志的步骤中,可能会损坏数据库,所以你可以选择是否自动数据库
@bkfname nvarchar(260)= --备份的文件名,如果不指定,自动备份到默认备份目录,备份文件名为:数据库名+日期时间
as
--1.清空日志
exec(DUMP TRANSACTION [+@dbname+] WITH NO_LOG)

--2.截断事务日志:
exec(BACKUP LOG [+@dbname+] WITH NO_LOG)

--3.收缩数据库文件(如果不压缩,数据库的文件不会减小
exec(DBCC SHRINKDATABASE([+@dbname+]))

--4.设置自动收缩
exec(EXEC sp_dboption )

--后面的步骤有一定危险,你可以可以选择是否应该这些步骤
--5.分离数据库
if @bkdatabase=1
begin
if isnull(@bkfname,)=
set @bkfname=@dbname+_+convert(varchar,getdate(),112)
+replace(convert(varchar,getdate(),108),:,)
select 提示信息=备份数据库到SQL 默认备份目录,备份文件名:+@bkfname
exec(backup database [+@dbname+] to )
end

--进行分离处理
create table #t(fname nvarchar(260),type int)
exec(insert into #t select filename,type=status&0x40 from [+@dbname+]..sysfiles)
exec(sp_detach_db )

--删除日志文件
declare @fname nvarchar(260),@s varchar(8000)
declare tb cursor local for select fname from #t where type=64
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s=del "+rtrim(@fname)+"
exec master..xp_cmdshell @s,no_output
fetch next from tb into @fname
end
close tb
deallocate tb

--附加数据库
set @s=
declare tb cursor local for select fname from #t where type=0
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s=@s+,+rtrim(@fname)+
fetch next from tb into @fname
end
close tb
deallocate tb
exec(sp_attach_single_file_db )
go

上述就是小编为大家分享的SQL中怎么删除大容量日志了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: SQL中怎么删除大容量日志

本文链接: https://lsjlt.com/news/58502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQL中怎么删除大容量日志
    这期内容当中小编将会给大家带来有关SQL中怎么删除大容量日志,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1: 删除LOG1:分离 企业管理器->服务器->数据库->右键...
    99+
    2024-04-02
  • SQL Server中怎么删除大容量日志
    SQL Server中怎么删除大容量日志,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1: 删除LOG  1:分离 企业管理器...
    99+
    2024-04-02
  • 怎么删除Golang日志
    这篇文章主要介绍了怎么删除Golang日志的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么删除Golang日志文章都会有所收获,下面我们一起来看看吧。一、为什么需要删除Golang日志随着Golang日志文件...
    99+
    2023-07-05
  • SQL server中怎么清除日志
    这篇文章将为大家详细讲解有关SQL server中怎么清除日志,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。方法一:第一步:-- no_log和trunca...
    99+
    2024-04-02
  • mysql怎么删除binlog日志
    要删除MySQL的binlog日志,可以使用以下两种方法: 使用PURGE BINARY LOGS命令: PURGE BINAR...
    99+
    2024-04-09
    mysql
  • sql server怎么清除日志
    要清除 SQL Server 中的事务日志,可以使用以下两种方法之一:1. 使用 SQL Server Management Stu...
    99+
    2023-09-26
    sql server
  • mysql中怎么删除二进制日志
    本篇文章给大家分享的是有关mysql中怎么删除二进制日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、删除mysql二进制日志 ...
    99+
    2024-04-02
  • 日志删除脚本怎么写
    这篇文章主要介绍了日志删除脚本怎么写,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 #!/bin/bashfu...
    99+
    2024-04-02
  • ubuntu怎么删除系统日志
    ubuntu中删除系统日志的方法:1、打开ubuntu终端;2、切换root权限并输入“du -h --max-depth=1 /var/log/*”命令查看log日志文件;3、通过“echo > /var/log/syslog.1”格式对...
    99+
    2024-04-02
  • SQL Server 2008 清空删除日志文件
    --使用说明-- HDocsN 是要修改的数据库的名称--HDocsN_Log是要清除的日志文件的名称--修改所见的所有HDocsN 为要清除的数据库名称--修改HDocsN_Log 为所有清除的数据库的日...
    99+
    2024-04-02
  • Oracle中怎么删除归档日志文件
    本篇文章给大家分享的是有关Oracle中怎么删除归档日志文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、首先删除归档日志物理文件,归档日...
    99+
    2024-04-02
  • 关于sql server日志变得超大的删除解决办法
        首先说说,这个sql server的日志,就是*log.ldf结尾的日志文件,他的日志体系结构其实挺严谨,原意是---如果你不做日志备份,就不给你删日志,然后...
    99+
    2024-04-02
  • oracle数据库日志怎么删除
    在Oracle数据库中,可以通过以下步骤来删除日志文件: 登录到Oracle数据库服务器上的SQL*Plus或者其他客户端工具中...
    99+
    2024-04-12
    oracle
  • mysql数据库怎么删除日志
    通过以下方法可以删除 mysql 中的日志:使用 purge binary logs 语句删除所有二进制日志。使用 reset slave 语句删除从服务器上的二进制日志和中继日志。手动...
    99+
    2024-08-05
    mysql
  • mysql数据库日志怎么删除
    要删除 mysql 数据库日志,有四种方法:1. 手动删除日志文件;2. 使用 mysqladmin 命令;3. 使用 mysql 命令;4. 编辑 mysql 配置文件。在删除日志文件...
    99+
    2024-08-05
    mysql
  • 怎么删除mysql数据库日志
    可以通过以下步骤删除 mysql 数据库日志:删除二进制日志:使用 purge binary logs 命令,指定要删除的日志名称。关闭通用日志:在 mysql 配置文件中将 gener...
    99+
    2024-08-05
    mysql
  • sql中用代码删除两列内容怎么删
    通过 alter table 语句删除两列:1. 确定要删除的列名;2. 编写语句:alter table table_name drop column column_name1, co...
    99+
    2024-05-07
    mysql
  • oracle中怎么删除过期的归档日志
    oracle中怎么删除过期的归档日志,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、对于 EXPIRED 状态的产生,相对于...
    99+
    2024-04-02
  • AIX怎么定时删除归档日志
    本篇内容介绍了“AIX怎么定时删除归档日志”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 【环境说明】 ...
    99+
    2024-04-02
  • log4j定期删除日志怎么配置
    要定期删除log4j日志,您可以通过配置RollingFileAppender的MaxBackupIndex和MaxFileSize...
    99+
    2023-09-13
    log4j
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作