我需要在发送给同事之前清空LDF文件.如何强制SQL Server截断日志?
所以我一直忽略了我的fogbugz数据库的任何备份,现在fogbugz ldf文件超过2次半的演出.这是在我们使用fogbugz的六个月里建立起来的.
我备份了数据库,然后我备份了,并截断了事务日志,但事务日志仍然是2个半的演出.我对日志文件进行了缩小,还有两次半的演出.我没做什么似乎缩小了文件的大小.
无论如何都有解决问题的方法吗?或者是回到这一点的唯一方法是分离数据库,删除日志文件,然后重新附加一个新文件?
我有一个应用程序可能会对SQL Server 2005数据库进行数千次插入.如果插入因任何原因(外键约束,字段长度等)而失败,则应用程序将记录插入错误并继续.
每个插入都独立于其他插入,因此数据库完整性不需要事务.但是,我们希望使用它们来提高性能.当我使用事务时,我们将在每100次提交中大约有1次出现以下错误.
This SqlTransaction has completed; it is no longer usable.
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.SqlClient.SqlTransaction.Commit()
Run Code Online (Sandbox Code Playgroud)
为了尝试追踪原因,我在每个事务操作中都放置了trace语句,这样我就可以确保在调用commit之前没有关闭事务.我已经确认我的应用程序不会关闭交易.然后我使用完全相同的输入数据再次运行应用程序并成功.
如果我关闭日志,它会再次失败.把它重新打开,然后成功.这个开/关切换是通过app.config完成的,无需重新编译.
显然,记录行为会改变时间并使其起作用.这表明存在线程问题.但是,我的应用程序不是多线程的.
我已经看到一个MS KB条目表明.Net 2.0框架的错误可能会导致类似的问题(http://support.microsoft.com/kb/912732).但是,他们提供的修复程序无法解决此问题.
为什么我的数据库日志文件占用了大量空间?它几乎占据了30GB我的硬盘。即使删除1,000,000记录后,它也不会释放任何空间。
那么,
1.为什么日志文件要占用这么多空间 ( 30gb)?2.我怎样才能释放空间?
所以我们的SQL Server 2000给了我错误,"数据库的日志文件已满.备份数据库的事务日志以释放一些日志空间."
如何在不删除日志的情况下修复此问题,就像其他网站提到的一样?
附加信息:启用AutoGrowth启用增长10%,限制为40MB.
我有一个项目,我们需要将许多用纯文本密码的用户迁移到一个新的数据库中,我们将对密码进行哈希处理.
新系统使用Entity Framework,需要使用Asp.Net Identity框架进行身份验证.
我发现我可以在C#中生成一个正确的哈希密码,Entity Framework可以毫无问题地读取该密码.
public static string HashPassword(string password)
{
byte[] salt;
byte[] buffer2;
using (var bytes = new Rfc2898DeriveBytes(password, 0x10, 0x3e8))
{
salt = bytes.Salt;
buffer2 = bytes.GetBytes(0x20);
}
byte[] dst = new byte[0x31];
Buffer.BlockCopy(salt, 0, dst, 1, 0x10);
Buffer.BlockCopy(buffer2, 0, dst, 0x11, 0x20);
return Convert.ToBase64String(dst);
}
Run Code Online (Sandbox Code Playgroud)
SQL中是否有类似的东西我可以在INSERT语句中使用SELECT到另一个表?
我正在寻找一种方法来读取SQL Server 2008日志文件,不是为了显示信息,而是为了读取符号的含义和LOG表的结构.我正在使用DBCC LOG('my_table', 3).