Why does Delphix need read access to the MSDB database for linking SQL Server databases?

By Jaclyn Schoof posted 02-25-2015 04:33:35 PM


Delphix monitors the MSDB system database to detect when new backups of a source database have been taken. When we detect new backups, we use the backup file names from MSDB to find the files in the location provided by the user and restore them as part of validated sync to roll forward the data on Delphix. By querying the MSDB table directly, Delphix is able to do the following:

  • Efficiently locate the next backup file to be restored: Because Delphix knows the file name and other attributes (from MSDB) about the backup we are looking for, it can efficiently search for the file in the backup location provided by the user. Without knowing details about the next backup that we are looking for, we would have to individually check files, restoring the header from each till we find the right file. Knowing attributes (database name, recovery fork GUID, start/end LSNs etc.) for backups from MSDB allows Delphix to validate backup files prior to restoring them. Validation ensures that the backup belongs to the right database, is part of the right recovery path etc.

  • Handle backups split across multiple files: If backups are split across multiple files, querying MSDB allows Delphix to discover the individual files, and use them collectively to restore the backup.

  • Handle backups split across multiple locations: If the backup files are split across multiple locations, customers can either provide a uniform view to the file locations using links, or have Delphix autodiscover backups by using the absolute backup file paths from MSDB. The latter option assumes that the absolute paths are accessible from the staging environments associated with dSources on Delphix.