各位高手,请问一下数据库中的事务日怎样清除,怎么把它的空间减小。谢谢。

laijiaxing 2003-08-31 02:04:43
各位高手,请问一下数据库中的事务日怎样清除,怎么把它的空间减小。谢谢。
...全文
21 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdhdy 2003-08-31
  • 打赏
  • 举报
回复
方法1、
--在查询分析器,选中所要清理日志的数据库,执行如下SQL
backup log 数据库名 with no_log
DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)

在当前数据库下
select fileid,groupid,name from sysfiles where groupid=0
----------------------------------------
得到以下结果
fileid groupid name
2 0 test_log

以上结果,fileid为日志文件ID,name为test_log

你可以
backup log test with no_log
dbcc shrinkfile (2,2)
or
backup log test with no_log
dbcc shrinkfile ('test_log',2)
如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复 模型 选择 简单模型就可以了!
或用SQL语句
alter database 数据库名 set recovery simple

方法2、
SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。

liukanghui 2003-08-31
  • 打赏
  • 举报
回复
方法1.backup log 数据库 with no_log
方法2.先在SQL的企业管理器中分离该数据库,到数据库所在物理路径下删除.ldf文件,再到企业管理器中附加数据库
方法3.DUMP TRANSACTION 库名 WITH NO_LOG

msony 2003-08-31
  • 打赏
  • 举报
回复
2、日志的删除
backup log 数据库名 with no_log
DBCC SHRINKDATABASE (数据库名,TRUNCATEONLY )

用收缩数据库就可把事务日志减小呀!
happydreamer 2003-08-31
  • 打赏
  • 举报
回复


SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT


USE WebRoot -- 要操作的数据库名
SELECT @LogicalFileName = 'WebRoot_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 100 -- 你想设定的日志文件的大小(M)

-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)


DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF




清空日志
DUMP TRANSACTION @DataBaseName WITH NO_LOG

DBCC SHRINKFILE( @LogoFileName,@NewSize)
changechange 2003-08-31
  • 打赏
  • 举报
回复
同上
【课程介绍】     课程目标:             - 有状态登录和无状态登录的区别             - 常见的非对称加密算法和非对称的加密方式             - 老版本只使用jwt进行加密的弊端             - 授权心的授权流程             - 如何整合网关组件实现jwt安全验证             - 理解什么是公钥什么是私钥      - 深刻理解授权流程什么是有状态? 有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?- 服务端保存大量数据,增加服务端压力- 服务端保存用户状态,无法进行水平扩展- 客户端请求依赖服务端,多次请求必须访问同一台服务器。什么是无状态? 微服务集群的每个服务,对外提供的都是Rest风格的接口。而Rest风格的一个最重要的规范就是:服务的无状态性,即:- 服务端不保存任何客户端请求者信息- 客户端的每次请求必须具备自描述信息,通过这些信息识别客户端身份带来的好处是什么呢?- 客户端请求不依赖服务端的信息,任何多次请求不需要必须访问到同一台服务- 服务端的集群和状态对客户端透明- 服务端可以任意的迁移和伸缩- 减小服务端存储压力

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧