SQL Server: Have a large Database, use Striped Database Backup & Restore
What is the problem?
The problem is a large size of the Database like, 400+ GB size.
The problem is, backup and restore operations are taking a long time to complete.
This long running operation requires more CPU I/O resources.
What is the solution?
The easiest way to improve backup & restore performance is to allow the backup & restore operation to parallelize, which is known as backup & restore striping.
The striping means, storing single database backup into a different file / disk and can restore from this different file / disk.
Internally, It divides single backup file operation into defined multiple physical files and size of these all backup files is almost same.
By default, there is a single data reader and a data writer thread for normal backup & restore operations.
But when we stripped backup & restore operation, it is using multiple thread to complete these operations.
Mostly striping techniques can use whenever your database size is very large.
For example, if your database size is 400+GB, you can split it into four different files and make each database backup file size around 100GB.
T-SQL Script to Striping a database backup (four files):
BACKUP DATABASE AdventureWorks2012 TO DISK='D:\AdventureWorks2012_1.bak', DISK='D:\AdventureWorks2012_2.bak', DISK='D:\AdventureWorks2012_3.bak', DISK='D:\AdventureWorks2012_4.bak' WITH STATS = 10 GO
T-SQL Script to restore from Striped database backup (four files):
RESTORE DATABASE AdventureWorks2012 FROM DISK='D:\AdventureWorks2012_1.bak', DISK='D:\AdventureWorks2012_2.bak', DISK='D:\AdventureWorks2012_3.bak', DISK='D:\AdventureWorks2012_4.bak' WITH STATS = 10 GO