当前位置:首页 » 编程语言 » sql数据库设置自动收缩日志
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql数据库设置自动收缩日志

发布时间: 2022-05-24 22:56:27

A. 如何压缩sql Server 2000数据库的日志

具体方法有3种。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。
第二步:
1.收缩特定数据库的所有数据和日志文件,执行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
2.收缩一次一个特定数据库中的数据或日志文件,执行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.

方法二:
第一步:
先备份整个数据库以备不测 。
第二步:
备份结束后,在Query Analyzer中执行如下的语句:
exec sp_detach_db yourDBName,true
--卸除这个DB在MSSQL中的注册信息
第三步:
到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
第四步:
在Query Analyzer中执行如下的语句:
exec sp_attach_single_file_db yourDBName,'
d:\mssql\data\yourDBName_data.mdf '
--以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。

方法三:
1. 进入企业管理器,选中数据库,比如demo
2. 所有任务->分离数据库
3. 到数据库文件的存放目录,将MuOnline_log.LDF文件删除,以防万一,你可以拷出去
4. 企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5. 记得数据库重新附加后用户要重新设置一下。
如果以后,不想要它变大:
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery simple

B. sql2008下的镜像数据库怎样做日志收缩

这个问题我前几天正好碰上,所以,相关的关键点告诉你

**********特别提示:《在操作之前请备份》************:
1、SQL SERVER 2008 的日志会越来越大,如果是用于生产的,可能会大到可怕,反正我的数据库,前几天一看,不到1个月就十多个G的日志文件。
2、要收缩、清除其实很简单,关键点就一个:先把数据库的恢复模式从默认的“完整”改为“简单”。具体做法:对数据库点 右键 -》属性-》左边 选择页 中 点 “选项”-》找到 “恢复模式”,改成“简单”。
3、然后对数据库点 右键 -》任务-》收缩 -》文件 -》出来的界面中,文件类型 选 “日志”,点“确定”钮-》OK了。
4、再次提示,在操作之前请备份,虽然我在操作中没有碰上任务问题,但不保证你不出问题。
5、至于日志文件缩完了,你是否要把它改回“完整”模式,你自个看着办,我是让它一直简单,因为,以我的技术,要真的数据库崩溃了,有日志问题也是“然并卵”,反正我是一天自动两次异盘备份,加每二小时增量备份,最后再加双机热备(用软件实现的,那个软件据说要卖几万一套,具体叫什么就不说了,省得别人说我打广告,呵呵)。
6、看了一下微软的数据库镜像实现方案相关的东西,感觉太难了,不靠谱,有兴趣你可以去试试。
7、最后,顺便说,数据库的恢复模式的选择,对当前数据库的运行应该是没有什么影响的,也许对于会用日志文件进行数据查看和调整的人有用。

C. sql收缩数据库日志的几种办法

在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL,

方法一:

--BigData为数据库名
DUMPTRANSACTIONBigDataWITHNO_LOG
BACKUPLOGBigDataWITHNO_LOG
DBCCSHRINKDATABASE(BigData)

执行以上语句可以快速压缩日志文件到1M。

但是以上语句中前两行在SQL Server 2008下无法执行 ,

第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”

第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”

第三行可以执行。但日志log文件没有任何变化。

原来SQL Server 2008已经不再支持DUMPTRANSACTION和BACKUP LOG WITH NO_LOG,

sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。

SQL Server 2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。

方法二:

useDB_NAME
sp_dboptionDB_NAME,"trunc.logonchkpt.",true
checkpoint
sp_dboptionDB_NAME,"autoshrink",true

方法三:(请提前备份文件!!)

  1. Detach数据库。

  2. 删除log文件。

  3. 附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。

方法四:

USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO

D. sql2012怎么定期自动收缩日志文件

将以下代码做个计划执行就行:
--数据库设置恢复模式为简单
ALTER DATABASE 数据库名 SET RECOVERY simple
--修改操作数据库
use 数据库名
--收缩数据库日志文件
dbcc shrinkfile(2)
--数据库设置恢复模式为完全
ALTER DATABASE 数据库名 SET RECOVERY FULL

E. 数据库日志文件过大如何收缩

网页链接我是用这个方法收缩的,可以将日志收缩到1MB

守得云开见月明,花了一个上午结合前辈的博客,终于弄好了sqlserver2008的数据库日志收缩到1MB,分享给大家

# 方法步骤

1、执行SQL语句改成“简单模式”

2、收缩数据库

3、执行SQL语句改回“完全模式”

## 第一步:执行SQL语句改成“简单模式”


USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名) SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名) SET RECOVERY SIMPLE --改成简单模式
GO

## 第二步:进行数据库操作
相关界面截图和操作
假定:
数据库名:SlowXWebDB
日志文件名:SlowXWebDB_Log

## 第三步:执行SQL语句改成“完全模式”

USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名)SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE datebaseName(改成你需要进行收缩的数据库名)SET RECOVERY FULL --还原为完全模式
GO
==最后不要忘记实测下数据库是否能够正常使用==

网页链接

F. sql2008中如何收缩数据库日志文件

打开企业管理器SQL ServerManagement Studio,先备份数据库,然后有两个方法压缩数据库日志文件:

方法一、

选择数据库,新建查询,顺序输入语句并执行

1、ALTER DATABASE database_name SET RECOVERY SIMPLE

DBCC SHRINKDATABASE(database_name, 0)

2、ALTER DATABASE database_name SET RECOVERY FULL

方法二、

1、选择数据库

2、右键数据库选属性=》选项,将恢复模式改为简单,确定

3、右键数据库选任务=》收缩=》文件,文件类型选日志,确定

4、回到第2步,恢复模式改为完整

G. SQL数据库中日志收缩、截断等等是什么

如:shgzts为数据库名
mp transaction shgzts with no_log --截断日志
backup log shgzts with no_log --备份日志
dbcc shrinkdatabase(shgzts,truncateonly) --数据库收缩

H. SQL Server 设置了自动收缩,为什么还是会有提示事务日志已满

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
或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离 EXEC sp_detach_db @dbname = '库名'
b.删除日志文件
c.再附加 EXEC sp_attach_single_file_db @dbname = '库名', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'
5.为了以后能自动收缩,
做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式: EXEC sp_dboption '库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)

I. 数据库日志怎么缩

一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

J. sql2012怎么定期自动收缩日志文件

解决方法: 方法一 右键选择数据库-》任务-》收缩-》文件-》文件类型-》日志-》在释放未使用的空间前重新组织页