SQL Server recovery and bulk recovery mode confusions


I have 2 confusions about SQL Server recovery and bulk recovery mode.

  1. whether recovery process itself will generate transaction log (here what I mean the logs are the logs generated by recovery process — if any, and not generated by normal database DML/DDL operations)? Why?

  2. in the bulk recovery mode, whether the understanding of A or B is correct (if neither is corect, please help to correct me, here are my 2 different understandings which causes me confused)

A. the normal DML/DLL bulk operation on product database (not the recovery operation) will generate minimal amount of logs, since logs are minimal, the recovery process which utilizes log, can not recover any point in the middle of bulk operations;
B. the normal DML/DLL bulk operation on product database will still generate normal large amount of logs (the same as non-bulk log recovery mode), but recovery process will treat bulk operation in transaction log as a unit to recover, which generates minimal logs for recovery process itself;


Best Solution

Please read the following two articles:



A Recovery Process does NOT create Logs. Logs are what are required in order to perform a point in time recovery process (along with a full database backup, and possibly differential backups).

A database with 'bulk-logged' recovery will function much like a 'full' one except that only the effect of bulk operations are recorded in the backups, rather than the transactions involved. These bulk operations include BCP, certain Data Transformation Services (DTS) operations, image and text manipulations, and SELECT INTO. By using a 'bulk-logged' recovery model, the bulk operations are unlogged and therefore much quicker. Point-in-time recovery is not possible if one of these bulk operations have taken place because if a log backup covers any bulk operations, the log backup contains both log records and the data pages that were changed by bulk operations, and this applies to all changes up to the point that the log was backed up.