Beo*_*e42 5 sql-server backup transaction-log system-tables
每天都会经历当天所有事务日志备份的总和约为 1GB,而在那周结束时,完整数据库备份约为 180MB。对于用于向供应商/客户购买/销售商品的商业数据库,与实际数据库的大小相比,一天的事务日志备份的总大小至少比我预期的大 10 倍。
如何找到哪些 sql 插入/更新/删除/等操作导致如此多/如此大的事务?我设想某个地方有一些错误的代码,它们会重写整个表只是为了更新/插入 1 行,或者一遍又一遍地更新相同的行。在检查所有数据库应用程序代码之前,我想知道什么是错误事务。
大多数问题,包括为什么事务日志不断增长或空间不足?和其他文章涉及的人的事务日志文件不断增长,通常是因为他们从不备份它。我的问题并非如此。我的事务日志文件的大小不再增加,我的问题是如何查找哪些事务导致每个备份的大小定期变大,而不是日志文件的大小。
我们有一个 MS SQL Server 2012 数据库
我意识到下面列出的实际大小在计划中并不大,因为该数据库只有几个月的历史,但如果随着数据库的增长这种趋势继续下去,我预计会在多个方面出现麻烦。以下是过去 2 周的备份文件大小。
14/11/2014 11:05 PM 200,873,984 Production_backup_2014_11_14_230500_8220928.trn 14/11/2014 11:18 PM 173,499,904 Production_backup_2014_11_14_231753_3214232.bak 15/11/2014 06:00 AM 321,033,728 Production_backup_2014_11_15_060001_9915061.trn 15/11/2014 10:00 AM 47,616 Production_backup_2014_11_15_100001_1784634.trn 15/11/2014 02:00 PM 59,392 Production_backup_2014_11_15_140001_0461018.trn 15/11/2014 06:00 PM 62,976 Production_backup_2014_11_15_180001_5854303.trn 15/11/2014 11:05 PM 71,506,432 Production_backup_2014_11_15_230501_3937283.dif 16/11/2014 06:00 AM 12,906,496 Production_backup_2014_11_16_060009_1822596.trn 2014 年 11 月 16 日上午 10:00 11,776 Production_backup_2014_11_16_100001_2205645.trn 16/11/2014 02:00 PM 12,288 Production_backup_2014_11_16_140000_7731183.trn 16/11/2014 06:00 PM 12,288 Production_backup_2014_11_16_180001_4459573.trn 16/11/2014 11:05 PM 73,329,664 Production_backup_2014_11_16_230501_1010172.dif 17/11/2014 06:00 AM 12,288 Production_backup_2014_11_17_060001_2761826.trn 17/11/2014 10:00 AM 41,998,848 Production_backup_2014_11_17_100004_9331208.trn 17/11/2014 02:00 PM 167,330,304 Production_backup_2014_11_17_140004_6334692.trn 17/11/2014 06:00 PM 161,651,712 Production_backup_2014_11_17_180007_0122447.trn 17/11/2014 11:05 PM 92,433,408 Production_backup_2014_11_17_230501_6387196.dif 18/11/2014 06:00 AM 333,844,480 Production_backup_2014_11_18_060001_5745763.trn 2014 年 11 月 18 日上午 10:00 126,087,680 Production_backup_2014_11_18_100005_0370500.trn 18/11/2014 02:00 PM 166,028,288 Production_backup_2014_11_18_140005_3971911.trn 18/11/2014 06:00 PM 179,916,288 Production_backup_2014_11_18_180006_2898091.trn 18/11/2014 11:05 PM 96,823,296 Production_backup_2014_11_18_230501_5082355.dif 19/11/2014 06:00 AM 339,789,312 Production_backup_2014_11_19_060002_0077560.trn 2014 年 11 月 19 日上午 10:00 127,332,352 Production_backup_2014_11_19_100006_4801078.trn 19/11/2014 02:00 PM 174,851,584 Production_backup_2014_11_19_140006_7360844.trn 19/11/2014 06:00 PM 170,896,384 Production_backup_2014_11_19_180006_2771851.trn 19/11/2014 11:05 PM 100,923,904 Production_backup_2014_11_19_230501_2174429.dif 20/11/2014 06:00 AM 341,084,160 Production_backup_2014_11_20_060000_7971034.trn 2014年11月20日上午10:00 143,212,544 Production_backup_2014_11_20_100005_7464239.trn 20/11/2014 02:00 PM 168,745,472 Production_backup_2014_11_20_140007_3616365.trn 20/11/2014 06:00 PM 169,514,496 Production_backup_2014_11_20_180006_5721553.trn 2014年11月20日 11:05 PM 104,629,248 Production_backup_2014_11_20_230501_0945522.dif 21/11/2014 06:00 AM 345,049,088 Production_backup_2014_11_21_060003_5997426.trn 21/11/2014 10:00 上午 131,839,488 Production_backup_2014_11_21_100004_0817301.trn 21/11/2014 02:00 PM 179,260,416 Production_backup_2014_11_21_140006_1959629.trn 21/11/2014 06:00 PM 185,633,280 Production_backup_2014_11_21_180006_0060725.trn 21/11/2014 11:05 PM 211,755,520 Production_backup_2014_11_21_230500_9492206.trn 21/11/2014 11:19 PM 184,960,512 Production_backup_2014_11_21_231900_1599462.bak 22/11/2014 06:00 AM 342,386,688 Production_backup_2014_11_22_060003_6139255.trn 2014年11月22日上午10:00 114,176 Production_backup_2014_11_22_100003_8050593.trn 22/11/2014 02:00 PM 131,584 Production_backup_2014_11_22_140001_5545860.trn 22/11/2014 06:00 PM 131,584 Production_backup_2014_11_22_180004_6338691.trn 2014年11月22日 11:05 PM 74,345,984 Production_backup_2014_11_22_230501_0706925.dif 23/11/2014 06:00 AM 13,621,760 Production_backup_2014_11_23_060005_1215593.trn 23/11/2014 10:00 AM 12,288 Production_backup_2014_11_23_100000_8636227.trn 23/11/2014 02:00 PM 148,992 Production_backup_2014_11_23_140001_5174270.trn 23/11/2014 06:00 PM 12,800 Production_backup_2014_11_23_180001_0560033.trn 23/11/2014 11:05 PM 76,475,904 Production_backup_2014_11_23_230500_6863628.dif 24/11/2014 06:00 AM 24,576 Production_backup_2014_11_24_060002_1207776.trn 2014年11月24日上午10:00 99,911,168 Production_backup_2014_11_24_100001_6216355.trn 24/11/2014 02:00 PM 161,881,088 Production_backup_2014_11_24_140006_1306524.trn 24/11/2014 06:00 PM 163,761,664 Production_backup_2014_11_24_180001_1006240.trn 2014年11月24日 11:05 PM 96,010,752 Production_backup_2014_11_24_230500_8739860.dif 25/11/2014 06:00 AM 333,105,664 Production_backup_2014_11_25_060001_1277451.trn 2014年11月25日上午10:00 141,830,656 Production_backup_2014_11_25_100004_1112999.trn 25/11/2014 02:00 PM 164,597,248 Production_backup_2014_11_25_140001_6337935.trn 25/11/2014 06:00 PM 176,773,632 Production_backup_2014_11_25_180004_9749028.trn 25/11/2014 11:05 PM 102,029,312 Production_backup_2014_11_25_230500_9038297.dif 26/11/2014 06:00 AM 334,088,704 Production_backup_2014_11_26_060001_1548298.trn 2014年11月26日上午10:00 127,079,424 Production_backup_2014_11_26_100001_7924674.trn 26/11/2014 02:00 PM 165,528,576 Production_backup_2014_11_26_140005_2202075.trn 26/11/2014 06:00 PM 165,344,256 Production_backup_2014_11_26_180000_9116237.trn 2014年11月26日 11:05 PM 104,935,936 Production_backup_2014_11_26_230500_6289926.dif 27/11/2014 06:00 AM 336,645,120 Production_backup_2014_11_27_060000_8290121.trn 2014年11月27日上午10:00 128,401,920 Production_backup_2014_11_27_100008_6395607.trn 27/11/2014 02:00 PM 163,676,160 Production_backup_2014_11_27_140004_6019843.trn 27/11/2014 06:00 PM 167,849,472 Production_backup_2014_11_27_180005_9136346.trn 27/11/2014 11:05 PM 108,699,136 Production_backup_2014_11_27_230500_8885145.dif 28/11/2014 06:00 AM 338,519,040 Production_backup_2014_11_28_060001_1061047.trn 2014年11月28日上午10:00 129,424,896 Production_backup_2014_11_28_100005_8038388.trn 28/11/2014 02:00 PM 171,059,712 Production_backup_2014_11_28_140014_1188080.trn
数据库应用程序在周日凌晨 3 点到周一上午 8 点左右之间不会运行,因此周末的 .trn 文件大部分都很小,正如我所期望的那样。我认为我已经搞乱了每周数据库收缩和重新索引的顺序,因此周围的备份比应有的要大,但之后的每个 .trn 文件应该非常小。
您是否考虑过创建并运行扩展事件来监视正在运行哪些查询来生成所有这些日志记录?保罗·兰德尔 (Paul Randal) 的以下帖子涉及了两个可能可以作为入门的事件。
http://sqlperformance.com/2013/11/sql-performance/transaction-log-monitoring
我自己没有使用过 transaction_log 事件或数据库日志文件 IO 跟踪模板,但多年来在其他事件上取得了很大的成功。根据 transaction_log 事件或数据库日志文件 IO 模板返回的内容,您可能还需要考虑添加 sqlserver.sp_statement_completed 事件以及 sqlserver.sql_text 和 sqlserver.tsql_stack 操作以及 [Duration]>=(NNNNNNN) 谓词以返回任何正在运行的语句超过 NNNNNNN 微秒。