Derek Slinn

SQL Server, Python, Golang

SQL Server

Backups backups everywhere

SQL Server provides several backup options that you can use to create a backup of your database or transaction logs. Here are some of the common backup options:

  1. Full backup: A full backup creates a complete backup of the database, including all the data and objects within it. This is the most comprehensive type of backup and is typically done on a regular basis.
  2. Differential backup: A differential backup only backs up the changes made to the database since the last full backup. This type of backup is faster than a full backup and requires less storage space.
  3. Transaction log backup: A transaction log backup captures all the changes made to the database since the last transaction log backup. This type of backup is useful for point-in-time recovery.
  4. Copy-only backup: A copy-only backup creates a backup, without affecting the normal backup and restore procedures. This type of backup is useful when you need to create a one-time backup for a specific purpose, such as testing or reporting.
  5. File or filegroup backup: A file or filegroup backup backs up individual files or filegroups within a database. This type of backup is useful when you only need to restore a specific set of data.
  6. Partial backup: A partial backup backs up only the primary filegroup of a database, along with any read-write filegroups. This type of backup is useful when you have a large database and need to perform a backup quickly.
  7. Tail-log backup: A tail-log backup captures any transactions that occur after a full or differential backup but before a database is restored. This type of backup is useful when you need to recover the latest changes to a database.
  8. Snapshot Backup: A snapshot backup is a backup that captures the state of a database at a specific point in time. It is useful when you need to take a backup of a database that is currently in use.

When selecting a backup option, you should consider the size and complexity of your database, as well as your recovery requirements. A combination of different backup options may be necessary to ensure that you can restore your database in the event of a disaster.


Here are some SQL Server code examples of backups:

Full Backup:

To perform a full backup of a database named “MyDatabase”, you can use the following SQL Server code:

BACKUP DATABASE MyDatabase TO DISK = 'C:\Backup\MyDatabase_Full.bak' WITH INIT;

This code will create a new backup file named “MyDatabase_Full.bak” in the “C:\Backup” directory.

Differential Backup:

To perform a differential backup of a database named “MyDatabase”, you can use the following SQL Server code:

BACKUP DATABASE MyDatabase TO DISK = 'C:\Backup\MyDatabase_Diff.bak' WITH DIFFERENTIAL;

This code will create a new backup file named “MyDatabase_Diff.bak” that contains only the changes made to the database since the last full backup.

Transaction Log Backup:

To perform a transaction log backup of a database named “MyDatabase”, you can use the following SQL Server code:

BACKUP LOG MyDatabase TO DISK = 'C:\Backup\MyDatabase_Log.trn';

This code will create a new backup file named “MyDatabase_Log.trn” that contains all the transactions made to the database since the last transaction log backup.

Filegroup Backup:

To perform a filegroup backup of a database named “MyDatabase” for a specific filegroup named “MyFilegroup”, you can use the following SQL Server code:

BACKUP DATABASE MyDatabase FILEGROUP = 'MyFilegroup' TO DISK = 'C:\Backup\MyDatabase_Filegroup.bak';

This code will create a new backup file named “MyDatabase_Filegroup.bak” that contains only the data in the “MyFilegroup” filegroup.

Partial Backup:

To perform a partial backup of a database named “MyDatabase” for a specific set of files, you can use the following SQL Server code:

BACKUP DATABASE MyDatabase FILE = 'C:\Data\MyDatabase1.mdf', FILE = 'C:\Data\MyDatabase2.ndf'
TO
	DISK = 'C:\Backup\MyDatabase_Partial.bak';

This code will create a new backup file named “MyDatabase_Partial.bak” that contains only the data in the specified files.

Copy-Only Backup:

To perform a copy-only backup of a database named “MyDatabase”, you can use the following SQL Server code:

BACKUP DATABASE MyDatabase TO DISK = 'C:\Backup\MyDatabase_CopyOnly.bak' WITH COPY_ONLY;

This code will create a new backup file named “MyDatabase_CopyOnly.bak” that does not affect the normal backup sequence.

Snapshot Backup:

To perform a snapshot backup of a database named “MyDatabase”, you can use the following SQL Server code:

BACKUP DATABASE MyDatabase TO DISK = 'C:\Backup\MyDatabase_Snapshot.bak' WITH SNAPSHOT;

This code will create a new backup file named “MyDatabase_Snapshot.bak” that captures the state of the database at a specific point in time.