Search in sources :

Example 46 with Config

use of org.neo4j.kernel.configuration.Config in project neo4j by neo4j.

the class BackupServiceIT method shouldPrintThatIncrementalBackupIsPerformedAndFallingBackToFull.

@Test
public void shouldPrintThatIncrementalBackupIsPerformedAndFallingBackToFull() throws Exception {
    defaultBackupPortHostParams();
    Config defaultConfig = dbRule.getConfigCopy();
    dbRule.setConfig(GraphDatabaseSettings.keep_logical_logs, "false");
    // have logs rotated on every transaction
    GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI();
    createAndIndexNode(db, 1);
    // A full backup
    backupService().doFullBackup(BACKUP_HOST, backupPort, backupDir, ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // And the log the backup uses is rotated out
    createAndIndexNode(db, 2);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 3);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 4);
    rotateAndCheckPoint(db);
    final Log log = mock(Log.class);
    LogProvider logProvider = new LogProvider() {

        @Override
        public Log getLog(Class loggingClass) {
            return log;
        }

        @Override
        public Log getLog(String name) {
            return log;
        }
    };
    backupService(logProvider).doIncrementalBackupOrFallbackToFull(BACKUP_HOST, backupPort, backupDir, ConsistencyCheck.NONE, dbRule.getConfigCopy(), BackupClient.BIG_READ_TIMEOUT, false);
    verify(log).info("Previous backup found, trying incremental backup.");
    verify(log).info("Existing backup is too far out of date, a new full backup will be performed.");
}
Also used : NullLogProvider(org.neo4j.logging.NullLogProvider) FormattedLogProvider(org.neo4j.logging.FormattedLogProvider) LogProvider(org.neo4j.logging.LogProvider) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Log(org.neo4j.logging.Log) Config(org.neo4j.kernel.configuration.Config) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Example 47 with Config

use of org.neo4j.kernel.configuration.Config in project neo4j by neo4j.

the class BackupServiceIT method shouldFallbackToFullBackupIfIncrementalFailsAndExplicitlyAskedToDoThis.

@Test
public void shouldFallbackToFullBackupIfIncrementalFailsAndExplicitlyAskedToDoThis() throws Exception {
    // Given
    defaultBackupPortHostParams();
    Config defaultConfig = dbRule.getConfigCopy();
    dbRule.setConfig(GraphDatabaseSettings.keep_logical_logs, "false");
    // have logs rotated on every transaction
    GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI();
    BackupService backupService = backupService();
    createAndIndexNode(db, 1);
    // A full backup
    backupService.doFullBackup(BACKUP_HOST, backupPort, backupDir.getAbsoluteFile(), ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // And the log the backup uses is rotated out
    createAndIndexNode(db, 2);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 3);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 4);
    rotateAndCheckPoint(db);
    // when
    backupService.doIncrementalBackupOrFallbackToFull(BACKUP_HOST, backupPort, backupDir.getAbsoluteFile(), ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // Then
    db.shutdown();
    assertEquals(getDbRepresentation(), getBackupDbRepresentation());
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Config(org.neo4j.kernel.configuration.Config) Test(org.junit.Test)

Example 48 with Config

use of org.neo4j.kernel.configuration.Config in project neo4j by neo4j.

the class BackupServiceIT method shouldGiveHelpfulErrorMessageIfLogsPrunedPastThePointOfNoReturn.

@Test
public void shouldGiveHelpfulErrorMessageIfLogsPrunedPastThePointOfNoReturn() throws Exception {
    // Given
    defaultBackupPortHostParams();
    Config defaultConfig = dbRule.getConfigCopy();
    dbRule.setConfig(GraphDatabaseSettings.keep_logical_logs, "false");
    // have logs rotated on every transaction
    GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI();
    BackupService backupService = backupService();
    createAndIndexNode(db, 1);
    rotateAndCheckPoint(db);
    // A full backup
    backupService.doFullBackup(BACKUP_HOST, backupPort, backupDir.getAbsoluteFile(), ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // And the log the backup uses is rotated out
    createAndIndexNode(db, 2);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 3);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 4);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 5);
    rotateAndCheckPoint(db);
    // when
    try {
        backupService.doIncrementalBackup(BACKUP_HOST, backupPort, backupDir.getAbsoluteFile(), BackupClient.BIG_READ_TIMEOUT, defaultConfig);
        fail("Should have thrown exception.");
    }// Then
     catch (IncrementalBackupNotPossibleException e) {
        assertThat(e.getMessage(), equalTo(BackupService.TOO_OLD_BACKUP));
    }
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Config(org.neo4j.kernel.configuration.Config) Test(org.junit.Test)

Example 49 with Config

use of org.neo4j.kernel.configuration.Config in project neo4j by neo4j.

the class RestoreDatabaseCli method execute.

@Override
public void execute(String[] incomingArguments) throws IncorrectUsage, CommandFailed {
    String databaseName;
    String fromPath;
    boolean forceOverwrite;
    try {
        databaseName = arguments.parse("database", incomingArguments);
        fromPath = arguments.parse("from", incomingArguments);
        forceOverwrite = arguments.parseBoolean("force", incomingArguments);
    } catch (IllegalArgumentException e) {
        throw new IncorrectUsage(e.getMessage());
    }
    Config config = loadNeo4jConfig(homeDir, configDir, databaseName);
    try (FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction()) {
        RestoreDatabaseCommand restoreDatabaseCommand = new RestoreDatabaseCommand(fileSystem, new File(fromPath), config, databaseName, forceOverwrite);
        restoreDatabaseCommand.execute();
    } catch (IOException e) {
        throw new CommandFailed("Failed to restore database", e);
    }
}
Also used : DefaultFileSystemAbstraction(org.neo4j.io.fs.DefaultFileSystemAbstraction) FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) DefaultFileSystemAbstraction(org.neo4j.io.fs.DefaultFileSystemAbstraction) IncorrectUsage(org.neo4j.commandline.admin.IncorrectUsage) Config(org.neo4j.kernel.configuration.Config) CommandFailed(org.neo4j.commandline.admin.CommandFailed) IOException(java.io.IOException) File(java.io.File)

Example 50 with Config

use of org.neo4j.kernel.configuration.Config in project neo4j by neo4j.

the class BackupLabelIndexIT method backupTo.

private static void backupTo(LabelIndex index, File toDir) {
    Config config = Config.embeddedDefaults(stringMap(GraphDatabaseSettings.label_index.name(), index.name()));
    new BackupService(DefaultFileSystemAbstraction::new, NullLogProvider.getInstance(), new Monitors()).doIncrementalBackupOrFallbackToFull("localhost", DEFAULT_PORT, toDir, ConsistencyCheck.FULL, config, BackupClient.BIG_READ_TIMEOUT, false);
}
Also used : Config(org.neo4j.kernel.configuration.Config) Monitors(org.neo4j.kernel.monitoring.Monitors)

Aggregations

Config (org.neo4j.kernel.configuration.Config)264 Test (org.junit.Test)184 File (java.io.File)54 PageCache (org.neo4j.io.pagecache.PageCache)35 InstanceId (org.neo4j.cluster.InstanceId)26 MultiPaxosContext (org.neo4j.cluster.protocol.atomicbroadcast.multipaxos.context.MultiPaxosContext)25 FileSystemAbstraction (org.neo4j.io.fs.FileSystemAbstraction)25 LogProvider (org.neo4j.logging.LogProvider)20 Executor (java.util.concurrent.Executor)19 ClusterConfiguration (org.neo4j.cluster.protocol.cluster.ClusterConfiguration)19 Timeouts (org.neo4j.cluster.timeout.Timeouts)19 HashMap (java.util.HashMap)18 URI (java.net.URI)17 ObjectInputStreamFactory (org.neo4j.cluster.protocol.atomicbroadcast.ObjectInputStreamFactory)17 ObjectOutputStreamFactory (org.neo4j.cluster.protocol.atomicbroadcast.ObjectOutputStreamFactory)17 AcceptorInstanceStore (org.neo4j.cluster.protocol.atomicbroadcast.multipaxos.AcceptorInstanceStore)17 IOException (java.io.IOException)16 ListenSocketAddress (org.neo4j.helpers.ListenSocketAddress)15 BoltConnector (org.neo4j.kernel.configuration.BoltConnector)15 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)15