Difference between revisions of "Hot Backup and Restore"
Barrymavin (Talk | contribs) (→Backup and Restore in the Cloud) |
Barrymavin (Talk | contribs) (→Backup and Restore in the Cloud) |
||
Line 95: | Line 95: | ||
So, all you need to do in your cron job (or windows task scheduler job) is have a small Lianja runtime script or in this example an .rsp file (that can be run using wget) that locks the "LianjaCloudServerRequestLoop" exclusively. | So, all you need to do in your cron job (or windows task scheduler job) is have a small Lianja runtime script or in this example an .rsp file (that can be run using wget) that locks the "LianjaCloudServerRequestLoop" exclusively. | ||
+ | |||
+ | <div style="height:80px;margin-bottom:5px;padding:5px;border:0px solid orange;border-left:5px solid orange;background:#fff8dc;vertical-align:middle;position:relative;"> | ||
+ | [[File:bm-noteicon.png|top|40px|link=]]<div style="position:absolute;top:3px;margin-bottom;bottom:5px;margin-left:50px;"><b> Pro Tip</b> | ||
+ | The locking of resources is cluster aware so if you are sharing storage across many compute instances the resource locking can be used. | ||
+ | </div> | ||
+ | <span style="height:6px;"> </span> | ||
+ | </div> | ||
==Example== | ==Example== |
Revision as of 22:38, 15 December 2017
Contents
Backup and Restore during development
You can perform a Hot Backup and Restore of Apps and Databases while developing in the App Builder.
There is no need to close the App or Database to perform these operations.
The Versions workspace keeps track of all of your modifications to your Apps and scripts and can be used to restore previous versions if you mess something up during development.
Backup App
Select Apps then Backup App... from the App Builder MenuBar:
Click Yes to continue when prompted, or No to cancel.
Progress information messages will be displayed in the top right corner.
Backups are stored in the backups sub-directory of apps in directories named by year -> month -> day -> time -> app name.
Use Restore App to restore an App from a selected backup.
Restore App
Select Apps then Restore App... from the App Builder MenuBar:
A dialog will be displayed allowing you to select the backup for the current App to be restored. The backups are listed by date and time.
Click on the backup to restore, then click OK to continue, or Cancel to cancel.
Click Yes to continue when prompted, or No to cancel.
Progress information messages will be displayed in the top right corner.
Backup Database
Select Database then Backup Database... from the App Builder MenuBar:
Click Yes to continue when prompted, or No to cancel.
Progress information messages will be displayed in the top right corner.
Backups are stored in the backups sub-directory of data in directories named by year -> month -> day -> time -> database name.
Use Restore Database to restore a database from a selected backup.
Restore Database
Select Database then Restore Database... from the App Builder MenuBar:
A dialog will be displayed allowing you to select the backup for the current database to be restored. The backups are listed by date and time.
Click on the backup to restore, then click OK to continue, or Cancel to cancel.
Click Yes to continue when prompted, or No to cancel.
Progress information messages will be displayed in the top right corner.
Backup and Restore in the Cloud
Downtime of SaaS applications in the Cloud is not something your users are going to be happy about. So, with Lianja Cloud Server you can perform a Hot Backup and Restore of your databases while users are running Lianja Apps.
There is no need to shutdown IIS or Apache to perform these operations.
The backup operations can be run at scheduled intervals using cron on linux or task scheduler on Windows.
When the Cloud Server receives a request it uses the lockResource() function internally to get a shared lock on the named resource "LianjaCloudServerRequestLoop".
After it services the request it unlocks the "LianjaCloudServerRequestLoop" resource then continues in the request loop waiting for another request to arrive.
So, all you need to do in your cron job (or windows task scheduler job) is have a small Lianja runtime script or in this example an .rsp file (that can be run using wget) that locks the "LianjaCloudServerRequestLoop" exclusively.
The locking of resources is cluster aware so if you are sharing storage across many compute instances the resource locking can be used.
Example
<%@ Language=VFP %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> </head> <body> <% unlockResource("LianjaCloudServerRequestLoop") lockResource("LianjaCloudServerRequestLoop", "exclusive") // Once the exclusive lock has been granted carry out required operations // ... // Then release the lock to unblock other requests unlockResource("LianjaCloudServerRequestLoop") %> </body> </html> // Custom named resource: lockResource("myresource", "exclusive") // Resources can be unlocked individually by name: unlockResource("myresource") // Or all previously locked resources can be unlocked: unlockresourceall()