如何有效控制SSISDB的数据库文件的大小

场景

业务系统中的一些用户报表数据刷新频率比较高,所以相应的ETL package2~3分钟就会跑一次。所有SSIS Package都是部署在SSISDB上集中管理,使用便捷,但有一个问题,就是SSISDB的数据库文件越来越庞大,吃掉大半个磁盘。

解决方案

1. 设置SSIDB Properties,仅保留1天的日志和3个project部署版本

SSISDB会创建一个agent job - SSIS Server Maintenance Job,根据以上配置来定期清理SSISDB内容。这个job的第一步会调用[SSISDB].[internal].[cleanup_server_retention_window]存储过程,涉及多表的级联删除,会产生大量transaction log。所以我们还需要进行以下操作。

2. SSISDB数据库的恢复模式默认是Full,如果不进行日志备份并截断,SSISDB.ldf会持续增长,很快占满磁盘。考虑到SSIDB并没有容灾要求,直接将恢复模式改为Simple Recovery,这样的好处是数据库Checkpoint之后会自动截断transaction log,SSISDB.ldf会控制在一个稳定的大小。但稳定值在40G左右还是无法接受,需要进一步优化

3. 在SSISDB中查看[internal].[cleanup_server_retention_window]的代码,在删除日志的核心代码中加入CHECKPOINT,促使数据库在每个级联删除事务之后尽快进行checkpoint,从而自动截断transaction log,下一轮循环中的删除操作就可以重用该文件空间;同时,减少@delete_batch_size为100,使每个批次中删除数据量减少。最终SSISDB.ldf稳定大小缩小至20G左右。

注意:需要给AllSchemaOwner赋予CHECKPOINT权限

4. 设置Customized Logging Level,只记录error和warning信息,这样就大大减少了写入SSIDB表中的记录数。DELETE时的事务日志自然也缩减了

时间: 2024-11-10 23:09:32

如何有效控制SSISDB的数据库文件的大小的相关文章

管理SQL2005数据库文件

第二章 管理数据库文件   数据库中的事务 一组数据库操作操作SQL语句作为整体执行,要么完全地执行,要么完全地不执行 对数据库中的数据操作的过程增删改 修改数据过程: 1)将数据调入内存中修改,同时写事务日志 2)默认每隔1分钟数据库就有1个检查点,就把内存里的数据写入硬盘 3)出现故障后(故障点),数据库重启就会检查数据库事务日志,检查最近一次检查点和故障点 之间哪些事务(数据修改)完成了,哪些事务(数据修改)没完成.完成的事务进行前滚,没 完成的事务取消,进行回滚. 前滚:(在检查点和故障

为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0

为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0? 答:NTFS删除一个文件,必须要完成如下几个流程,才算完结: 1.更改文件系统$bitmap,释放空间 2.更改$mft filerecord项的属性为删除 3.更改$mft:$bitmap的位图信息为0,释放这个filerecord的占用空间 4.清除目录链表中关于本文件的item信息. 这个流程是理想状态下的处理规则,但实际上,最头疼的是OS要考虑这个问题:如果在上述4个步骤中出现中断(如突然断电.死机等),

如何查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

要查看Oracle数据库表空间大小,是否需要增加表空间的数据文件,在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见. --1.查看表空间已经使用的百分比 Sql代码 select   a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024   "used MB",b.bytes/1024/1024 "free MB",round(((a.by

SqlSever基础 设置数据库文件与日志文件的初始大小

1 code 1 select from sysdatabases 2 3 drop database helloworld 4 5 create database helloworld 6 7 --设置mdf文件的属性 8 on primary 9 ( 10 name = 'aHelloWorldLogic', --mdf文件的逻辑名字(不是文件名字) 11 filename = 'CUsersAdministratorDesktopaHelloWorld.mdf', --mdf文件的存储路径

SqlSever基础 设置数据库文件与日志文件的大小增长率

1 code 1 select * from sysdatabases 2 3 drop database helloworld 4 5 create database helloworld 6 7 --设置mdf文件的属性 8 on primary 9 ( 10 name = 'aHelloWorldLogic', --mdf文件的逻辑名字(不是文件名字) 11 filename = 'C:\Users\Administrator\Desktop\aHelloWorld.mdf', --mdf

WAMP_修改数据库上传文件的大小及上传时间限制

一个文件如果几十兆的话,上传时可能出错,因为执行时间不够, 比如我遇到的ECshop的数据库文件就是 40多M 第一次执行失败. 所以索性一次性把所有东西都设置好.在php.ini文件中查找以下内容: "max_execution_time =" 数值改为 1200 "max_input_time =  "   数值改为 1200 "memory_limit =   "    数值改为 256 "post_max_size = &quo

如何修改WAMP数据库上传文件的大小及上传时间限制

一个文件如果几十兆的话,上传时可能出错,因为执行时间不够, 比如我遇到的ECshop的数据库文件就是 40多M 第一次执行失败. 所以索性一次性把所有东西都设置好.在php.ini(apache中的PHP配置文件)文件中查找以下内容:  “max_execution_time =" 数值改为 1200 “max_input_time =  ”   数值改为 1200  “memory_limit =   ”    数值改为 256  “post_max_size = ”   需要上传多大的文件将

人人都是 DBA(V)SQL Server 数据库文件

SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname(owner_sid) AS [owner] ,create_date ,user_access_desc ,state_desc FROM sys.databases WHERE database_id <= 4; master master 数据库包含用于记录整个服务器安装信息和后续创建的所有数

zbb20170816 oracle Oracle 查看表空间、数据文件的大小及使用情况sql语句

oracle Oracle 查看表空间.数据文件的大小及使用情况sql语句 --表空间 --1G=1024MB --1M=1024KB --1K=1024Bytes --1M=11048576Bytes --1G=1024*11048576Bytes=11313741824Bytes SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) &qu