Differences in SQL Backup

<< Click to Display Table of Contents >>

Navigation:  General Functions > Performing Local Backup > How Data is Transferred >

Differences in SQL Backup

The SFT client handles backing up to a local SQL server differently than backing up to a local Access database.  Backing up to a local SQL server is designed to be more robust, and as such there are differences in how the backup is handled.

Incremental versus Full Backup

There are tables that are defined on the MIE as only allowing full backup.  These tables tend to be large and volatile, and pulling a full table is actually faster than incremental.  For all other tables, however, the SFT client decides how it is going to pull the table from the MIE (either full or incremental) using the following logic:

1.  The total row count on the MIE is compared to the total row count on the local table.  If the row counts differ by more than 10%, a full backup is performed on the table.

2.  If any errors occurred on the last backup attempt, a full backup will be performed.

3.  The difference between the rows attempted on the last backup, and the rows actually transferred, can be no greater than 10%.  If greater, a full backup will be performed.  (NOTE:  It is possible to transmit more rows than attempted.  If rows are added to the MIE's table during transmission, that newly added rows will be transmitted as well, which will cause actual rows transmitted to be greater than rows attempted.)

4.  If no rows were transmitted last time, then the MIE checks to see how long it has been since a full backup.  If it has been more than 7 days, a full backup will be performed.

5.  If no rows were transmitted last time and it has not been 7 days since the last full backup, the MIE checks the row count on the MIE's table versus the row count on the local table.  If they do not equal each other, a full backup will be performed.

Otherwise, an incremental backup will be performed.

For backups to a local SQL server, the SFT client inserts a column called _Marked in each table it manages.  The _Marked column is set to 0 for all rows prior to pulling any data from the MIE.  For each record that is pulled from the MIE, the _Marked column is set to -1 to indicate the local record was created/updated by data coming from the MIE.  The column is used by the SFT client to ensure the data maintained in the local table is kept synchronized with the MIE's data.  Note that the _Marked column does not exist on the MIE.