Less_07(3) 维护重做日志文件
- 格式:ppt
- 大小:161.00 KB
- 文档页数:25


SQL Server 2008 事务日志物理文件尺寸无法减小的解决办法(含日志收缩(shrink)技巧)
作者:宋林
发现有的数据库日志文件太大,无论如何收缩执行几次SQL语句都不行。事务日志达30+G,而且使用常规的截断、收缩方法均无法减小日志物理文件的尺寸,经过一番寻找,终于找到了解决方法。
查看日志信息
在查询分析器中执行如下代码来查看日志信息:
DBCC LOGINFO('数据库名称')
我们看到status=0的日志,代表已经备份到磁盘的日志文件;而status=2的日志还没有备份。当我们收缩日志文件时,收缩掉的空间其实就是status=0的空间,如果日志物理文件无法减小,这里一定能看到非常多status=2的记录。接下来分析为什么会有这么多status=2的记录
查看日志截断延迟原因
活跃(active)的日志无法通过收缩来截断,有各种原因会使日志截断延迟,具体表现就是事务日志的物理文件无法通过截断、收缩来减小,通过下面的代码可以看到实例上每个数据库的日志截断延迟原因: 1 USE [master]
2 SELECT [name] ,[database_id] ,[log_reuse_wait] ,[log_reuse_wait_desc] FROM [sys].[databases]
各种原因及解释如下:
log_reuse_wait_desc 值 说明
NOTHING 当前有一个或多个可重复使用的虚拟日志文件。
CHECKPOINT 自上次日志截断之后,尚未出现检查点,或者日志头部尚未跨一个虚拟日志文件移动(所有恢复模式)。
这是日志截断延迟的常见原因。有关详细信息,请参阅检查点和日志的活动部分。
LOG_BACKUP 需要日志备份,以将日志的头部前移(仅适用于完整恢复模式或大容量日志恢复模式)。
注意:日志备份不会妨碍截断。 完成日志备份后,日志的头部将前移,一些日志空间可能变为可重复使用。
RedHat Linux系统常见的日志文件和常用命令
成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所以用户不需要特殊的工具就可以搜索和阅读它们。还可以编写脚本,来扫描这些日志,并基于它们的内容去自动执行某些功能。Linux 日志存储在 /var/log 目录中。这里有几个由系统维护的日志文件,但其他服务和程序也可能会把它们的日志放在这里。大多数日志只有root账户才可以读,不过修改文件的访问权限就可以让其他人可读。
RedHat Linux常用的日志文件
RedHat Linux常见的日志文件详述如下
/var/log/boot.log
该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息。
/var/log/cron
该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。
/var/log/maillog
该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。下面是该日志文件的片段: Sep 4 17:23:52 UNIX sendmail[1950]: g849Npp01950: from=root,
size=25,
class=0, nrcpts=1,
msgid=<200209040923.g849Npp01950@>,
(2.18)备份与还原--还原的原理与总结关键字:恢复系统数据库
⼀、还原的过程
还原过程主要分为3个阶段。1. 数据复制 此阶段将从数据库的备份介质将所有数据、⽇志和索引页复制到数据库⽂件中。完成这个阶段后,数据库被恢复到备份介质所包含的最后⼀个检查点。2. 重做(前滚) 此阶段将记录的事务应⽤到从备份复制的数据,以将这些数据前滚到恢复点。此阶段将使数据库从最后⼀个检查点前滚到恢复点(recovery point)的最后⼀笔交易。重做(前滚)阶段阶段后,数据库通常有未提交的事务,并处于“正在恢复,不可⽤”的状态。3. 撤消(回滚) 此阶段将撤消(回滚)任何未提交的事务。撤消(回滚)阶段后,数据库可供⽤户使⽤。
⼆、还原的过程⽰例
以下是⼀个事务的⽰例 LSN01 提交事务1 LSN02 检查点 LSN03 执⾏事务2 LSN04 执⾏“完整备份1”(备份导致检查点) LSN05 执⾏事务3 LSN06 检查点LSN07 提交事务2 LSN08 执⾏“事务⽇志备份1”(恢复点)恢复过程如下:(1)第⼀阶段:将通过备份介质“完整备份1”,恢复到LSN04(即备份介质所包含的最后⼀个检查点)。这个过程主要是以“区”为单位直接将数据页⾯复制到数据库⽂件中。(2)第⼆阶段:根据备份介质“事务⽇志备份1”的记录,前滚到LSN08(即数据库的“恢复点”)。此阶段后,LSN05和LSN07都被执⾏,被回写到数据页⾯,但此时尚不确定LSN05事务是否被提交,因此,此时数据库的状态为“正在恢复,不可使⽤”,需要等待后续阶段。(3)第三阶段,在备份介质“事务⽇志备份1”中没有发现LSN05被提交的⽇志记录,因此需要回滚未提交的事务,即撤消LSN05。此阶段后,数据库可正常使⽤,且恢复到“恢复点”。完成上述3个阶段后,事务2被提交(根据根据LSN07),事务3被回滚(因为事务3在LSN08时未提交)。
三、还原的操作⽅法
1. T-SQL⽰例:RESTORE DATABASE [db01] FROM DISK = N'C:\backup\DB01_Data_BAK.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 GO RESTORE LOG [db01] FROM DISK = N'C:\backup\DB01_Log_BAK.bak' WITH FILE = 2, NOUNLOAD, STATS = 10 GO2.SSMS
以下是一些基本的 CentOS 7 操作命令:
1. 登录/注销:
- 登录:`ssh username@ip_address`(使用SSH客户端登录到服务器)
- 注销:`exit`或`logout`(注销当前用户)
2. 文件和目录操作:
- 切换目录:`cd directory_path`(切换到指定路径)
- 显示当前目录:`pwd`(显示当前工作目录的路径)
- 列出目录内容:`ls`(列出文件和目录)
- 创建目录:`mkdir directory_name`(创建一个新目录)
- 复制文件:`cp source_file destination_file`(复制文件到指定位置)
- 移动/重命名文件:`mv source destination`(将文件或目录移动/重命名)
- 删除文件:`rm file_name`(删除指定文件)
- 删除目录:`rmdir directory_name`(删除指定目录,仅限空目录)
- 强制删除目录及其内容:`rm -r directory_name`(递归删除目录及其内容)
3. 包管理:
- 更新系统软件包:`yum update`(更新所有已安装的软件包)
- 安装软件包:`yum install package_name`(安装指定软件包)
- 卸载软件包:`yum remove package_name`(卸载指定软件包)
- 搜索软件包:`yum search keyword`(搜索具有关键字的软件包)
- 列出已安装软件包:`yum list installed`(列出所有已安装的软件包)
4. 网络相关:
- 查看 IP 地址:`ip addr show`或`ifconfig`(显示网络接口及其配置信息)
- 测试网络连通性:`ping ip_address`(向指定IP地址发送网络数据包)