Incremental backup contains only datapages that were modified since the last full database backup. This allows to build more compact recovery scenarios. For a huge database, where users usually don't perform huge updates, it may be easier to perform full backup once a week and an incremental backups everyday.. If required the transaction dumps can be done as usually.
Let's examine an example of incremental backup. In the code below: we create the devices and database, change option allowing incremental dumps for the database and perform one full backup, two incremental and finally one log dump:
USE master
GO
DISK INIT NAME ='myDevice_A',
PHYSNAME = '/opt/sap/databases/myDevice_A.dat',
SIZE=10240
GO
DISK INIT NAME ='myDevice_B',
PHYSNAME = '/opt/sap/databases/myDevice_B.dat',
SIZE=2560,
SKIP_ALLOC = true
GO
CREATE DATABASE myDB
ON myDevice_A = '20M'
LOG ON myDevice_B = '5M'
GO
sp_dboption 'myDB','allow incremental dumps', 'true'
GO
USE myDB
GO
CREATE TABLE T1(id INT)
GO
INSERT T1 VALUES (1)
GO
DUMP DATABASE myDB TO '/home/dumps/01_myDB_full.bak'
GO
INSERT T1 VALUES(2)
GO
DUMP DATABASE myDB CUMULATIVE TO '/home/dumps/02_myDB_cumulative.bak'
GO
INSERT T1 VALUES(3)
GO
DUMP DATABASE myDB CUMULATIVE TO '/home/dumps/03_myDB_cumulative.bak'
GO
INSERT T1 VALUES(4)
GO
DUMP TRAN myDB TO '/home/dumps/04_myDB_tran.bak'
GO
USE master
GO
Now we will try different restore scenarios. The first just restores the full backup. No surprise, only one record will be visible in the restored table.
