当前位置: 首页 > news >正文

博客摘录「 Sql Server 收缩日志文件原理及always on 下的实践」2024年5月22日

四、Always on 环境下实践  

先对数据库进行完整备份:      

EXEC sp_configure 'show advanced options', 1;

RECONFIGURE;

EXEC sp_configure 'xp_cmdshell', 1;

RECONFIGURE;

DECLARE @DbName NVARCHAR(1000);

DECLARE myCursor CURSOR LOCAL STATIC

FOR

SELECT [name]

FROM sysdatabases

WHERE [name] NOT IN ( 'master', 'model', 'msdb', 'tempdb' )

AND name NOT LIKE '%test%'

AND name NOT LIKE '%bak%'

AND name NOT LIKE '%demo%'

AND version IS NOT NULL

AND version <> 0

ORDER BY [name];

OPEN myCursor;

FETCH NEXT FROM myCursor INTO @DbName;

WHILE ( @@FETCH_STATUS = 0 )

BEGIN

DECLARE @strDate AS NVARCHAR(20),

@strDateBeforeSeven AS NVARCHAR(20),

@strFileName AS NVARCHAR(255),

@strFileNameBeforeSeven AS NVARCHAR(255),

@strCommand AS NVARCHAR(255)

SET @strDate = CONVERT(NVARCHAR(20),GETDATE(),112);

SET @strDateBeforeSeven = CONVERT(NVARCHAR(20),GETDATE()-3,112); 

SET @strFileName = 'E:\daybak\['+@DbName+']_bakup_'+@strDate; 

SET @strFileNameBeforeSeven = 'E:\daybak\['+@DbName+']_bakup_'+@strDateBeforeSeven; 

EXEC ('BACKUP DATABASE ['+@DbName+'] TO DISK = ''' + @strFileName + '.bak''')

SET @strCommand = 'DEL ' + @strFileNameBeforeSeven + '.bak'

EXEC master.dbo.xp_cmdshell @strCommand

FETCH NEXT FROM myCursor INTO @DbName;

END;

CLOSE myCursor;

DEALLOCATE myCursor;  

然后对数据库进行事务日志备份并收缩:

EXEC sp_configure 'show advanced options', 1;

RECONFIGURE;

EXEC sp_configure 'xp_cmdshell', 1;

RECONFIGURE;

DECLARE @DbName NVARCHAR(1000);

DECLARE myCursor CURSOR LOCAL STATIC

FOR

SELECT [name]

FROM sysdatabases

WHERE [name] NOT IN ( 'master', 'model', 'msdb', 'tempdb' )

AND name NOT LIKE '%test%'

AND name NOT LIKE '%bak%'

AND name NOT LIKE '%demo%'

AND version IS NOT NULL

AND version <> 0

ORDER BY [name];

OPEN myCursor;

FETCH NEXT FROM myCursor INTO @DbName;

WHILE ( @@FETCH_STATUS = 0 )BEGIN

DECLARE @strDate AS NVARCHAR(20),

@strDateBeforeSeven AS NVARCHAR(20),

@strFileName AS NVARCHAR(255),

@strFileNameBeforeSeven AS NVARCHAR(255),

@strCommand AS NVARCHAR(255)

SET @strDate = CONVERT(NVARCHAR(20),GETDATE(),112);

SET @strDateBeforeSeven = CONVERT(NVARCHAR(20),GETDATE()-3,112); 

SET @strFileName = 'E:\Log_daybak\['+@DbName+']_bakup_'+@strDate; 

SET @strFileNameBeforeSeven='E:\Log_daybak\'+@DbName+']_bakup_'+@strDateBeforeSeven; 

EXEC ('BACKUP LOG ['+@DbName+'] TO DISK = ''' + @strFileName + '.log'';USE ['+@DbName+'];DBCC SHRINKFILE(2,100);')

SET @strCommand = 'DEL ' + @strFileNameBeforeSeven + '.log'

EXEC master.dbo.xp_cmdshell @strCommand

FETCH NEXT FROM myCursor INTO @DbName;

END;

CLOSE myCursor;

DEALLOCATE myCursor;

http://www.lryc.cn/news/353134.html

相关文章:

  • 每日一题(5)——StringBuffer操作
  • 默认路由实现两个网段互通实验
  • ComfyUI完全入门:图生图局部重绘
  • 基于UDP的网络多人聊天室
  • 美国FDA认证是什么,食品FDA注册申请流程
  • golang的context和chan 的使用
  • 洛谷P3574 [POI2014] FAR-FarmCraft(树形dp)
  • vue/core源码中ref源码的js化
  • 准备打ccf
  • k8s遇到的错误记录
  • 全局平均池化笔记
  • 【数仓系列】maxcompute、postgresql、sparksql等行转列数据处理实战总结(其他类型持续总结更新)
  • 用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见
  • Cloneable接口和深拷贝
  • C++:vector的介绍及使用
  • 【机器学习】大模型在机器学习中的应用:从深度学习到生成式人工智能的演进
  • 营销短信XML接口对接发送示例
  • 【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
  • Python pdf2imges -- pdf文件转图片
  • 分布式版本控制工具 git
  • Flutter 中的 ExpansionTile 小部件:全面指南
  • 二进制的协议的测试程序
  • 多线程事务
  • 春秋云境CVE-2020-26048
  • MySQL 带游标的存储过程(实验报告)
  • 结构体(位段)内存分配
  • 基于SSH的母婴用品销售管理系统带万字文档
  • 说些什么好呢
  • 1301-习题1-1高等数学
  • C语言之指针进阶(3),函数指针