I have a working solution! Instead of a new 300+GB backup task, I now have ~5GB each time.
As you're aware, the original Vault backup process involves copying all files into a new directory. The issue is that the directory itself is new every time, and incremental backup solutions need to backup anything new. Thus 100's of Gigabytes each time.
After some internal testing, I've generated a script that creates a dedicated copy for incremental backup solutions. Here's the way it works:
- You run the original Vault backup.
- Perform the standard 'cascading backup'. **
- ROBOCOPY the latest backup's contents (as opposed to the entire directory) into an existing directory. Thus, the outer level directory is never changed, just the files within. And only the files that have changed get rewritten.
- Backup the synchronized directory only.
** I don't have enough storage space for three versions (temp, A, B), so I trimmed it down to 'temp' and 'latest' only)
Here's my two batch files:
FIRST: Run Vault Backup. Cascade. Optionally copy to network folder.
OFF
REM THIS WILL STOP THE WEB SERVER AND "CYCLE" THE SQL SERVER
echo Stopping IIS Web Server...
IISRESET /STOP
echo ..done
echo.
echo Cycling (Restarting) SQL Server (Autodesk Vault)...
NET STOP MSSQL$AUTODESKVAULT
NET START MSSQL$AUTODESKVAULT
echo ..done
echo.
REM START Backup on Temp folder
echo Backing up Autodesk Vault..
"C:\Program Files\Autodesk\ADMS 2017\ADMS 2018\ADMS Console\Connectivity.ADMSConsole.exe" -Obackup -B"S:\Vault Backups\Temp" -VUadministrator -VPmodem -L"S:\Vault Backups\VaultBackupLog.txt" -S
REM IF ERRORLEVEL 0 GOTO Success
REM IF ERRORLEVEL -1 GOTO Fail
:Success
echo ..success
echo.
REM START THE WEB SERVER
echo Restarting IIS Web Server...
IISRESET /START
echo ..done
echo.
REM Delete the prior backup and rename the latest
echo Replacing prior local backup with current backup
echo ..removing old local backup
RMDIR /Q /S "S:\Vault Backups\Latest"
echo ..renaming new local backup
REN "S:\Vault Backups\Temp" "Latest"
REM Replace the directory for the next local backup
MKDIR "S:\Vault Backups\Temp"
echo ..done
echo.
REM SKIP BACKUP to NETWORK. IT TAKES TOO LONG. We're using Synology Active Backup instead to pull from B:\
GOTO: cleanup
REM Copy latest backup to a network location
echo Preparing to copy local backup to network location
echo ..renaming prior network backup
REN "\\someDevice\somePath\Vault Backups\Latest" "Prior"
echo ..copying latest local backup to network
ROBOCOPY "S:\Vault Backups\Latest" "\\someDevice\somePath\Vault Backups\Temp" /MIR /Z /W:10 /R:5 /MT:32 /V /NP /LOG:"S:\Vault Backups\robocopyLog.txt"
echo ..renaming new network copy
REN "\\someDevice\somePath\Vault Backups\Temp" "Latest"
echo .. removing prior network copy
RMDIR /Q /S "\\someDevice\somePath\Vault Backups\Prior"
Goto cleanup
:Fail
echo ..backup failed
REM START THE WEB SERVER
echo Restarting IIS Web Server...
IISRESET /START
echo ..done
echo.
:cleanup
echo Cleaning up Temp files..
REM Purge "S:\Vault Backups\Temp"
RMDIR /Q /S "S:\Vault Backups\Temp"
MKDIR "S:\Vault Backups\Temp"
echo ..done
As you can see... I've disabled the network backup, but my new online backup replaces it.
SECOND: Prepare another copy with only incremental changes
cd /d S:
cd "S:\Vault Backups\Latest\VaultBackup_*"
ROBOCOPY "databases" "B:\SyncedBackup\databases" /MIR
ROBOCOPY "filestores" "B:\SyncedBackup\filestores" /MIR
XCOPY /Y BackupContents.xml "B:\SyncedBackup"
Note, B: is a DEDICATED partition. There's nothing else on that drive except this synced folder. This lets my backup software select only that drive.


You can combine this into a single Batch file, or just modify your task scheduler to have two actions. (That's what I did).