Backup and Restore NCache Persisted Data
This feature is only available in the NCache Enterprise.
A Distributed Cache with Persistence enables you to store data to a persistence store. Keeping in view the need for periodical backup of the persistence store due to maintenance or other reasons, NCache allows flexible backup of the persisted data while the cache is running. Hence, you can backup your data in the cache and recover it in case of disasters.
It is important to note that the write operations on the persistence store during backup may result in data corruption. To avoid such corruption, NCache allows you to suspend and resume NCache data persistence. In particular, you can first suspend the data persistence to the persistence store, take the backup of the persistence store, and then resume the data persistence to the persistence store in the end.
You should only use the suspend and resume cmdlets when the volume of traffic is low on your cache. Otherwise, high-volume traffic will cause memory issues which will degrade the overall performance of the cache.
You can easily restore data from the backup by stopping the cache, copying the backup, and then restarting the cache.
Backup NCache Persisted Data
The following example demonstrates how to back up the persistence store of a Distributed Cache with Persistence named demoClusteredCache created with NCache Persistence.
- First, stop data writing to the persistence store of demoClusteredCache using the Suspend NCache Data Persistence tool to avoid possible data corruption as follows.
While your data persistence to the persistence store has been suspended, make sure there is no configuration change (node add/remove or join/leave) that might trigger state transfer on the cache.
- Next, create a backup of the data. For this, you need to copy all the items from the configured store location (UNC path) of your cache. You can find the UNC path of the persistence store configured for your cache under store information in the NCache Management Center. The following command copies the NCache Persistence database named demoClusteredCache_db from the configured store location to a backup folder.
Copy-Item -Path "\\fileserver\stores\demoClusteredCache_db" -Destination "F:\PersistentCacheBackup" -Recurse
- Once the backup is created, resume persisting data to the persistence store of demoClusteredCache using the Resume NCache Data Persistence tool as follows.
Restore NCache Persisted Data
You can easily restore data from the backup to your cache anytime. The following example demonstrates how to restore backup data in the persistence store of demoClusteredCache.
Next, you need to copy all the items from your backup folder to the configured store location (UNC path) of your cache. You can find the UNC path of the persistence store configured for your cache under store information in the NCache Management Center. You can copy the backup from the backup path to the configured store location either manually or using the command line. The following command copies all items from the backup folder to the store location of demoClusteredCache.
Copy-Item -Path "F:\PersistentCacheBackup" -Destination "\\fileserver\stores\demoClusteredCache_db" -Recurse
- Once it is copied, restart the demoClusteredCache cache on all server nodes from the NCache Management Center or use the Start Cache tool.
NCache provides sample scripts on GitHub to back up and restore NCache persisted data.