SQLServer msdb备份信息清除

2023年 8月 12日 46.4k 0

相信数据库运维同学都知道,随着时间的推移,每天备份产生的记录累计越来越多。不仅在系统数据库 msdb 记录下来,SQL Server 的错误日志也会记录相应信息。如果我们不定时清理,长此以往使数据越来越多。

我们查看msdb数据库,看看哪张表数据较多。

    select OBJECT_NAME(id),rows

    from msdb.sys.sysindexes

    where indid in(,1)

    and rows >

    order by rows desc

    有2个系统存储过程,可将这些记录清除。

    sp_delete_backuphistory [ @oldest_date = ] 'oldest_date'

    sp_delete_database_backuphistory [ @database_name = ] 'database_name'

      sp_delete_backuphistory 按日期删除;

      sp_delete_database_backuphistory 按数据库删除;

      存储过程将清除以下表数据:

      backupfile

      backupfilegroup

      restorefile

      restorefilegroup

      restorehistory

      backupset

      backupmediafamily

      backupmediaset

      不过,上面并非优方法。当这些表数据量较多的时候,删除是非常慢的,因为这些表之间有外键关联。较好的方法是使用 truncate 清空表数据。毕竟这些记录我们暂时没什么用。在 truncate 前,先把外键给删除掉。

      SELECT oMain.name AS [主表名称],oSub.name AS [子表名称],fk.name AS [外键名称],MainCol.name AS [主表列名],SubCol.name AS [子表列名]

      ,'ALTER TABLE [dbo].['+oSub.name+'] DROP CONSTRAINT ['+fk.name+']'

      ,'ALTER TABLE [dbo].['+oSub.name+'] WITH CHECK ADD FOREIGN KEY(['+SubCol.name +'])REFERENCES [dbo].['+oMain.name+'] (['+MainCol.name+'])'

      FROM sys.foreign_keys fk

      JOIN sys.all_objects oSub ON (fk.parent_object_id = oSub.object_id)

      JOIN sys.all_objects oMain ON (fk.referenced_object_id = oMain.object_id)

      JOIN sys.foreign_key_columns fkCols ON (fk.object_id = fkCols.constraint_object_id)

      JOIN sys.columns SubCol ON (oSub.object_id = SubCol.object_id AND fkCols.parent_column_id = SubCol.column_id)

      JOIN sys.columns MainCol ON (oMain.object_id = MainCol.object_id AND fkCols.referenced_column_id = MainCol.column_id)

      WHERE oMain.name in('backupfile','backupfilegroup','backupmediafamily','backupset','backupmediaset','restorefile','restorefilegroup','restorehistory')

        外键可以不添加了,创建一个定时作业,清空以上表即可。如必要可将外键添加回去。

        msdb 相关备份表记录过大的已经解决了,现在我们也把SQLServer错误日志的记录也禁用。启用跟踪标志 3226,可停止记录备份日志条目。

          相关文章

          Golang测试中的数据生成技巧

          2023-08-07
          数据
          生成
          技巧

          SQL数据库触发器语法详解 (sql数据库触发器语法)

          2023-08-06
          数据库
          语法
          触发器

          快速简单的删除Oracle数据库字段方法 (删除oracl数据库字段)

          2023-08-06
          数据库
          字段
          删除

          如何打开社工数据库bak文件 (社工数据库bak怎么打开)

          2023-08-06
          数据库
          打开
          社工

          实现数据库按拼音排序的方法和技巧 (数据库按拼音排序)

          2023-08-06
          数据库
          排序
          按拼音

          探究Sybase数据库的性能和功能特点 (sybase数据库怎么样)

          2023-08-06
          数据库
          性能
          探究

          SQL Server 如何成功建立自己的数据库? (sql server 建立数据库)

          2023-08-06
          数据库
          自己的
          建立

          如何在Oracle中查看数据库触发器? (oracle查看数据库触发器)

          2023-08-06
          数据库
          查看
          触发器

          数据库表数据量千万级,对性能影响有多大? (数据库表千万级数据量多吗)

          2023-08-06
          数据库
          级数
          有多大

          如何使用Oracle按时间导出表数据库? (oracle按时间导出表数据库)

          2023-08-06
          数据库
          导出
          如何使用

          数据库存储:帖子长期保存,信息永不丢失 (帖子存数据库)

          2023-08-06
          数据库
          丢失
          帖子

          小米六数据库:全方位数据保障和优化方案 (小米六数据库)

          2023-08-05
          数据库
          优化
          小米

          简易教程:使用dbe数据库实现数据连接 (dbe数据库 数据连接)

          2023-08-05
          数据
          数据库
          连接

          Oracle实现多个数据库链接的简便方法 (oracle链接多个数据库)

          2023-08-05
          数据库
          多个
          链接

          数据库索引:用哪种方法建立? (数据库索引用什么建的)

          2023-08-05
          索引
          数据库
          哪种

          实现高效缓存同步:Redis数据库技巧大全 (redis 数据库缓存同步)

          2023-08-05
          数据库
          缓存
          同步

          如何利用数据库实现高效的模糊匹配查询? (数据库实现模糊查询)

          2023-08-05
          查询
          数据库
          模糊

          数据库有哪些安装方式和位置? (数据库是装在什么上)

          2023-08-05
          数据库
          位置
          装在

          Lactmed数据库:妈妈们必备的喂养指南 (lactmed 数据库)

          2023-08-05
          数据库
          必备
          喂养

          数据库设计中的主属性定义及作用 (数据库主属性是什么)

          2023-08-05
          数据库
          定义
          属性

          相关文章

          Oracle如何使用授予和撤销权限的语法和示例
          Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
          下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
          社区版oceanbase安装
          Oracle 导出CSV工具-sqluldr2
          ETL数据集成丨快速将MySQL数据迁移至Doris数据库

          发布评论