我有在Visual Studio 2012使用一个数据库文件的项目,我们会打电话给管理SQL日志文件大小
db.mdf,db_log.ldf,db_db_0.ldf(不知道在哪里这一个来自)
我想要做的是确保.ldf文件的大小保持小。我被告知需要备份数据库(我假设.mdf),然后从该时间点重新创建.ldf文件。因此,执行这些步骤之前发生的任何事务都将消失,并且.ldf文件更小且更易于管理。
事情我已经尝试:
string detachQuery = String.Format("sp_detach_db @dbname='{0}'", _connection.Database);
using (var cmd = new SqlCommand(detachQuery, _connection))
{
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e) { }
}
这里的想法是从分离.ldf文件数据库已经备份的数据库后,然后将其重新安装到一个新的.LDF文件,虽然我不知道如何创建新的.ldf文件。与此问题是,我得到以下例外:
"Cannot detach the database because it is currently in use."
我的问题是,在C#中,这是如何完成的?我的第二个问题是:是否有更好的方式来实现更易管理的日志文件的预期效果?
“小”是什么意思?现在有多大,数据文件有多大? – RBarryYoung
@RBarryYoung,我真的不确定。此代码尚未投入生产,目前我们还没有正确的测试数据来投入此数据库。这个想法是采取数据库的备份,但是我的项目经理常常说需要备份,因此不需要使用.ldf文件。我不知道他们为什么要这样做,我不熟悉这种类型的数据库维护。我对数据库的使用经验是在使用SQLite的移动应用程序中,所以这对我来说很新。 – jeffmcnd