sql-server - DBCC SHRINKFILE 会终止事件事务吗?

标签 sql-server database transactions database-administration dbcc

我创建了一个作业,每天将数 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/

相关文章:

sql-server - sql server中的id,date或date,id索引有区别吗

sql-server - SQL Server 中的精确长度列

php - 如何用 PHP 调试 prepare 语句?

c# - 如何防止 NServiceBus 回滚事务或事务的一部分?

java - 是否有必要对 catch block 中的事务进行回滚?

SQL 服务器。聚合函数中使用子查询计算公式

mysql - 从 MS sql 数据库中存在的 View 更新表

database - Redis 存储历史数据

sql - 无法在具有唯一索引的对象中插入重复的键行

Spring、Hibernate 事务。加入 A 中创建的线程 B 中的事务。可能吗?