Sample scripts are provided as-is with no warranty of fitness for a particular purpose. These scripts are solely intended to demonstrate techniques for accomplishing common tasks. Additional script logic and error-handling may need to be added to achieve the desired results in your specific environment.
This sample script was written for use with Robo-FTP client v3.10.
Log Shipping is a technique for keeping a warm backup of your SQL Server database. Robo-FTP is an ideal choice for offsite log shipping because of its ability to execute the SQL commands to create database backup files and then send them to a remote server using a secure, encrypted connection.
To configure a system to send backups for offsite log shipping, first create a Windows user account and grant the user full permissions on the ProgramData folder under the Robo-FTP installation folder. Next, use the SQL Server Management Studio to create a SQL Server Login for the new user with Windows authentication instead of SQL Server authentication. Grant the Login dbowner or dbbackupoperator permissions on the database. Note: To use log shipping, a database's Recovery Model must be set to either Full or Bulk-Logged.
Now use the Windows ODBC Data Source Administrator program to create a system DSN to access your database with Windows authentication. Note: If you are using 64-bit Windows be sure to run the version of
odbcad32.exe under the
sysWOW64 folder. DSNs created by the 64-bit version of the ODBC Data Source Administrator (located in the
system32 folder) will not work with Robo-FTP.
Use the Robo-FTP Configurator to create a new Managed Site record. It should be named "LogShipping" and must contain the server address and all credentials needed to connect to the destination server.
Download this sample script and save it as
send_transaction_log.s (use link above) then modify the dbName and odbcDSN settings in the script to match your database name and the name of your 32-bit DSN.
As the user you created run the script in the main console to verify that it creates a database transaction log backup file and sends it to the remote server. After confirming this behavior, Set the scheduler in the configurator to run as the user you configured for log shipping and schedule the script to run as frequently as you wish using the Robo-FTP Scheduler.
Robo-FTP Server software can be installed on the remote (secondary) database server and used to automatically restore transactions logs in real-time, as they are received.
1 BEGINFUNCTIONS 2 FUNCTION BackupLog 3 DBUSE odbcDSN /odbc 4 IFERROR RETURN 5 SET BackupLog_file = staging + "\" + dbName + "_" + %datetime + "_log.bak" 6 DBQUERY "USE master" 7 IFERROR RETURN 8 SET sSQL = "BACKUP LOG " + dbName + " to disk='" + BackupLog_file 9 SET sSQL = sSQL + "' WITH INIT, SKIP, NAME='Transaction Log Backup'" 10 DBQUERY sSQL 11 IFERROR RETURN 12 DBCLOSE 13 RETURN $ERROR_SUCCESS 14 ENDFUNCTION 15 ENDFUNCTIONS 16 17 SET dbName = "MySQLServerDB" 18 SET odbcDSN = "MySQLServerDB_Offsite" 19 SET ManagedSite = "LogShipping" 20 SET staging = %installdir + "\ProgramData\LogShipping" 21 SET archive = staging + "\archive" 22 23 BackupLog 24 IFERROR RETURN 25 26 WORKINGDIR staging 27 IFERROR RETURN 28 29 FTPLOGON ManagedSite 30 IFERROR RETURN 31 FTPTMPNAME "" ".partial" 32 33 :send_files 34 GETNEXTFILE "*" /oldest 35 IFERROR GOTO send_files_done 36 37 SENDFILE %nextfile 38 IFERROR RETURN 39 40 SET ZName = archive + "\" + %nextfile + ".zip" 41 ZIP ZName %nextfile /create 42 IFERROR RETURN 43 44 DELETE %netfile 45 IFERROR RETURN 46 47 GOTO send_files 48 49 :send_files_done 50 RETURN $ERROR_SUCCESS