在完全恢复模式下事务日志居然会被自动截断

转自:http://blog.csdn.net/jadeite/article/details/1639356

不过在培训的过程中倒是有个挺有意思的插曲,就是关于SQL Server 对日志的管理。

以前就知道SQL Server 一共有三种还原模式,分别是完全,大容量和简单。其中完全是保存所有事务日志,大容量是在做大容量插入的时候不记录日志 比如执行 bcp 什么的。这两种日志类型都必须备份后才能截断。 简单模式就是不保存事务日志,每个检查点后都将日志截断。

在课堂上老师带着做实验,用系统的性能监视器监视数据库日志文件的使用情况。把数据库日志文件的自动增长属性去掉,然后写一个脚本往表里插数,观察日志的占用情况

执行以下脚本:

CREATE DATABASE [LogTest] ON  PRIMARY

( NAME = N'LogTest', FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/LogTestDB.mdf' ,

SIZE = 18432KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

LOG ON

( NAME = N'LogTest_log', FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/LogTest_log.ldf' ,

SIZE = 10240KB , MAXSIZE = 2048GB , FILEGROWTH = 0)

GO

USE LogTest

CREATE TABLE LogTestTable

(

LT_ID int null,

LT_Decription nvarchar(50) null

)

GO

然后打开性能监视器,监视日志占用情况

Performance object :  SQL Server: Database

Counters from list:  Log file(s) Size (KB) &  Log File(s) Used Size(KB)

Instances from list: LogTest

执行

Declare @i int

SET @i = 1

WHILE 1=1

BEGIN

INSERT INTO LogTestTable VALUES (@i,'LogTest'+cast(@i as nvarchar(50)))

END

居然发现曲线有上有下

我的故障还原模式可是选的完全啊! SQL Server 居然自动就给截断了,比较可怕的事情阿!基本上完全颠覆了我以前的理解。

不知道日志都删了靠啥还原数据。

后来问了微软的牛人才知道。新数据库必须要做一次完全备份之后才能保留日志,在做备份之前还原模式就是简单,不管你选什么!

不得不承认细节的人性化设计啊!设计者本来完全可以就根据你的选择保留日志,不管有没有用。但微软就把这一点细节修改了,因为考虑到如果不做完全备份的话保留事务日志是没有意义的。

不得不佩服!

新数据库必须要做一次完全备份之后才能保留日志,在做备份之前还原模式就是简单,不管你选什么!相关推荐

  1. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  2. 邹欣对话MongoDB CTO:新数据库时代将带来什么?

    [CSDN 编者按]MongoDB CTO Mark Porter认为,在过去的几十年里,最大的变化在于数据在企业中所扮演的角色变了.在新数据库时代,MongoDB又该如何在众多新兴数据库中保持自身优 ...

  3. 《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”

    20年前,伴随着互联网打开信息化大门,技术人成为新时代的开拓者.在时代的召唤下,CSDN于2001年推出国内首个面向IT人员的专业杂志--<程序员>,成为一代代开发者的技术启蒙.20年后的 ...

  4. 【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?

    今天,一名读者反馈说:自己出去面试,被面试官一顿虐啊!为什么呢?因为这名读者面试的是某大厂的研发工程师,偏技术型的.所以,在面试过程中,面试官比较偏向于问技术型的问题.不过,技术终归还是要服务于业务的 ...

  5. 如何删除oracle用户数据库用户,oracle删除指定用户的原数据库,建立该用户的新数据库...

    1.用超级管理员账号登录 先删除指定用户: drop user ×× cascade :会删除此用户名下的所有表和视图. 2.创建用户账号 CREATE USER "username&quo ...

  6. 《Access 2007开发指南(修订版)》一一2.2 创建新数据库

    本节书摘来自异步社区出版社<Access 2007开发指南(修订版)>一书中的第2章,第2.2节,作者: [美]Alison Balter,更多章节内容可以访问云栖社区"异步社区 ...

  7. SQL Server2005创建新数据库时不允许创建新数据库的问题

    今天早上来公司后,突然发现SQL Server2005出了问题,在管理器中居然不能创建新数据库了,使用SQL语句创建也不行,昨天还好好的,还弹出了如下对话框: 使用SQL语句创建SQL Server则 ...

  8. mysql升级后将旧数据迁移到新 数据库中

    mysql升级后将旧数据迁移到新 数据库中 1.将原来数据库进行导出成.sql文件 例:StudentSql.sql 2.进入新数据库的bin目录下 复制bin目录 3.cmd进入bin目录下(需管理 ...

  9. 利用临床数据库就能发SCI?看完这篇!直呼做临床数据分析超简单

    Meta分析.临床数据分析一对一指导,符合学术规范,结课直接投稿,+tjzgBL哟! 前年副高考试通过后,我已经连续申请了两年的职称评审,第一年因为论文未达要求,宣告失败:第二年痛定思痛,决定花时间好 ...

  10. 谷歌云mysql_面向开发者 谷歌云发布新数据库工具

    原标题:面向开发者,谷歌云发布新数据库工具 2月1日消息,据外媒报道,谷歌于今日发布了两种新工具,一种是名为Cloud SQL Insights的云服务,另一种是开源软件库. 对此,谷歌云称,开发人员 ...

最新文章

  1. ext4 文件系统的优化
  2. 生产环境碰到系统CPU飙高和频繁GC,你要怎么排查?
  3. tensorflow 动态数组 TensorArray
  4. Google Play
  5. antd4中Form.create已废弃
  6. jzoj1158-荒岛野人【扩欧,gcd,同余方程】
  7. sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...
  8. struts2 Eclipse 中集成strust2开发框架实例
  9. JupyterHub on Kubernetes-Helm安装
  10. vscode下载python库_如何在vscode中安装python库的方法步骤
  11. 非模式对话框CreateDialog() 与 模式对话框 DialogBoxParam()和DialogBox()
  12. CTF密码学——常见编解码及加解密总结
  13. 微信开通检测工具使用小诀窍
  14. 苹果电脑上几款不错的cad绘图软件
  15. allegro跨层复制铜皮
  16. 运行您自己的电子邮件服务器:自定义Roundcube
  17. 网络请求及各类错误代码含义总结(Errors Code)
  18. Whois接口查询文档
  19. 服务器这么做网站,用服务器做网站空间
  20. android 信息(mms)的故事(五)-- 发彩信

热门文章

  1. 2018年12月份计算机,桌面CPU天梯图2018年12月最新版 十二月台式电脑处理器排名...
  2. 51单片机程序存储器扩展
  3. 基于Jeecg的权限获取
  4. css3边框背景border-image
  5. iOS 新浪新闻首页卡片滚动特效实现
  6. ceph 写流程(1)
  7. 【Apache NIFI 操作】Apache NiFi源码目录结构--nifi-nar-bundles
  8. 《编程小白的第一本python入门书》——读书笔记
  9. 使用树莓派录音——USB声卡
  10. android 串口 汉字乱码,Arduino软串口出现乱码