SQL server 日志文件收缩 与日志文件备份

在完整恢复模式下,SQL server需要定期备份日志,否则,日志文件会一直扩大,直到占满硬盘大小,在进行一次完整备份之后,可以定期备份日志文件

脚本如下:

DECLARE @strbackup NVARCHAR(100)
 --改为日期加时间的
 SET @strbackup = ‘F:\bak\Test_bak_log_‘
     + REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), ‘-‘, ‘‘), ‘ ‘,
                      ‘‘), ‘:‘, ‘‘) + ‘.bak‘
 BACKUP LOG MainTest TO DISK = @strbackup WITH INIT;
 GO

查看日志使用情况

命令

dbcc sqlperf(logspace)

查看单个库的VLF文件详情,

use  DatabaseXX
DBCC LOGINFO;

如果日志文件过大,需要收缩,请执行如下脚本

USE [master]
GO

ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT
GO

ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE
GO

USE 数据库名称
GO

declare @dbName nvarchar(100)

set @dbName = (SLEECT name FROM sys.database_files WHERE type=1)
GO

DBCC SHRINKFILE(@dbName,1,TRUNCATEONLY)
GO

USE [master]
GO

ALTER DATABASE 数据库名称 SET RECOVERY FULL WITH NO_WAIT
GO

ALTER DATABASE 数据库名称 SET RECOVERY FULL

需要注意的是,将数据库由简单模式切换到完整模式后,需要做一次完整或者差异备份,日志才会按照完整模式的形式增长。

参考地址:

https://www.cnblogs.com/woodytu/p/4935887.html

原文地址:https://www.cnblogs.com/niceletter/p/11993049.html

时间: 2024-10-12 06:20:29

SQL server 日志文件收缩 与日志文件备份的相关文章

SQL Server实现自动收缩数据库日志文件

1 --在作业中 执行下面SQL代码 即可实现 自动收缩日志文件.(MSSQL 维护计划中没有提供自动收缩日志文件的功能) 2 --非 镜像 复制订阅 日志传送的情况下 执行. 如果存在日志传送莫要执行 否则日志传送会失败 3 declare @exec_sql nvarchar(1200),@simple_sql nvarchar(1200),@full_sql nvarchar(1200) 4 declare @db_name varchar(128) 5 declare @db_count

sql server 2012 如何收缩事务日志

sql2008不再支持 BACKUP LOG 数据库名 WITH NO_LOG   语句 BACKUP Log zxta with no_log 截断事务日志 sql2008 提示错误如下 BACKUP LOG 数据库名 WITH NO_LOG Msg 3032, Level 16, State 2, Line 1此语句不支持一个或多个选项(no_log).请查阅文档以了解所支持的选项. 事务日志截断 若要避免数据库的事务日志被填满,例行备份至关重要.在简单恢复模式下,备份了数据库后会自动截断日

数据文件 和日志文件 收缩 Sql Server

A. 将数据文件收缩到指定的目标大小 以下示例将 UserDB 用户数据库中名为 DataFile1 的数据文件的大小收缩到 7 MB. 复制 USE UserDB; GO DBCC SHRINKFILE (DataFile1, 7); GO B. 将日志文件收缩到指定的目标大小 以下示例将 AdventureWorks2008R2 数据库中的日志文件收缩到 1 MB.若要允许 DBCC SHRINKFILE 命令收缩文件,首先需要通过将数据库恢复模式设置为 SIMPLE 来截断该文件. 复制

第五篇 SQL Server代理理解代理错误日志

本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到,SQL Server代理可以通过数据库邮件发送通知.如果有什么不正确的,你必须查看数据库邮件日志.在这一篇,你将学习如何理解和查看所有相关的SQL Server代理错误日志.你将回顾最常见的错误信息,掌握哪些信息需要你采取行动,哪些信息只是单纯的信息而已.一旦你理解错误日志,在处理SQL Serv

sql server数据同步方案-日志传送

1 功能描述 本方案采用日志传送模式,把核心数据库(主数据库)定期同步到灾备数据库(辅助服务器)及备份库(辅助服务器,便于其他系统使用,减轻主数据压力),期间,如果发生异常导致无法同步,将以电子邮件.短信方式通知管理人员. 2 系统环境 2.1硬件 主数据库: SQLHA 灾备库服务器:DisaterDBSVRA 备份库服务器:BackupDataSVR 2.2软件 主数据库: Win2008 x64 SQL2005 SP4 x64 灾备库: Win2008 x64 SQL2005 SP4 x6

2. SQL Server数据库状态监控 - 错误日志

无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志 Windows事件日志中,应用程序里的SQL Server和

SQL Server 2005/2008压缩数据库日志的方法

适用于SQL Server 2005的方法 1 Backup Log DNName WITH no_log 2 GO 3 DUMP TRANSACTION DNName WITH no_log 4 GO 5 USE DNName 6 DBCC SHRINKFILE (2) 7 GO 说明:由于SQL Server 2008对文件和日志管理进行了优化,所以以上语句在SQL2005中可以运行但在SQL2008中已经被取消. 适用于SQL Server 2008的方法 1 USE [master] 2

数据库日志文件收缩

项目所使用的数据库通过备份还原来的,导致日志文件很大,占用了很大的空间,在网上搜索了日志收缩的信息,整理了下. --清空日志 DUMP  TRANSACTION  EWABOQDB  WITH NO_LOG --截断事务日志 BACKUP LOG EWABOQDB WITH NO_LOG --收缩日志 右键要收缩的数据库--任务--收缩--文件--文件类型选择日志--收缩方式中选择收缩至XXM输入确定 以上已完成日志文件的收缩,日志文件所占空间已减少 下面是对日志文件的增长规则进行了个限制 右键

SQL Server Log文件对磁盘的写操作大小是多少

原文:SQL Server Log文件对磁盘的写操作大小是多少 SQL Server 数据库有三种文件类型,分别是数据文件.次要数据文件和日志文件,其中日志文件包含着用于恢复数据库的所有日志信息,SQL Server总是先写日志文件ldf,数据变化写入mdf则可以滞后,所以日志写入的速度在一定程序上决定了SQL Server所能承载的写事务量,那么ldf写入大小是多少呢? 要知道SQL Server写 Log的大小,这里使用工具Process Monitor 这里设置一个Filter,以满足只收