zoukankan      html  css  js  c++  java
  • Neo4j数据进行备份、还原

    一、neo4j备份方式

    neo4j数据库的备份还原分为两种: offline 和 online。

    Offline backup
    - dump
    Dump a database into a single-file archive.
    - load
    Load a database from an archive created with the dump command.

    Online backup
    - backup
    Perform an online backup from a running Neo4j enterprise server.
    - restore
    Restore a backed up database.

    二、offline backup

    在对Neo4j数据进行备份、还原、迁移的操作时,首先要关闭neo4j;
    cd %NEO4J_HOME%/bin
    ./neo4j stop
    数据备份到文件
    ./neo4j-admin  dump --database=graph.db --to=/home/2018.dump
    之后,进行数据还原,将生成的存储文件拷贝到另一个相同版本的环境中,
    (测试中可以进行清空Neo4j库操作:match (n) detach delete n )
    还原、迁移之前 ,关闭neo4j服务。操作同上;
    数据导入:
    ./neo4j-admin load --from=/home/2016-10-02.dump --database=graph.db --force
    重启服务:
    ./neo4j start

    或者

    bin/neo4j console

    • 验证数据
      load执行完后,需要验证下看是否正确。首先确认规模性统计数字一致。比如节点数、关系数等等。然后再用一些测试样例MATCH回来仔细核查确认。最好是能维护一个测试验证集,自动跑一遍。

    如果数据有问题,可以到neo4j.conf文件中,查看dbms.allow_format_migration=true这行是否生效,使之生效。

    三、online backup

    1.1. Backup commands

    A Neo4j database can be backed up in online mode, using the backup command of neo4j-admin.

    Syntax

    neo4j-admin backup --backup-dir=<backup-path> --name=<graph.db-backup>
                        [--from=<address>] [--protocol=<any|catchup|common>]
                        [--fallback-to-full[=<true|false>]]
                        [--pagecache=<pagecache>]
                        [--timeout=<timeout>]
                        [--check-consistency[=<true|false>]]
                        [--additional-config=<config-file-path>]
                        [--cc-graph[=<true|false>]]
                        [--cc-indexes[=<true|false>]]
                        [--cc-label-scan-store[=<true|false>]]
                        [--cc-property-owners[=<true|false>]]
                        [--cc-report-dir=<directory>]

    Options

    OptionDefaultDescription

    --backup-dir

     

    Directory to place backup in.

    --name

     

    Name of backup. If a backup with this name already exists an incremental backup will be attempted.

    --from

    localhost:6362

    Host and port of Neo4j.

    --protocol

    any

    Protocol over which to perform backup. If set to any, then catchup will be tried first. If that fails, then it will attempt to fall back to common. It is recommended to set this option explicitly. Set it to catchup for Causal Cluster backups, and to common for HA or single-instance backups. For more information, see Section 7.3.6, “Backup scenarios and examples”.

    --fallback-to-full

    true

    If an incremental backup fails backup will move the old backup to <name>.err.<N> and fallback to a full backup instead.

    --pagecache

    8M

    The size of the page cache to use for the backup process.

    --timeout

    20m

    Timeout in the form <time>[ms|s|m|h], where the default unit is seconds. This is a debugging option that should only be used if instructed to by Neo4j Professional Services.

    --check-consistency

    true

    If a consistency check should be made.

    --additional-config

     

    Configuration file to supply additional configuration in.

    --cc-graph

    true

    Perform checks between nodes, relationships, properties, types and tokens.

    --cc-indexes

    true

    Perform checks on indexes.

    --cc-label-scan-store

    true

    Perform checks on the label scan store.

    --cc-property-owners

    false

    Perform additional checks on property ownership. This check is very expensive in time and memory.

    --cc-report-dir

    .

    Directory where consistency report will be written.

    1.2. Full backups

    A full backup is performed whenever there is no backup directory specified.

    Example 7.1. Back up a database

    In this example, set environment variables in order to control memory usage.

    The page cache is defined by using the command line option --pagecache. Further, the HEAP_SIZE environment variable will specify the maximum heap size allocated to the backup.

    Now you can perform a full backup:

    $neo4j-home> export HEAP_SIZE=2G
    $neo4j-home> mkdir /mnt/backup
    $neo4j-home> bin/neo4j-admin backup --from=192.168.1.34 --backup-dir=/mnt/backup --name=graph.db-backup --pagecache=4G
    Doing full backup...
    2017-02-01 14:09:09.510+0000 INFO  [o.n.c.s.StoreCopyClient] Copying neostore.nodestore.db.labels
    2017-02-01 14:09:09.537+0000 INFO  [o.n.c.s.StoreCopyClient] Copied neostore.nodestore.db.labels 8.00 kB
    2017-02-01 14:09:09.538+0000 INFO  [o.n.c.s.StoreCopyClient] Copying neostore.nodestore.db
    2017-02-01 14:09:09.540+0000 INFO  [o.n.c.s.StoreCopyClient] Copied neostore.nodestore.db 16.00 kB
    ...
    ...
    ...

    If you do a directory listing of /mnt/backup you will now see that you have a backup of Neo4j called graph-db.backup.

    1.3. Incremental backups

    An incremental backup is performed whenever an existing backup directory is specified, and the transaction logs are present since the last backup. The backup command will then copy any new transactions from Neo4j and apply them to the backup. The result will be an updated backup that is consistent with the current server state.

    The transaction log files should be rotated and pruned based on the provided configuration. For example, setting dbms.tx_log.rotation.retention_policy=3 files will keep backup transaction logs to 3 files. You can use the --additional-config parameter to override this configuration.

    Example 7.2. Perform an incremental backup

    This example assumes that you have performed a full backup as per the previous example. In the same way as before, make sure to control the memory usage.

    To perform an incremental backup you need to specify the location of your previous backup:

    $neo4j-home> export HEAP_SIZE=2G
    $neo4j-home> bin/neo4j-admin backup --from=192.168.1.34 --backup-dir=/mnt/backup --name=graph.db-backup --fallback-to-full=true --check-consistency=true --pagecache=4G
    Destination is not empty, doing incremental backup...
    Backup complete.

    The incremental backup will fail if the existing directory does not contain a valid backup and --fallback-to-full=false. It will also fail if the required transaction logs have been removed and --fallback-to-full=false. Setting --fallback-to-full=true is a safeguard which will result in a full backup in case an incremental backup cannot be performed.

    It is important to note that --check-consistency is true by default. For a quicker incremental backup we can set this to --check-consistency=false and --fallback-to-full=false.

     

    When copying outstanding transactions, the server needs access to the transaction logs.

    These logs are maintained by Neo4j and are automatically removed after a period of time, based on the parameter dbms.tx_log.rotation.retention_policy.

    When designing your backup strategy it is important to configure dbms.tx_log.rotation.retention_policy such that transaction logs are kept between incremental backups.

    1.4. Exit codes

    neo4j-admin backup will exit with different codes depending on success or error. In the case of error, this includes details of what error was encountered.

    Table 7.4. Neo4j Admin backup exit codes
    CodeDescription

    0

    Success.

    1

    Backup failed.

    2

    Backup succeeded but consistency check failed.

    3

    Backup succeeded but consistency check found inconsistencies.

    Restore a backup

    This section describes how to restore from a backup of a Neo4j database.

    This section includes:

    2.1. Restore commands

    A Neo4j database can be restored using the restore command of neo4j-admin.

    Syntax

    neo4j-admin restore --from=<backup-directory> [--database=<name>] [--force[=<true|false>]]

    Options

    OptionDefaultDescription

    --from

     

    Path to backup to restore from.

    --database

    graph.db

    Name of database.

    --force

    false

    If an existing database should be replaced.

    2.2. Restore a single database

    To restore from a backup, follow these steps:

    1. If the database is running, shut it down.
    2. Run neo4j-admin restore.
    3. Start up the database.
    Example 7.3. Restore a single database

    Restore the database graph.db from the backup located in /mnt/backup/graph.db-backup. Note that the database to be restored must be shut down.

    neo4j-home> bin/neo4j stop
    neo4j-home> bin/neo4j-admin restore --from=/mnt/backup/graph.db-backup --database=graph.db --force
    neo4j-home> bin/neo4j start

    2.3. Restore a Causal Cluster

    To restore from a backup in a Causal Cluster, follow these steps:

    1. Shut down all database instances in the cluster.
    2. Run the neo4j-admin unbind command on each of the Core Servers.
    3. Restore the backup on each instance, using neo4j-admin restore.
    4. If you are restoring onto new hardware, please review the Causal Clustering settings in neo4j.conf.

      In particular, check the settings causal_clustering.initial_discovery_members, causal_clustering.minimum_core_cluster_size_at_formation, and causal_clustering.minimum_core_cluster_size_at_runtime, and ensure that they correctly reflect the new setup.

    5. Start the database instances.

    转载自:

    https://blog.csdn.net/c1052981766/article/details/79530061

    https://www.jianshu.com/p/9095e29974a6

    https://neo4j.com/docs/operations-manual/current/backup/performing/

  • 相关阅读:
    array_merge
    漏斗模型
    3 破解密码,xshell连接
    2-安装linux7
    1-Linux运维人员要求
    17-[模块]-time&datetime
    16-[模块]-导入方式
    Nginx服务器
    15-作业:员工信息表查询
    14-本章总结
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11161942.html
Copyright © 2011-2022 走看看