Have you checked to make sure there isn't an open transaction that's still running on the production server? SELECT es.session_id ,er.blocking_session_id ,er.start_time ,es.status ,es.login_name ,DB_NAME(er.database_id) as database_name ,es.host_name ,es.program_name ,er.command ,es.reads ,es.writes ,es.cpu_time ,er.wait_type ,er.wait_time ,er.last_wait_type ,er.wait_resource ,CASE es.transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncommitted' WHEN 2 THEN 'ReadCommitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS transaction_isolation_level ,OBJECT_NAME(st.objectid, er.database_id) as object_name ,SUBSTRING(st.text, er.statement_start_offset / 2, (CASE WHEN er.statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), st.text)) * 2 ELSE er.statement_end_offset END - er.statement_start_offset) / 2) AS query_text ,ph.query_plan FROM sys.dm_exec_connections ec LEFT OUTER JOIN sys.dm_exec_sessions es ON ec.session_id = es.session_id LEFT OUTER JOIN sys.dm_exec_requests er ON ec.connection_id = er.connection_id OUTER APPLY sys.dm_exec_sql_text(sql_handle) st OUTER APPLY sys.dm_exec_query_plan(plan_handle) ph WHERE ec.session_id <> @@SPID AND er.status = 'running' ORDER BY er.total_elapsed_time desc As long as a transaction is open and modifying data, the LDF will continue to grow, even if you perform a transaction log backup. Several options : A. Rollback the transaction (cancel the query, from the client running it) or A. Kill the session with (KILL {SPID}) 1. Then perform a transaction log backup 2. Shrink the log file with [DBCC SHRINKFILE][1] [1]: http://msdn.microsoft.com/en-us//library/ms189493.aspx Note : The Query listed above is a replacement for sp_who2 from Brent Ozar.