SQL Server日志文件归纳及充斥处理措施

数据库 SQL Server
本文主要介绍SQL Server数据库的交易日志以及交易日志的维护过程。希望能对您有所帮助!

SQL Server数据库的日志文件是数据库中非常重要的文件,对数据库的维护起着至关重要的作用。本文主要归纳一些日志方面的问题及其处理措施,希望能够带给您收获!

交易日志

交易日志(Transaction logs)是数据库构造中极其重要但又经常被疏忽的局部。由于它并不像数据库中的schema那样活泼,因而很罕有人关怀交易日志。

交易日志是针对数据库改换所做的登记,它能够登记针对数据库的任何垄断,并将登记收获保留在自力更生的文件中。对于任何每一个交易过程,交易日志都有极其全面的登记,依据这些登记能够将数据文件还原成交易前的事态。从交易动作开始,交易日志就处于登记事态,交易过程中对数据库的任何垄断都在登记范围,直到用户点击提交或后退后才告终登记。每个数据库都具有起码一个交易日志以及一个数据文件。

出于功能上的琢磨,SQL Server将用户的修改存入缓存中,这些改换会即刻写入交易日志,但不会即刻写入数据文件。交易日志会穿越一个符号点来确定某个交易是否已将缓存中的数据写入数据文件。当SQL Server重启后,它会察看日志中***的符号点,并将这个符号点后面的交易登记抹去,因为这些交易登记并未曾恳挚的将缓存中的数据写入数据文件。这能够遏止那些间断的交易修正数据文件。

维护交易日志

因为许多人经常遗漏交易日志,因而它也会给系统带来一些问题。随着系统的不时运行,日志登记的内容会越来越多,日志文件的体积也会越来越大,***导致可用磁盘空间不足。除非平时工作中经常对日志举行清理,否则日志文件***会盘踞分区内的全副可用空间。日志的默认搭配为不限容量,万一以这种搭配工作,它就会不时膨胀,***也会割据全副可用空间。这两种情形都会导致数据库静止工作。

对交易日志ji.jieliya3518.comwww.new3go.info的平时备份工作能够管用的遏止日志文件过度花费磁盘空间。备份过程会将日志中不再必需的局部截除。截除的措施是率先把旧登记符号为非行动事态,然后将新日志遮蔽到旧日志的位置上,这么就能够遏止交易日志的体积不时膨胀。万一无法对日志举行经常性的备份工作,良好将数据库设置为"容易还原形式"。在这种形式下,系统会迫使交易日志在每次登记符号点时,积极举行截除垄断,以新日志遮蔽旧日志。

截除过程发生在备份或将旧符号点标为非行动事态时,它使得旧的交易登记能够被遮蔽,但这并不会收缩交易日志切实挪借的磁盘空间。就算不再利用日志,它依旧会割据定然的空间。因而在维护时,还必需对交易日志举行收缩。收缩交易日志的措施是剔除非行动登记,从而收缩日志文件所挪借的物理硬盘空间。

穿越利用DBCC SHRINKDATABASE语句能够收缩目前数据库的交易日志文件,DBCC SHRINKFILE语句用来收缩指定的交易日志文件,另外也能够在数据库中激活积极收缩垄断。当收缩日志时,率先会将旧登记符号为非行动事态,然后将带有非行动符号的登记彻底剔除。依据所利用的收缩措施的不同,你可能不会即刻看到收获。在志愿情形下,收缩工作该当选在系统不是极其忙碌的时段举行,否则有可能波及数据库功能。

复如数据库

交易登记备份能够用来将数据库还原到某一指定事态,但交易登记备份本身不足以告终复如数据库的任务,还必需备份的数据文件加入还原工作。复如数据库时,最良好行的是数据文件的还原工作。在全副数据文件还原告终前,不要将其设为告终事态,否则交易日志就不会被还原。当数据文件还原告终,系统会穿越交易日志的备份将数据库还原成用户渴望的事态。万一在数据库***顺次备份后,存在多个日志文件的备份,备份过程会按照它们发生的工夫顺次将其还原。

另一种被称为log shipping的过程能够供给更强的数据库备份力气。当log shipping搭配好后,它能够将数据库全副复制到另一台服务器上。在这种情形下,交易日志也会定期发送到备份服务器上供复如数据利用。这使得服务器始终处于热备份事态,当数据发生改换时它也随之更新。另一个服务器被称作监视(monitor)服务器,能够用来监视按法定工夫间隔发送的shipping信号。万一在法定工夫内未曾收到信号,监视服务器会将这一事件登记到事件日志。这种机制使得log shipping经常成为浩劫还原计划中利用的计划。我们在编写代码的时候,会揭示一些的小的讹谬。

关于SQL Server交易日志的问题就介绍到这里,谢谢各位的支持!

【编辑推荐】

 

  1. 在SQL触发器或存储过程中获取登录用户信息
  2. SQL Server数据库自动化管理分区设计方案图解
  3. 查询数据量大时,关联表查询与循环查询哪个更好
  4. 让SQL Server Management Studio直接连接数据库
  5. 如何让SQL Server自动定时备份数据库并按日期命名
责任编辑:赵鹏 来源: 网易博客
相关推荐

2010-09-13 14:12:21

SQL Server日

2011-03-31 12:55:23

SQL Server备份

2010-09-14 14:53:35

2010-06-30 09:28:51

SQL Server日

2010-11-09 15:56:43

2015-08-19 14:11:56

SQL Server错误处理

2010-06-30 17:33:48

SQL Server

2010-09-13 14:26:04

sql server日

2011-09-01 10:46:56

SQL Server 快速清理日志文件

2010-07-21 13:25:04

SQL Server备

2010-07-08 11:05:14

SQL Server数

2010-06-18 13:25:01

SQL Server查

2011-08-29 10:08:04

SQL Server osqlocmd批处理

2010-07-21 14:33:27

SQL Server

2009-01-05 17:55:02

SybaseSQL Server日志

2011-08-17 18:12:48

2010-07-06 08:56:16

SQL server

2010-10-29 15:07:33

oracle日志

2010-06-28 09:43:05

SQL Server数

2010-06-30 10:55:13

SQL Server日
点赞
收藏

51CTO技术栈公众号