How Do I… Restore a SQL Server database to a new server?
Image 1 of 15
By Steven Warren
As a DBA, I have been in many situations where I had to move databases to a new server due to old hardware, failed hardware, failed drives, etc. You have two options you could use to carry out this task:
- SQL Server Management Studio (GUI)
- T-SQL (Command line)
The method I prefer is T-SQL. It is simple and easy and avoids clicking the mouse all over the screen. This How do I… will show you both methods and allow you to choose the one you prefer.
This gallery is also available as a TechRepublic blog entry and as a TechRepublic download.
Search field
Moving a database with Microsoft SQL Server Management Studio
We will begin by opening SQL Server Management Studio from the Start Menu by choosing Start and typing SQL Server in the Instant Search field.
SQL Server Management Studio
The SQL Server Management Studio appears and it will be the main area you use to restore your backups.
Restore Database
Note: I am going to assume that you already know how to backup a SQL Server database and that you have placed the backups on a file server or copied the backups to the new server. We will continue the tutorial from this point.
Now that you have the Management Studio opened, right-click on Databases and choose Restore Database.
To Database
The Restore Database window appears and we will begin by typing the name of the Database we want to restore in the To Database field.
From Device
Choose the From Device radio button to choose where your backup file is located.
Select backups
Your file now appears in the Select backups to restore text box. Place a check in the checkbox to continue.
New path
You are now at the critical point of the restore where you choose Options from Select a Page. This is where you specify a new path for your database files. It is the same as the move option that will be discussed later in this tutorial. Simply type a new path to the database and log file. For example, the current structure is the following:
- C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\Database_Name_Here.mdf
- C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\Database_Name_Here_1.ldf
Move to path
We want to move these database files to a new path. Simply type the new path. For purposes of this tutorial, we will move it to the following:
- D:\ SQL\DATA\Database_Name_Here.mdf
- D:\SQL\Logs\Database_Name_Here_1.ldf
Progress
You are now ready to click OK and let the database be restored.
Evidence
You have now successfully restored and moved the database files — more evidence.
New query
Let’s move on to my preferred method which eliminates all the point and clicking. You can do this same thing using a TSQL Restore with move statement.
Moving a database with T-SQL
Let’s begin by opening up SQL Server Management Studio and clicking the New Query button.
Logical names
Our first step will be to run the following query:
Restore FILELISTONLY FROM DISK=’d:\Business_Data.bak’
This query allows us to find out the logical name of the database and log file which is needed to appropriately restore a database to a new path.
Restore to new path
Once we have these names, we will use the following query to restore a database to a new location.
RESTORE DATABASE Business_Data_TSQLFROM DISK=’d:\Business_Data.bak’WITHMOVE ‘Business_Data’ TO ‘D:\TSQL\Business_Data.mdf’, MOVE ‘Business_Data_log’ TO ‘D:\TSQL\Business_Data_log.ldf’
This query will restore the database to a new path.
Percentage finished
You can see where the logical name and the physical name are necessary for the Restore FileListOnly TSQL statement. You can also add the stats clause if it is a big database to know the percentage finished.
RESTORE DATABASE Business_Data_TSQLFROM DISK=’d:\Business_Data.bak’WITHMOVE ‘Business_Data’ TO ‘D:\TSQL\Business_Data.mdf’, MOVE ‘Business_Data_log’ TO ‘D:\TSQL\Business_Data_log.ldf’, STATS=5
In this tutorial, I restored Full Backups. If you are restoring differential or transactions log backups, do not forget to use the With NORECOVERY clause in your statement.
-
Account Information
Contact steven s. warren
- |
- See all of steven s.'s content