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.