Sql Server 事务日志(三)
2015-07-04 00:29
183 查看
SQL server的日志文件会随着数据修改的增加而变大,在处理日志文件时,我们常用的方式是将日志截断,并收缩。
Backup log databasename to disk=''
dbcc shrinkfile(databasename_log)
当然,如果磁盘空间紧张,可以将恢复模式改成‘simple’的方式使日志截断,然后再收缩日志
alter database test set recovery simple;
DBCC shrinkfile(test_log)
alter database test set recovery full;
有时,数据库日志即使备份了,也无法收缩,则可能是由于以下原因造成的
1.数据库镜像或复制的日志未读取;
2.长期未提交事务
3. 日志无备份
4.索引整理
5.批量数据写入
具体原因可从sys.databases视图的log_reuse_wait_desc看出
![](http://images0.cnblogs.com/blog2015/765591/201507/032308465697907.jpg)
log_reuse_wait_desc有如下枚举值:
1. Nothing:当前有一个或多个可用的虚拟日志文件
2. CheckPoint:自上次日志截断之后,尚未出现检查点;
3. LOG_BACKUP:需要日志备份
4. ACTIVE_BACKUP_OR_RESTORE:数据备份或还原正在进行,阻止日志截断
5. ACTIVE_TRANSACTION:事务处于活动状态
6. DATABASE_MIRRING:数据库镜像暂停,或者备库日志落后于主库
以上是2008版本所使用的枚举值,SQL server 2012以后,使用了新的枚举值
0 = 无
1 = 检查点
2 = 日志备份
3 = 活动备份或还原
4 = 活动事务
5 = 数据库镜像
6 = 复制
7 = 数据库快照创建
8 = 日志扫描
9 = AlwaysOn 可用性组辅助副本正将此数据库的事务日志记录应用到一个相应的辅助数据库。
Backup log databasename to disk=''
dbcc shrinkfile(databasename_log)
当然,如果磁盘空间紧张,可以将恢复模式改成‘simple’的方式使日志截断,然后再收缩日志
alter database test set recovery simple;
DBCC shrinkfile(test_log)
alter database test set recovery full;
有时,数据库日志即使备份了,也无法收缩,则可能是由于以下原因造成的
1.数据库镜像或复制的日志未读取;
2.长期未提交事务
3. 日志无备份
4.索引整理
5.批量数据写入
具体原因可从sys.databases视图的log_reuse_wait_desc看出
![](http://images0.cnblogs.com/blog2015/765591/201507/032308465697907.jpg)
log_reuse_wait_desc有如下枚举值:
1. Nothing:当前有一个或多个可用的虚拟日志文件
2. CheckPoint:自上次日志截断之后,尚未出现检查点;
3. LOG_BACKUP:需要日志备份
4. ACTIVE_BACKUP_OR_RESTORE:数据备份或还原正在进行,阻止日志截断
5. ACTIVE_TRANSACTION:事务处于活动状态
6. DATABASE_MIRRING:数据库镜像暂停,或者备库日志落后于主库
以上是2008版本所使用的枚举值,SQL server 2012以后,使用了新的枚举值
0 = 无
1 = 检查点
2 = 日志备份
3 = 活动备份或还原
4 = 活动事务
5 = 数据库镜像
6 = 复制
7 = 数据库快照创建
8 = 日志扫描
9 = AlwaysOn 可用性组辅助副本正将此数据库的事务日志记录应用到一个相应的辅助数据库。
相关文章推荐
- sql 纪录
- Ubuntu下安装PHP的mongodb扩展操作命令
- MongoDB的一些常用查询方法
- MongoDB学习笔记之MapReduce使用示例
- MongoDB学习笔记之GridFS使用介绍
- MongoDB学习笔记之分组(group)使用示例
- MongoDB备份、还原、导出、导入、克隆操作示例
- sqlserver中存储过程的递归调用示例
- MySQL中SELECT+UPDATE处理并发更新问题解决方案
- 苹果Mac OS X 下 TAR.GZ 方式安装 MySQL
- mysql 以天为单位 统计订单数量
- 《高性能MySQL》
- MySQL中文乱码
- 数据库锁
- mysql 中每几分钟统计
- mysql 批量更新和批量插入
- 终止数据库连接进程SQL
- centos 6.3 & redis install
- Redis本地环境搭建
- Redis配置文件详解