Continuous Backup
By default, the continuous backup is disabled. If enabled the EclipseStore instance will clone all changes to another directory. The backup is identical to the primary EclipseStore storage.
To enable the continuous backup just set the backup directory:
With storage-embedded-configuration
API:
Java
EmbeddedStorageManager storageManager = EmbeddedStorageConfigurationBuilder.New()
.setBackupDirectory("A safe place")
.createEmbeddedStorageFoundation()
.createEmbeddedStorageManager();
XML
<properties>
<property name="backup-directory" value ="/save/backup" />
...
</properties>
INI
backupDirectory = backupDir
With EclipseStore foundation classes:
Java
NioFileSystem fileSystem = NioFileSystem.New();
StorageBackupSetup backupSetup = StorageBackupSetup.New(
Storage.BackupFileProviderBuilder(fileSystem)
.setDirectory(fileSystem.ensureDirectoryPath(BACKUPDIR))
.setTruncationDirectory(fileSystem.ensureDirectoryPath(TRUNCATIONDIR))
.setDeletionDirectory(fileSystem.ensureDirectoryPath(DELETIONDIR))
.createFileProvider()
);
StorageConfiguration configuration = StorageConfiguration.Builder()
.setBackupSetup(backupSetup)
.setStorageFileProvider(StorageLiveFileProvider.New(
fileSystem.ensureDirectoryPath(WORKINGDIR)
))
.createConfiguration()
;
Storage Targets
The continuous backup can be written to all supported storage targets.
foundation classes:
SQLiteDataSource dataSource = new SQLiteDataSource();
dataSource.setUrl("jdbc:sqlite:eclipsestore_bkup_db");
SqlFileSystem fileSystem = SqlFileSystem.New(
SqlConnector.Caching(
SqlProviderSqlite.New(dataSource)
)
);
StorageBackupSetup backupSetup = StorageBackupSetup.New(
Storage.BackupFileProviderBuilder(fileSystem)
.setDirectory(fileSystem.ensureDirectoryPath(BACKUPDIR))
.setTruncationDirectory(fileSystem.ensureDirectoryPath(TRUNCATIONDIR))
.setDeletionDirectory(fileSystem.ensureDirectoryPath(DELETIONDIR))
.createFileProvider()
);
StorageConfiguration configuration = StorageConfiguration.Builder()
.setBackupSetup(backupSetup)
.setStorageFileProvider(StorageLiveFileProvider.New(
fileSystem.ensureDirectoryPath(WORKINGDIR)
))
.createConfiguration()
;
When using external configuration the specific target configuration must be applied to the backup-filesystem
property:
external configuration:
storage-filesystem.aws.s3.credentials.type=static
storage-filesystem.aws.s3.credentials.access-key-id=my-access-key-id
storage-filesystem.aws.s3.credentials.secret-acces-key=my-secret-access-key
storage-filesystem.aws.s3.credentials.region=us-east-1
storage-directory=storageDir
backup-filesystem.sql.sqlite.data-source-provider=com.sample.MyDataSourceProvider
backup-filesystem.sql.sqlite.catalog=mycatalog
backup-filesystem.sql.sqlite.schema=myschema
backup-filesystem.sql.sqlite.url=jdbc:sqlite:eclipsestore_bkup_db_bkup_db
backup-directory=backupDir