- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个长时间运行的进程,该进程在整个持续时间内保持打开的事务。
我无法控制其执行方式。
由于事务在整个持续时间内保持打开状态,因此当事务日志填满时,SQL Server 无法增加日志文件的大小。
因此该过程失败并出现错误 "The transaction log for database 'xxx' is full"
.
我尝试通过增加数据库属性中事务日志文件的大小来防止这种情况发生,但我得到了同样的错误。
不确定下一步应该尝试什么。这个过程要持续几个小时,所以要反复试验并不容易。
有什么想法吗?
如果有人感兴趣,该过程是 Microsoft Dynamics CRM 4.0.
中的组织导入
有足够的磁盘空间,我们将日志设置为简单日志记录模式,并在开始进程之前备份了日志。
-=-=-=-=-更新-=-=-=-=-
感谢大家迄今为止的评论。以下是让我相信日志不会因开放事务而增长的原因:
我收到以下错误...
Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception:
System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
因此,按照该建议,我转到“log_reuse_wait_desc column in sys.databases
”,它的值是“ACTIVE_TRANSACTION
”。
根据微软的说法: http://msdn.microsoft.com/en-us/library/ms345414(v=sql.105).aspx
这意味着以下内容:
事务处于事件状态(所有恢复模型)。• 日志备份开始时可能存在长时间运行的事务。在这种情况下,释放空间可能需要另一个日志备份。有关详细信息,请参阅本主题后面的“长时间运行的事件事务”。
• 事务被延迟(仅限 SQL Server 2005 Enterprise Edition 及更高版本)。延迟事务实际上是一个事件事务,其回滚由于某些不可用的资源而被阻止。有关延迟事务的原因以及如何将其移出延迟状态的信息,请参阅延迟事务。
我是不是误解了什么?
-=-=-=-更新2-=-=-=-
刚刚开始该过程,初始日志文件大小设置为 30GB。这将需要几个小时才能完成。
-=-=-=- 最终更新 -=-=-=-
该问题实际上是由日志文件消耗所有可用磁盘空间引起的。在上次尝试中,我释放了 120GB,但它仍然用完了所有空间,最终失败了。
我之前没有意识到这种情况发生,因为当该进程运行过夜时,它会在失败时回滚。这次我能够在回滚之前检查日志文件大小。
感谢大家的意见。
最佳答案
要解决此问题,请将恢复模式更改为简单,然后压缩文件日志
1.数据库属性 > 选项 > 恢复模型 > 简单
2.数据库任务 > 收缩 > 文件 > 日志
完成。
然后检查您的数据库日志文件大小数据库属性 > 文件 > 数据库文件 > 路径
要检查完整的 sql server 日志:打开日志文件查看器SSMS > 数据库 > 管理 > SQL Server 日志 > 当前
关于sql - 数据库的事务日志已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17674973/
我编写了一个函数来包含两个 DateTime 之间的小时列表。 但最后它看起来并不是很容易阅读,这让我想对它进行单元测试,即使我正在从事的项目根本没有进行单元测试。 所以我的问题是,是否有一种更易读或
我一定是漏掉了什么,因为我还没有在网上找到这个非常基本的问题的答案。我正在使用能够容纳三个 int 的缓冲 channel 值。 然后我使用三个 goroutine 来填充它,一旦缓冲 channel
我发现如果一个矩阵(几乎)满了,那么将它存储在稀疏中会导致(更多)更多的计算时间。 虽然以稀疏形式存储完整矩阵是微不足道的,但我只想知道这一事实背后的原因。 我的推测是稀疏索引读取将是计算时间的主要贡
root@root:~# sudo du -ch --max-depth=1 --exclude=/home/ / du: cannot access ‘/sys/kernel/slab/L2TP/I
基本上我想创建一个 UIProgressView 在 3 秒内从 0.0(空)到 1.0(满)。有人能指出我在 swift 中使用 NSTimer 与 UIProgressView 的正确方向吗? 最
我是一名优秀的程序员,十分优秀!