如何增加事务日志的大小?也可以暂时增加事务日志吗?
假设我有以下情况。我的Delete操作对于当前事务日志来说太大了。我想要:
在SQL Server 2000系统上,我有一个templog.ldf文件似乎无限制地增长!但是当我检查时,tempdb中没有任何打开的事务(使用DBCC OPENTRAN),也没有在tempdb中使用显式事务.
但是,我在我的存储过程中使用临时表.谁知道ASP.NET数据访问对象可能在幕后做什么?数据库支持ASP.NET网站.
无论如何,tempdb.mdf文件 - tempdb数据文件 - 是一个非常合理的700 MB.templog.ldf文件一天可以增长到30 GB!如果我没有耗尽磁盘空间,可能会更多.我没有明确地删除存储过程中的#tables,但同样,mdf文件似乎永远不会变得非常大.
当没有未完成的交易时,为什么交易日志会增长?事务日志是否会回收空间?此外,DUMP TRAN WITH NO_LOG不会缩小文件,也不会通过截断事件检查CHECKPOINT事件.在tempdb上启用了登录chkpt.停止SQL Server清除tempdb(可能是DBCC SHRINKFILE,但我还没有这样做).
谢谢你的帮助!
我们告诉客户端将SQL Server数据库文件(mdf)放在与事务日志文件(ldf)不同的物理驱动器上.该技术公司(由我们的客户雇用)希望将事务日志放在比数据库驱动器更慢(例如更便宜)的驱动器上,因为使用事务日志,您只需按顺序写入日志文件.
我告诉他们我认为驱动器(实际上是RAID配置)也需要在快速驱动器上,因为每个数据更改调用数据库需要保存在那里,以及数据库本身.
在说完之后,我意识到我并不完全确定.事务日志驱动器的速度是否会在性能上产生显着差异...如果带有数据库的驱动器速度很快?
我有一个巨大的表(30亿行),不幸的是,它包含大部分过期的数据.我想简单地删除所有这些过期的行,并保留其余的行.
我可以执行这样的语句:
delete from giganticTable where exp_date < getDate()
Run Code Online (Sandbox Code Playgroud)
执行计划以某种方式估计将删除大约4亿行.
执行时,不仅在一小时后没有完成,而且数据库事务日志文件也从6 GB增长到90 GB.请注意,在发生这种情况时,数据库处于批量记录恢复模型中.我最终取消了这个查询,因为我确信必须有更好的方法来做到这一点.
我有几个表需要执行类似的操作.如果我绝对不想恢复它们,那么删除这些行的最快和最节省空间的方法是什么?
请注意,我正在使用Microsoft SQL Server 2005.
事件中心不允许您存储超过 7(最多 30)天的消息。具有这些限制的 Azure 建议的 PaaS 事件溯源架构是什么?如果是事件中心 + 快照,如果我们需要以某种方式重建该状态会发生什么?另外,事件中心是对 KSQL/Spark Azure 流分析的回答吗?
我对是否也在生产中记录 SQL 查询感到进退两难。
我不知道在 PHP 中写入文件有多慢。可能一些基准测试可以给出一些答案,但我想看看你们之前的想法。
什么会使或不会使过程变慢?或者它可以依赖什么?
如何查看SQL Server事务日志文件(.trn)?
我希望能够在单个事务中查看trn文件.一些记录从数据库中删除,我需要知道何时,如何以及由谁.
谢谢Neal
编辑:我删除之前和之后的.bak文件,以及期间的.trn文件.
编辑(2010-11-16):详细讨论:http://www.sqlservercentral.com/Forums/Topic1019240-357-1.aspx
我的事务日志文件可以追溯到6个月.我需要从数据库中回滚2013年5月20日之后发生的所有事情.任何人都可以请教我如何做到这一点?
我只想问一下SQL Server中的事务日志.我们可以.bak在任何系统位置以格式备份这些日志文件.
问题是从事务日志备份文件中提取SQL语句/查询.我们可以使用fn_dump_dblog函数来完成它.但我们想要的是提取必须在日志中完成事务的查询或数据.
我想手动执行,就像sql server的"apex"工具一样.并且不想使用任何第三方工具.
现在我能提取table name和operation type原木.但仍在搜索SQL语句提取.
我支持一个古老的网络应用程序(即将退役),它仍然使用“aspnetdb”作为其身份验证系统。当我发现我的测试服务器抱怨以下错误时,我正在为它在我的测试环境中的退役做一些准备工作:
由于“NOTHING”,数据库“aspnetdb”的事务日志已满。
现在,通常我会假设问题来自数据库事务日志......但该数据库最近切换到简单恢复模式(这是测试机)。
我尝试了一些实验,但没有成功,并进行了一些谷歌搜索。有人以前见过这个错误吗?简单恢复模式下数据库的完整事务日志?
它在 SQL Server 2016 上,以 2008 兼容模式运行,因为 aspnetdb 太旧了。
transaction-log ×10
sql-server ×4
sql ×2
analysis ×1
aspnetdb ×1
bulk ×1
drives ×1
mysql ×1
performance ×1
php ×1
rollback ×1
size ×1
sql-delete ×1
t-sql ×1
tempdb ×1