How to Use PowerShell Script to Backup Multiple SQL Databases


Table of Contents
  1. About SQL Server PowerShell
  2. Create PowerShell script to backup multiple SQL databases
    1. How to run PowerShell script the next time
    2. How to create PowerShell script to backup all SQL databases
  3. Easier way to backup multiple SQL Server databases
    1. Preparations for SQL Server backup
    2. Steps to backup multiple SQL databases via professional software
  4. To sum up

About SQL Server PowerShell

PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. Talking about SQL Server PowerShell, there are two modules:

PowerShell logo

SqlServer offers a variety of cmdlets to help with different tasks in SQL Server. To backup SQL Server database objects, you can use Backup-SqlDatabase (*learn more about Backup-SqlDatabase). Following are some commonly-used parameters:

With these cmdlets, you can also use PowerShell script to backup multiple sql databases.

Create PowerShell script to backup multiple SQL databases

Please note that previous versions of the SqlServer module were included with SQL Server Management Studio (SSMS), but only with the 16.x versions of SSMS. To use PowerShell with SSMS 17.0 and later, you need to install the SqlServer module from the PowerShell Gallery.

After installing the SqlServer module, you can follow the steps below to write PowerShell script to backup SQL Server databases:

1. Click the Start menu, select Windows PowerShell, and then click Windows PowerShell ISE.

Note: The Windows PowerShell Integrated Scripting Environment (ISE) enables you to run commands and write, test, and debug scripts in a single Windows-based graphic user interface.

2. In Windows PowerShell ISE, click New Script on the toolbar and type the following cmdlets to backup multiple SQL databases as per your need. In my case, I'm going to backup the database "TestDB" and "DemoDB".

Backup Multiple SQL Databases

Tips:
The cmdlets used above will create a complete database backup of the database "TestDB" and "DemoDB", and the backup files will be saved to the default backup location of the server "DESKTOP-J6AHKLA". For me, the backup location is:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup
I only specify the server name here, which means to use the default instance on the server. You can specify a different instance by using -ServerInstance "Computer\Instance".
"-Initialize" means to overwrite any existing backup sets on the media and make this backup the first backup set on the media. If you omit this parameter, the backup file will contain multiple copies of the database after you run the PowerShell script for multiple times, thus the ".bak" file getting really large.

3. Click Run Script on the toolbar to backup SQL Server databases for the first time. You can view the backup progress and result under the Script Pane.

4. On the File menu, click Save As. Select your desired location to save the script file and enter a name for the file. Finally, click Save and exit Windows PowerShell ISE.

How to run PowerShell script the next time

Method 1: Run the ".ps1" file with PowerShell

Method 2: Run script from Windows PowerShell ISE

How to create PowerShell script to backup all SQL databases

The steps are the same as mentioned above. Just use the cmdlet below:

Get-ChildItem "SQLSERVER:\SQL\DESKTOP-J6AHKLA\DEFAULT\Databases" | Backup-SqlDatabase

Tips:
◑ This command backs up all user-created databases on the server instance "DESKTOP-J6AHKLA\DEFAULT" to the default backup location. Each database has a backup file named [database name].bak.
System databases are not backed up. You can specify the Backup-SqlDatabase cmdlet to backup the system database "master", "model", and "msdb" accordingly. Learn more about system database backup and restore.

Easier way to backup multiple SQL Server databases

As you see, you need to write the Backup-SqlDatabase cmdlet repetitively to backup several databases. If there are only a few databases that need to be backed up, PowerShell SQL backup is recommended. What if there are plenty of databases you'd like to backup? Is there a tool that can help you select multiple databases at once?

The powerful SQL backup software - Qiling Backup comes to help. You may take advantage of the following features when performing SQL Server backup:

It is embedded with the SQL Server Backup feature that enables you to backup multiple instances and databases on PCs/Servers.
It offers the Schedule feature to automate database backups. You can do SQL Server auto backup every day, every week, or every month.

It supports backing up databases on all popular SQL Server versions, including SQL Server 2022/2019/2017/2016/2014/2012/2008(R2)/2005.

Download the free trial of Qiling Backup and explore all the wonderful features right now!

Preparations for SQL Server backup

That's it, you can schedule data backup for the added SQL Server now.

Steps to backup multiple SQL databases via professional software

✍More useful features:

To sum up

Now you know how to write PowerShell script to backup multiple SQL databases. However, it is only suitable for backing up a small number of databases. If you have plenty of databases on a SQL Server that need to be backed up, Qiling Backup can do you a favor.

Related Articles


Is this information helpful?     

What can we do to improve this information? (Optional)
Refresh Please enter the verification code!