背景介绍
在MSSQL运行过程中,会产生多个文件,以保障MSSQL的安全及运行。日志文件就是其中一个,但是为什么会产生日志文件呢?日志文件的作用是什么?日志文件的扩展名又有哪些?下面我们来一一讲解。
日志文件作用
日志文件是MSSQL记录事务性操作的载体,主要记录以下几个方面信息:
所有的事务操作(包括增删改)
事务的开始和结束时间
错误的发生时间
数据库恢复操作的记录信息
日志文件极其重要,在数据恢复过程中也经常被使用到。因为日志文件可以记录发生变化的数据,依此进行回滚操作或补偿操作。
日志文件的扩展名
日志文件的扩展名有多种,下面我们一一讲解:
扩展名为.LDF
.LDF文件是MSSQL数据库的事务日志文件,当一个事务提交时,它所作的修改会被保存在数据库的数据文件以及事务日志文件中。因为在事务提交过程中是先把操作写到日志文件中,并不会直接写入数据库文件,所以能够保障数据的完整性、安全性和一致性。无论是自动提交,还是手动提交,在事务提交之前会先写入日志文件中,等到操作成功后会把日志文件记录删除。
来看一下日志文件示例代码:
CREATE DATABASE MyTestDB
ON PRIMARY
(NAME='MyTestDB_Data',FILENAME='D:\MSSQL\Data\MyTestDB_Data.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=10%)
LOG ON
(NAME='MyTestDB_Log',FILENAME='D:\MSSQL\Data\MyTestDB_Log.ldf',SIZE=30MB,MAXSIZE=200MB,FILEGROWTH=10%)
.LDF文件的大小与数据库的事务操作有关系,当数据量比较大或是数据库操作频繁的话,.LDF文件的大小就比较大。
扩展名为.DEL
.DEL文件是表示删除操作的日志文件,记录的是删除的记录信息及删除时间。在数据库恢复时使用.DELETE文件作为数据恢复更新操作的载体。
扩展名为.TRN
.TRN文件是表示事务日志的截断操作,当日志文件大小超过限制时,将会被截断。截断操作只支持完整恢复模式和大容量日志恢复模式。
.TRN文件的大小也与数据库的事务操作有关系,当日志文件大小超过限制的时候,就需要把.TRN文件进行备份和截断。因此,.TRN文件大小也有可能比较大。
扩展名为.BAK
.BAK文件是数据库备份文件,备份文件是数据库在某一时间点的快照,其数据完整性高,可用性高。在某些重大操作之前,如升级操作、重要数据导入操作等,需要先对数据库进行备份,以备不时之需。
来看一下备份示例代码:
USE master;
GO
BACKUP DATABASE MyTestDB
TO DISK='C:\MyTestDB.bak'
--备份到指定文件路径
WITH FORMAT,
MEDIANAME='MyTestDBBackups',
NAME='Full Backup of MyTestDB';
.BAK文件的大小与数据库的数据文件有关系,如果数据库存储了大量的数据,那么其备份文件就会比较大