新数据库必须要做一次完全备份之后才能保留日志,在做备份之前还原模式就是简单,不管你选什么!
在完全恢复模式下事务日志居然会被自动截断
不过在培训的过程中倒是有个挺有意思的插曲,就是关于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 居然自动就给截断了,比较可怕的事情阿!基本上完全颠覆了我以前的理解。
不知道日志都删了靠啥还原数据。
后来问了微软的牛人才知道。新数据库必须要做一次完全备份之后才能保留日志,在做备份之前还原模式就是简单,不管你选什么!
不得不承认细节的人性化设计啊!设计者本来完全可以就根据你的选择保留日志,不管有没有用。但微软就把这一点细节修改了,因为考虑到如果不做完全备份的话保留事务日志是没有意义的。
不得不佩服!
新数据库必须要做一次完全备份之后才能保留日志,在做备份之前还原模式就是简单,不管你选什么!相关推荐
- 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 官方教程: ...
- 邹欣对话MongoDB CTO:新数据库时代将带来什么?
[CSDN 编者按]MongoDB CTO Mark Porter认为,在过去的几十年里,最大的变化在于数据在企业中所扮演的角色变了.在新数据库时代,MongoDB又该如何在众多新兴数据库中保持自身优 ...
- 《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”
20年前,伴随着互联网打开信息化大门,技术人成为新时代的开拓者.在时代的召唤下,CSDN于2001年推出国内首个面向IT人员的专业杂志--<程序员>,成为一代代开发者的技术启蒙.20年后的 ...
- 【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?
今天,一名读者反馈说:自己出去面试,被面试官一顿虐啊!为什么呢?因为这名读者面试的是某大厂的研发工程师,偏技术型的.所以,在面试过程中,面试官比较偏向于问技术型的问题.不过,技术终归还是要服务于业务的 ...
- 如何删除oracle用户数据库用户,oracle删除指定用户的原数据库,建立该用户的新数据库...
1.用超级管理员账号登录 先删除指定用户: drop user ×× cascade :会删除此用户名下的所有表和视图. 2.创建用户账号 CREATE USER "username&quo ...
- 《Access 2007开发指南(修订版)》一一2.2 创建新数据库
本节书摘来自异步社区出版社<Access 2007开发指南(修订版)>一书中的第2章,第2.2节,作者: [美]Alison Balter,更多章节内容可以访问云栖社区"异步社区 ...
- SQL Server2005创建新数据库时不允许创建新数据库的问题
今天早上来公司后,突然发现SQL Server2005出了问题,在管理器中居然不能创建新数据库了,使用SQL语句创建也不行,昨天还好好的,还弹出了如下对话框: 使用SQL语句创建SQL Server则 ...
- mysql升级后将旧数据迁移到新 数据库中
mysql升级后将旧数据迁移到新 数据库中 1.将原来数据库进行导出成.sql文件 例:StudentSql.sql 2.进入新数据库的bin目录下 复制bin目录 3.cmd进入bin目录下(需管理 ...
- 利用临床数据库就能发SCI?看完这篇!直呼做临床数据分析超简单
Meta分析.临床数据分析一对一指导,符合学术规范,结课直接投稿,+tjzgBL哟! 前年副高考试通过后,我已经连续申请了两年的职称评审,第一年因为论文未达要求,宣告失败:第二年痛定思痛,决定花时间好 ...
- 谷歌云mysql_面向开发者 谷歌云发布新数据库工具
原标题:面向开发者,谷歌云发布新数据库工具 2月1日消息,据外媒报道,谷歌于今日发布了两种新工具,一种是名为Cloud SQL Insights的云服务,另一种是开源软件库. 对此,谷歌云称,开发人员 ...
最新文章
- ext4 文件系统的优化
- 生产环境碰到系统CPU飙高和频繁GC,你要怎么排查?
- tensorflow 动态数组 TensorArray
- Google Play
- antd4中Form.create已废弃
- jzoj1158-荒岛野人【扩欧,gcd,同余方程】
- sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...
- struts2 Eclipse 中集成strust2开发框架实例
- JupyterHub on Kubernetes-Helm安装
- vscode下载python库_如何在vscode中安装python库的方法步骤
- 非模式对话框CreateDialog() 与 模式对话框 DialogBoxParam()和DialogBox()
- CTF密码学——常见编解码及加解密总结
- 微信开通检测工具使用小诀窍
- 苹果电脑上几款不错的cad绘图软件
- allegro跨层复制铜皮
- 运行您自己的电子邮件服务器:自定义Roundcube
- 网络请求及各类错误代码含义总结(Errors Code)
- Whois接口查询文档
- 服务器这么做网站,用服务器做网站空间
- android 信息(mms)的故事(五)-- 发彩信