我有一个长时间运行的进程,可以在整个持续时间内保持打开一个事务.
我无法控制执行方式.
由于事务在整个持续时间内保持打开状态,因此当事务日志填满时,SQL Server无法增加日志文件的大小.
因此该过程因错误而失败"The transaction log for database 'xxx' is full".
我试图通过增加数据库属性中的事务日志文件的大小来防止这种情况,但我得到了相同的错误.
不确定我接下来应该尝试什么.这个过程持续了几个小时,因此不容易进行反复试验.
有任何想法吗?
如果有人感兴趣,该过程是组织导入 Microsoft Dynamics CRM 4.0.
有足够的磁盘空间,我们有简单的日志记录模式,并在启动进程之前备份了日志.
- = - = - = - = - UPDATE - = - = - = - = -
感谢所有评论到目前为止.以下是让我相信日志因开放交易而不会增长的原因:
我收到以下错误...
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
Run Code Online (Sandbox Code Playgroud)
所以按照这个建议,我去了" log_reuse_wait_desc column …
首先让我说,我知道这个网络以及网络上的其他人试图解决这个问题.
在那里发布的解决方案不适用于我的问题.在决定提问之前,我花了5个小时试图解决这个问题.
问题:当我尝试使用SQL身份验证登录SSMS(或从Java应用程序连接)时出现此错误:
已成功与服务器建立连接,但在登录过程中发生错误.(提供程序:共享内存提供程序,错误:0 - 管道的另一端没有进程.)(Microsoft SQL Server,错误:233)
虽然它确实有效,但我不能选择使用集成身份验证.我尝试连接的数据库与我的SSMS实例在同一台机器上.没有网络,这是一个独立的系统.
在我的配置中启用了NAMED PIPES,我已重新启动,因为TCP IP比我的配置中的命名管道更高优先级.
我甚至已经远远没有卸载SQL Server并重新安装它,但无济于事.
我的SQL Server实例的详细信息如下:
Microsoft SQL Server Management Studio - 10.0.2531.0
Microsoft Analysis Services Client Tools - 10.0.1600.22
Microsoft Data Access Components (MDAC) - 6.1.7601.17514
Microsoft MSXML - 3.0 5.0 6.0
Microsoft Internet Explorer - 9.0.8112.16421
Microsoft .NET Framework - 2.0.50727.5466
Operating System - 6.1.7601
Run Code Online (Sandbox Code Playgroud)
配置详情如下:http : //i45.tinypic.com/vxdz7c.png http://i45.tinypic.com/vxdz7c.jpg
我使用此代码从java连接.
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost;database=AdventureWorks;integratedSecurity=false;User=JIMBO; Password=JIMBO;";
Connection con …Run Code Online (Sandbox Code Playgroud)