SQLSERVER 中查看事物日志,操作记录

本文介绍如何在SQL Server 7.0和2000中使用DBCClog命令来查询事务日志,包括不同输出类型的参数设置,并提供了一个具体的例子。

查询SQL server 事务日志
在SQL SERVER 7.0和2000中,可以用下面的命令查看:

DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )


参数:
Dbid
or dbname - 任一数据库的ID或名字

type
- 输出结果的类型:

0 - 最少信息(operation, context, transaction id)

1 - 更多信息(plus flags, tags, row length)

2 - 非常详细的信息(plus object name, index name,page id, slot id)

3 - 每种操作的全部信息

4 - 每种操作的全部信息加上该事务的16进制信息

默认 type
= 0

要查看aadb 数据库的事务日志可以用以下命令:
DBCC log (aadb)

在SQL 2000下,可用系统Function來查到。

Select * From ::fn_dblog(Default,Default)

### SQL Server 事务日志已满的解决方法 当 SQL Server 数据库的事务日志已满时,可以通过以下方法进行清理或扩展: #### 1. 备份事务日志 备份事务日志是释放空间的有效方法之一。备份过程会将不再需要的日志记录标记为非活动状态,并允许新日志覆盖旧日志的位置[^4]。执行备份可以防止事务日志文件过度消耗磁盘空间。 备份事务日志的命令如下: ```sql BACKUP LOG [数据库名称] TO DISK = '路径\备份文件名.trn' ``` #### 2. 手动删除磁盘上的其他文件以释放空间 如果磁盘空间不足导致事务日志无法自动增长,则可以通过手动删除不必要的文件来释放磁盘空间[^3]。一旦磁盘空间被释放,SQL Server 将能够继续扩展事务日志文件。 #### 3. 增加日志文件的大小 可以通过修改数据库的日志文件属性来增加其大小。具体操作步骤如下: - 在 SQL Server Management Studio (SSMS) 中右键单击数据库,选择“属性”。 - 转到“文件”选项卡,找到事务日志文件(通常扩展名为 `.ldf`)。 - 修改“初始大小”或启用“自动增长”功能,确保日志文件有足够的空间[^3]。 #### 4. 将日志文件移动到具有足够空间的磁盘 如果当前磁盘空间不足,可以考虑将日志文件移动到另一个具有足够空间的磁盘上。操作步骤包括: - 添加一个新的日志文件到目标磁盘。 - 减少原有日志文件的大小,甚至可以将其移除。 添加新日志文件的命令如下: ```sql ALTER DATABASE [数据库名称] ADD LOG FILE ( NAME = N'新日志文件名称', FILENAME = N'路径\新日志文件名称.ldf', SIZE = 初始大小MB, MAXSIZE = 最大大小MB, FILEGROWTH = 自动增长值MB ) ``` #### 5. 完成或取消长时间运行的事务 长时间运行的事务可能会占用大量事务日志空间,导致日志文件填满。可以通过查询系统视图 `sys.dm_tran_database_transactions` 来查找并终止这些事务。例如: ```sql SELECT * FROM sys.dm_tran_database_transactions t WHERE DATEDIFF(SECOND, t.database_transaction_begin_time, GETDATE()) > 60 -- 运行时间超过60秒 AND t.database_transaction_state IN (4, 12) -- 事务未提交,但已产生日志 ``` 根据查询结果,可以选择性地完成或取消这些事务。 #### 6. 设置数据库为简单恢复模式 如果不需要保留事务日志以进行增量备份,可以将数据库设置为简单恢复模式。在这种模式下,系统会在每次检查点时自动截断事务日志,从而防止日志文件不断膨胀[^4]。更改恢复模式的命令如下: ```sql ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE ``` #### 7. 强制截断事务日志 在某些情况下,可以使用以下命令强制截断事务日志,但这可能导致数据丢失或无法进行基于日志的恢复,因此需谨慎使用: ```sql DBCC SHRINKFILE (N'日志文件名称', 目标大小MB) ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值