Monday, October 6, 2008

SQL 2008 Backup and Restore

SQL 2008 Backup and Restore Part 1

Introduction

In this article, we’ll examine backing up and restoring SQL Server databases. In addition to covering standard backup options such as Full Backups and Differential Backups, new SQL Server 2008 features such as Backup Compression will be introduced. Backing up from the SQL Server Management Studio as well as from the command line will be demonstrated. We’ll also cover backing up the System databases in addition to user created databases. Scheduled Backups will be reviewed. Security will be examined, including login problems associated with moving a database from a test server to a production machine.

Full Backups

To begin, we’ll start with a discussion of Full Backups. Full Backups are the simplest to understand and provide a complete backup solution. A Full Backup creates a file of the entire database, including Transaction Logs. (In the next section, we’ll discuss Transaction Logs and Recovery Models.) When viewing a database from inside the SQL Server Management Studio Object Explorer, there are several different types of objects, including Tables, Views, Stored Procedures, and Security objects.

All of these are included in a Full SQL Server backup file. To create a backup, right click the database, select Tasks, and then click Backup. This will bring up the” Back Up Database” screen with the General settings page in view. The Source will be filled in with the database you selected. Ensure “Full” is selected for the Backup type.

The other backup options such as Differential and Transaction Log will be covered later. In the Backup Component section, select Database.

The other radio button option of “Files and Filegroups” is used when the database was specifically created to span more than one file on the operating system. This is sometimes done on very large databases to increase performance. Even if this is the case, selecting Database will include any and all Filegroups.

Next, give the backup a Name and Description.

The following section “Backup set will expire” can be used when backing up to tape or creating groups of backups “Media Sets”. In this example, we’ll backup to the hard disk so leave the default of “After 0” days.

The final option on this screen is for the location of the backup. By default, SQL Server will place backups in the MSSQL\Backup folder. By tradition, backups end with the file extension BAK. However, this is not a requirement. Notice that more than one destination file can be specified as shown below.

This can allow SQL backups to be spread out over different hard disks. In the above example, both files would be required to Restore. This technique can also be used to span backups across multiple Tapes when the media is too small to hold the entire database on a single tape.

To examine the remaining choices, select “Options” from the upper right menu.

The first set of options is collectively labeled as “Overwrite Media”.

These are typically used when backing up to Tape. When backing up to the hard drive, if you used a unique name for your backup on the previous screen, then these options can be ignored. If the backup name was not unique, select the “Overwrite All existing backup sets” radio button. This will create a file with only this most recent backup contained inside. To explain this fuller, a backup file can contain more than one actual backup copy. You could keep appending and appending backups to the same file. When you went to restore from this file, you would be prompted to choose which specific backup set inside to restore. There is not a speed improvement, disk savings, or any other performance gain by combining multiple backups into one file.

In the next section, “Reliability”, select “Verify backup when finished” to ensure our backup is valid.




The Transaction Log section will be grayed out because the Full Backup will automatically truncate the log file, more on this later when Logs and Recovery topics are covered.

The final section contains options for Compression (SQL Server 2008 Only). Compression is a new feature in SQL Server 2008. The compression used is a proprietary Microsoft formula that may shrink the physical size of the backup down to 20% of the original. Testing with the Adventure Works light database reduced the backup file size from 5,400 KB down to 1,100 KB. If compression is used, the Restore will automatically recognize this so no additional configuration options are required. One potential downside to compression is that it will place an added CPU burden on the computer processor during the backup.

Click the OK button in the lower right hand corner to start the backup. Once completed, a message saying “Backup Complete” will appear.
Command Line

Backups can also be performed from the command line or in a script. To execute a backup using TSQL, open a new Query Window. (To open a Query Window, from inside the Management Studio, click the New Query button in the upper right corner.) The following statement executes a Full backup to the hard drive:

BACKUP DATABASE AdventureWorksLT2008
TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test.bak'
WITH FORMAT;

The backup statement starts by specifying the database to be backed up. Unfortunately there isn’t a way to say “backup all databases”. They must be individually specified. However, later we’ll review a simple script and a task to include all databases. The next statement specifies that we’ll backup to disk and the destination of the file. If we were backing up to a tape drive, use “To TAPE” instead of “To Disk”. Lastly, “With Format” means create a new file. Without this last statement, if the backup file already existed, our new backup would append to it.
Conclusion

There are many options and different types of backups for SQL Server, but a Full Backup will include all the objects belonging to a database. In the next article, we’ll begin Restoring databases, as well as examining Transaction Logs, Recovery Methods, and the various Backup options of how to manage them.

No comments: