How to Backup Patterson Dental EagleSoft Software
-
Patterson EagleSoft uses an SAP Sybase SQL Anywhere database to store its data. This database is running anytime that EagleSoft is on and it has no VSS Writer so when on Windows any software that is meant to take a system snapshot via the VSS or other snapshot mechanisms (Veeam, Duplicati, Datto, Unitrends, Nakivo, UrBackup... basically anything) cannot safely take a copy of the file or cannot take a copy of it at all (since it is open.) This is a perfect example of how backup software cannot be universally application aware and why IT must always understand how the applications work under the hood to safely take backups.
There is no mechanism for taking an EagleSoft backup while the system is running. None. This is both standard IT knowledge based on the design and documented by Patterson in their backup guide. You must shutdown EagleSoft, take your backup (of at least the database files) and then restart it. No exceptions.
The database uses the PattersonPM.db and PattersonPM.log files. Only these need to be backed up while the application is shut down. These are small and take extremely little time to backup. But it is totally unsafe to back them up any other way, no backup software can work around that safety limitation, it is impossible. Any backup take while the application is on is, at best, only crash consistent (read: unsafe) or often just skipped.
EagleSoft does have an "auto-backup" setting. This is good and should be enabled. This, when set correctly, can take an automatic local copy (not a backup) of these two files at the time that EagleSoft starts up before the files are opened by the application. This is obviously problematic because it can only happen when the application is restarted and takes a little time at a bad moment. This is basically a means of enabling backup software to backup that copy while EagleSoft is then running. This is just another, less reliable, means of doing the above. It still requires a stop / start and a separate backup system to take the backup. Two ways to skin the same cat in nearly identical ways.
-
https://pattersonsupport.custhelp.com/app/answers/detail/a_id/19093/~/making-backups
References in case you want to dig into it.
-
I was wondering if backups is why you posted the other thread.
-
@Dashrender said in How to Backup Patterson Dental EagleSoft Software:
I was wondering if backups is why you posted the other thread.
Yeah, wanted some docs as to "how" it works, so that I could put this here. Plus when I started researching how to back it up, I started by looking up the database type.
-
@scottalanmiller said in How to Backup Patterson Dental EagleSoft Software:
This is a perfect example of how backup software cannot be universally application aware and why IT must always understand how the applications work under the hood to safely take backups.
Yeah, good example!
-
I was going to mention dental applications as an example of certain applications that need to be backed up a certain way from my previous thread, but decided to just not say anything. Lol. Apps like Eaglesoft and Dentrix have their own backup process. Dentrix also has a built-in backup utility to ensure the database is being backed up correctly.
-
@Pete-S said in How to Backup Patterson Dental EagleSoft Software:
@scottalanmiller said in How to Backup Patterson Dental EagleSoft Software:
This is a perfect example of how backup software cannot be universally application aware and why IT must always understand how the applications work under the hood to safely take backups.
Yeah, good example!
Thanks!
-
@Fredtx said in How to Backup Patterson Dental EagleSoft Software:
I was going to mention dental applications as an example of certain applications that need to be backed up a certain way from my previous thread, but decided to just not say anything. Lol. Apps like Eaglesoft and Dentrix have their own backup process. Dentrix also has a built-in backup utility to ensure the database is being backed up correctly.
In reality, that's best. Every application should have that (if it stores data, obviously) and it's what should be used universally. The idea that we can blind backup our systems without knowing what's on them or how the data is used or stored is crazy. There's never been a time that that was safe. Yet, nearly the entire backup industry is sold based on convincing people that they can skip their due diligence if they just buy X or Y product.
-
Can't you use dbbackup to perform an online backup? I believe that is what was used in some software that I previously used.
-
@Danp said in How to Backup Patterson Dental EagleSoft Software:
Can't you use dbbackup to perform an online backup? I believe that is what was used in some software that I previously used.
No. And the issue is universal. In an app like EagleSoft, SQL Anywhere is embedded, there is no RDBMS. So no software of this nature can work around the limitation. It's like JetDB (Access) or SQLite in that way, in this situation.
For any software like that to work you have to have a DBMS that handles access control and locking for that kind of tool to work. If you had Sybase SQL Anywhere the RDBMS then yes, that would work perfectly. Just as the similar tools do for SQL Server or MariaDB.
If you follow that link they have that mentioned in the first paragraph - online backups limited to "running" databases (e.g. not embedded.) There's no running database in this case, only a driver built into EagleSoft.
-
SQL Anywhere Volume Shadow Copy Service (VSS)
SQL Anywhere is compatible with the Microsoft Volume Shadow Copy Service (VSS). You can use VSS to create point-in-time snapshots of entire disk volumes or volume sets and to make copies of files that are open for exclusive use by applications such as the SQL Anywhere database server. VSS is supported on 32-bit Windows XP operating systems and on 32-bit and 64-bit editions of Windows 2003 and later operating systems, including Windows Vista.By default, all SQL Anywhere databases can use the VSS service for backups if the SQL Anywhere VSS writer (dbvss12.exe) is running. You can use VSS without the SQL Anywhere VSS writer to back up databases. However, you might need to use the full SQL Anywhere recovery procedures to restore those databases. To prevent a database server from participating in the VSS service, include -vss- when starting the database server. Alternatively, you can use the Service utility (dbsvc) for Windows to specify when the VSS service is started.
How VSS works with SQL Anywhere:
Your backup application sends a command to VSS to take a snapshot.
VSS issues an identify command to the SQL Anywhere VSS writer (dbvss12.exe).
VSS issues a prepare to snapshot command to suspend all transactions and write all modified pages to disk on all databases on all database servers. If transactions are not suspended on a database within 10 seconds, the snapshot might contain uncommitted transactions and full recovery may be necessary.
VSS issues a freeze command to checkpoint and then suspend all activity on all databases on all database servers. Each SQL Anywhere database server waits a maximum of 60 seconds for all databases to suspend all activity. Typically, this process takes a few seconds.
VSS issues a thaw command to the SQL Anywhere VSS writer to resume all transactions on all databases on all database servers.
In rare circumstances, SQL Anywhere might be unable to suspend transactions or complete a checkpoint within the maximum time allowed by VSS. If this occurs, you must use the transaction log file and the full recovery process to recover the backed up database.
We use StorageCraft ShadowProtect with ImageManager to take hourly incrementals of our clients server volumes. Never had any issues.
-
@Matthew-Grieve said in How to Backup Patterson Dental EagleSoft Software:
SQL Anywhere Volume Shadow Copy Service (VSS)
SQL Anywhere is compatible with the Microsoft Volume Shadow Copy Service (VSS). You can use VSS to create point-in-time snapshots of entire disk volumes or volume sets and to make copies of files that are open for exclusive use by applications such as the SQL Anywhere database server. VSS is supported on 32-bit Windows XP operating systems and on 32-bit and 64-bit editions of Windows 2003 and later operating systems, including Windows Vista.By default, all SQL Anywhere databases can use the VSS service for backups if the SQL Anywhere VSS writer (dbvss12.exe) is running. You can use VSS without the SQL Anywhere VSS writer to back up databases. However, you might need to use the full SQL Anywhere recovery procedures to restore those databases. To prevent a database server from participating in the VSS service, include -vss- when starting the database server. Alternatively, you can use the Service utility (dbsvc) for Windows to specify when the VSS service is started.
How VSS works with SQL Anywhere:
Your backup application sends a command to VSS to take a snapshot.
VSS issues an identify command to the SQL Anywhere VSS writer (dbvss12.exe).
VSS issues a prepare to snapshot command to suspend all transactions and write all modified pages to disk on all databases on all database servers. If transactions are not suspended on a database within 10 seconds, the snapshot might contain uncommitted transactions and full recovery may be necessary.
VSS issues a freeze command to checkpoint and then suspend all activity on all databases on all database servers. Each SQL Anywhere database server waits a maximum of 60 seconds for all databases to suspend all activity. Typically, this process takes a few seconds.
VSS issues a thaw command to the SQL Anywhere VSS writer to resume all transactions on all databases on all database servers.
In rare circumstances, SQL Anywhere might be unable to suspend transactions or complete a checkpoint within the maximum time allowed by VSS. If this occurs, you must use the transaction log file and the full recovery process to recover the backed up database.
We use StorageCraft ShadowProtect with ImageManager to take hourly incrementals of our clients server volumes. Never had any issues.
That's true when you have SQL Anywhere running as a service. But when embedded, there is nowhere for the VSS to link against. Are you sure that this process will work with EagleSoft and their implementation of SQL Anywhere? I know that a full blown SQL Anywhere can do it. But that's not the issue here.