public void backup() { resetDbLock.readLock().lock(); if (logger.isTraceEnabled()) logger.trace("~> RocksDbDataSource.backup(): " + name); Path path = backupPath(); path.toFile().mkdirs(); try (BackupableDBOptions backupOptions = new BackupableDBOptions(path.toString()); BackupEngine backups = BackupEngine.open(Env.getDefault(), backupOptions)) { backups.createNewBackup(db, true); if (logger.isTraceEnabled()) logger.trace("<~ RocksDbDataSource.backup(): " + name + " done"); } catch (RocksDBException e) { logger.error("Failed to backup database '{}'", name, e); hintOnTooManyOpenFiles(e); throw new RuntimeException(e); } finally { resetDbLock.readLock().unlock(); } }
try (BackupableDBOptions backupOptions = new BackupableDBOptions(backupPath().toString()); RestoreOptions restoreOptions = new RestoreOptions(false); BackupEngine backups = BackupEngine.open(Env.getDefault(), backupOptions)) {
/** * Opens a new Backup Engine * * @param env The environment that the backup engine should operate within * @param options Any options for the backup engine * * @return A new BackupEngine instance * @throws RocksDBException thrown if the backup engine could not be opened */ public static BackupEngine open(final Env env, final BackupableDBOptions options) throws RocksDBException { return new BackupEngine(open(env.nativeHandle_, options.nativeHandle_)); }
/** * Backups the DB to a local path. * @param backupPath - The local backup path */ protected void backup(String backupPath) throws RocksDBException { File file = new File(backupPath); if(!file.exists()) file.mkdir(); BackupableDBOptions backupOptions = new BackupableDBOptions(backupPath) .setShareTableFiles(true) .setMaxBackgroundOperations(parallelism); BackupEngine backupEngine = BackupEngine.open(Env.getDefault(), backupOptions); backupEngine.createNewBackup(rocksDB, true); backupEngine.purgeOldBackups(backupsToKeep); backupEngine.close(); backupOptions.close(); }
.setShareTableFiles(true) .setMaxBackgroundOperations(parallelism); BackupEngine backupEngine = BackupEngine.open(Env.getDefault(), backupOptions); List<BackupInfo> backupInfo = backupEngine.getBackupInfo(); if(backupInfo.size() > 0) {