Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Sql server recovery models and backup types « sql server blog forum
1. 27/08/2012 SQL server Recovery Models and Backup types « Sql server Blog Forum
Sql server Blog Forum
Backup/Restore
SQL server Recovery Models and Backup types
SQL server Recovery Models and Backup types
by Muthukkumaran kaliyamoorthy Published on: June 7, 2011
C omments: 21 C omments
Tags: Recovery models importance, SQL RPO RTO, SQL server Backup types, SQL server Recovery Models
C ategories:Backup/Restore, Basics for freshers, Internals
In this post I am going to explain the importance of recovery models and backup types.
Why I am writing this post ?
Because, when I was teaching about the topic to my PHP friend .He got doubts on bulk logged recovery model and
differential backups. I have given some examples and cleared his doubts. I am going to share this with you guys
too.
I hope this will help for Freshers and DBA managers.
Recovery models and backup types are important to plan the recovery point objective (RPO) and recovery time
objective (RTO). We can’t differentiate the recovery models and backup types. Simply it’s a mixture.
Let’s see the discussion.
Manager:
We need minimum data loss and downtime.
DBA:
The existing system has low disk space and the transaction log backups are failing often. We need more disk
space to do this, Sir!
Manager:
I asked about this to management they will give soon, until you will do something with your DBA knowledge.
DBA:
C hanging the recovery models full to simple and back to full and shrinking the log file daily. The DBA send an
email to his manager. The shrinking is not best practices, Sir!
Manager:
???
Let’s come to the point.
Recovery Models
SQL server has three types of recovery models.
1. Full
2. Bulk Logged
3. Simple
Full
In full recovery model all the database operations are fully logged. This means all the modifications have
written fully to the log file.
The full recovery model is always the best one for production servers.
In the full recovery model we can take all kinds of backups like full, differential, transaction Log and point
in time recovery (PTR) too.
Bulk Logged
The name itself you can understand the answer. Bulk operations minimally logged in this mode. This means
it has written only minimal roll backing information to the log file not whole (i.e. not fully logged). The BCM
page contains all the required information. See an example you can understand.
Bulk logged recovery model is the best model for server performance. Because all the bulk changes have
www.sqlserverblogforum.com/2011/06/sql-server-recovery-models-and-backup-types/ 1/5
2. 27/08/2012 SQL server Recovery Models and Backup types « Sql server Blog Forum
been written minimally (Not fully) to the transaction log file.
In bulk logged recovery model we can take all kinds of backups like full, differential and transaction Log
but, the drawback is the point in time recovery (PTR)is not possible, when there is a bulk operations have
done with the transaction log file.
Keep in mind, in full and bulk logged recovery model the log files grow bigger until the BAC KUP LOG has done.
For more clarity. See an example:
Just assume 5,000 bulk operations have written in 8000 pages.
In full recovery model each 5,000 bulk operations have written in 8000 pages, because all the changes have
written fully in the full recovery model.
But when we used bulk logged recovery model, it has written 1000 pages only ,Because SQL server has written
the bulk changes to an extent wise not the page wise i.e. minimally logged operation (8 pages = 1 extent). It will
help to improve the overall server performance.
Now you know, Writing 8000 pages are good or 1000 pages.
Note: This bulk logged model is good only for the bulk operations.
Simple
The name itself you can understand the answer. Simple recovery model is just simple this means SQL
server will run the checkpoint every minute and truncate the transaction log file often. Mostly the log file
will not grow larger.
Most of the time the simple recovery model is a good choice for non production servers. Because the log
file will not grow larger. Also we would not take log backups. (If you’re planning to take the log backup
then don’t put in simple)
In the simple recovery model the transaction log backup is not possible. We can take full and differential
backups only.
Now you could know answer for the following questions.
What is the use of Full, Bulk logged and Simple recovery model.
Which one is best?
Backup Types
SQL server has number of backup types. Here I am going to explain the main three types.
1. Full
2. Differential
3. Transaction log
I recommend to read Paul S Randals’s backup survey post.
http://www.sqlskills.com/BLOGS/PAUL/post/Importance-of-having-the-right-backups.aspx
Full backup
A full backup backs up the full/whole database. That backs up all the committed data.
The full database backup has been done in all the recovery models.
Differential backup
A differential backup only backs up the changed data/extents that were modified after the full database
backup has done. The DCM has tracked all the changed extents.
The differential backup has been done in all the recovery models.
For more clarity. See an example:
Assume we are scheduled every Sunday full backup @12 am and daily differential backup 10 PM.
Note: The data change daily 500 MB.
Question:
How much data got back up on Thursday?
The student answers 500 MB.
As I already told, differential database backup “backs up all the data that has changed since the last full database
backup”.
The answer is,
Monday 500MB + Tuesday 500 MB + Wednesday 500MB + Thursday 500MB= 2000MB
www.sqlserverblogforum.com/2011/06/sql-server-recovery-models-and-backup-types/ 2/5
3. 27/08/2012 SQL server Recovery Models and Backup types « Sql server Blog Forum
Edit: I added these lines after I had replied the forum question SSC .
So the differential backup on Thursday has all the data. That is (Monday+Tuesday+Wednesday+Thursday). It
helps to bring the database online as quickly as possible.
Transaction log backup
A transaction log backup backs up the transaction log file. That is all the modifications/changes.
The transaction log backup only possible in full and bulk logged recovery model.
The transaction log backup is important to minimize data loss and log file size too.
It’s very important to keep the transaction log backup as much as safe, because the restoration needs the
sequence of the transaction log backup if, you deleted/missing any one of the backups then you can’t recover the
whole data.
I have suggested running the log backups often. It will reduce the log file size and helps to minimize your data
loss.
Question:
How to restore the database after a disaster? (OR) What is the sequence to restore the database?
Answer:
Restore a full backup and followed by recent differential backup and all the log backup one by one in a sequence.
For more clarity. See an example:
Assume we are scheduled every Sunday full backup @12 am and daily differential backup 10 PM and an hourly log
backup.
The database crashed on Wednesday at 1:30 PM. Then the restoration will be on Sunday full backup+ Wednesday
differential backup (Most recent) + log backup @11+@12+@1.
Believe me guys, Test your backups often and keep at least two copy of the full backups safely, Because the full
backup is important to restore the all other backups. This means without a full backup you can’t restore the
differential and log backups.
Muthukkumaran kaliyamoorthy
I’m currently working as a SQL server DBA in one of the top MNC . I’m passionate
about SQL Server And I’m specialized in Administration and Performance tuning.
I’m an active member of SQL server C entral and MSDN forum. I also write articles
in SQL server C entral. For more Click here
More Posts - Website
Share this
21 C omments - Leave a comment
ram June 7, 2011 at 11:22 am
dude,superb , very useful to understand the basic recovery model and backup types and the way which
you explained s nice
Muthukkumaran June 7, 2011 at 12:01 pm
I wrote this post after we had a class discussion. Thanks to you dude.
Anonymous June 7, 2011 at 3:43 pm
Hi Muthu
1. As you said, In-case of any disaster on Wednesday @ 1:30 pm.
2. We have to perform the "Tail-Log" backup first. Then only we will have last 30 minutes transaction after
the actual transaction-log hourly backup. correct ?
3. Then, we have to proceed with further Restore either (Norecovery or Standby state)
Muthukkumaran June 8, 2011 at 6:01 am
@Anonymous user
Yep, You are right.we can take the tail log backup if, there is no damage in transaction log file.I didn't
focus the restore part fully. It's just an example to understand the restoration sequence to all the
newbies.
www.sqlserverblogforum.com/2011/06/sql-server-recovery-models-and-backup-types/ 3/5
4. 27/08/2012 SQL server Recovery Models and Backup types « Sql server Blog Forum
Thanks to reading my posts.
i don't know most of my comments are from Anonymous user. Nobody is writing his name.
Anonymous June 9, 2011 at 11:40 am
Spot-on post.I agree with the first person comment the way you explained really superb and it's written
using very simple/understandable english.
keep up the good work.
Great examples.
BY
Yardy
Muthukkumaran June 9, 2011 at 5:31 pm
@yardy glad you liked it.thanks
To be frank i don’t know complex words.lol
vinoth June 11, 2011 at 6:21 am
Hi muthu,
Great post.
I liked this.
Monday 500MB + Tuesday 500 MB + Wednesday 500MB + Thursday 500MB= 2000MB
Muthukkumaran June 21, 2011 at 9:13 am
So the differential backup on Thursday has all the data. That is
(Monday+Tuesday+Wednesday+Thursday). It helps to bring the database online as quickly as possible.
I have added these lines after i replied the forum question
http://www.sqlservercentral.com/Forums/Topic1128012-391-2.aspx?Update=1
Anonymous July 9, 2011 at 9:36 am
H Muthu,
I am new to SQL DBA group.
I have doubt here about DR, as you said the DB crashed on Wed at 1:30 PM
Below is the sequential backup i have backup:
Sun – Full backup @ 12:00 AM (Mid-Night)
Mon – Differential Backup @ 10: PM (Night)
Tue – Diff @ 10:PM (Night)
Wed – DB crashed @ 1:30 PM (Afternoon)
Than my question here is how come we follow restore with – Sun full backup + WED Diff because if DB
crashed at 1:30 PM (Noon) on wed thn we don't have WED's diff backup (night)as DB crashed in Noon.
So do we need to add tuesday's Differentail Backup.
Please clarify my doubt.
thanks-
Pooja
Muthukkumaran July 9, 2011 at 10:55 am
Pooja,
Yep you are right. If you have log backup you can restore that too.
If you want more answer I suggest you to ask questions to SQlservercentral and MSDN forum.
this post is quoted by SQL server Disaster Recovery plan « SqlserverBlogForum 9, 2011 at 2:19 pm
October
[...] its simple(less expensive) and good option for disaster recovery but it’s depends upon your backup
strategy and recovery model. The backup restore will work for all the above three DR methods. The
DBA job is keep the data [...]
this post is quoted by Difference between truncating and shrinking the transaction2011 file « pm
October 9, log at 3:34
SqlserverBlogForum
[...] It depends upon the recovery model. [...]
Myrman October 31, 2011 at 1:04 am
Thank you for making your work very easy to comprehend. The topic is somewhat baffling as it is but you
make it look easy. This is just what people need to read.
www.sqlserverblogforum.com/2011/06/sql-server-recovery-models-and-backup-types/ 4/5