我创建了一个作业,每天将数 GB 的数据从源数据库加载到目标数据库。一开始这项工作运行良好,没有任何问题。
由于事务日志已满,过去 2 周作业失败。
我在我的 SQl 作业中添加了一个步骤以在加载开始之前清除日志,但仍然发生相同的错误。
我监控到,在错误发生之前正在加载的最后一个表在失败之前等待了几分钟。我怀疑它正在等待清理日志。
如果我在作业当前运行时在此数据库上运行 DBCC SHRINKFILE
命令,它是否也会清除/终止事件事务?
最佳答案
If I run the DBCC SHRINKFILE command on this DB when the job is currently running, will it wipe out/kill the active transaction as well
不,DBCC SHRINKFILE
不会终止事务
I've added a step in my SQL job to clear the log before the loading starts.
如果您正在缩小文件,并且没有可用空间,这不会清除 或缩小 日志文件。你需要backup the log file , 理想情况下,根据您的 RPO and RTO 有点频繁, 或者交换你的 recovery model在此批量插入到诸如 BULK LOGGED
之类的内容期间。 More on how to do TLOG backups.
关于sql-server - DBCC SHRINKFILE 会终止事件事务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53960888/