在线备份的 HA Proxy 配置
我们试图实现什么?
应定期安排在线备份在生产集群上运行。您只需在一个实例上运行它,因为每个实例都有自己的数据库完整副本。由于完整备份还会运行一致性检查,并且副本本身会使用一些系统资源,因此建议在从属实例(在 HA 模式下)或跟随者或只读副本(在 CC 模式下)上运行此操作。
对于 增量备份 才能正常工作,您需要每次从同一个实例进行备份,并拥有上次备份的交易日志。如果您没有从同一个实例运行,存储将不匹配,并且将回退到进行完整备份。如果您想控制从哪个实例进行备份,您需要修改此示例,或者直接在不使用代理的情况下将备份直接到该实例。如果您愿意回退到完整备份,这种方法可能对您有效。
因果集群:将在线备份定向到跟随者或只读副本
下面的示例配置定义了一个前端,备份实用程序将连接到正在运行的数据库,以及一组实例来检查它们当前是否为从属实例。我们假设在 conf/neo4j.conf
文件中启用了在线备份,如下所示
online_backup_enabled=true
online_backup_server=0.0.0.0:6362
用于从跟随者进行因果集群备份的 haproxy.cfg 文件如下所示
defaults
mode http
timeout connect 5000ms
timeout client 30000ms
timeout server 30000ms
# Available at http://localhost:8080/haproxy?stats
listen admin
balance
mode http
bind *:8080
stats enable
frontend neo4j-backup
mode tcp
bind *:6362
default_backend cores-backup
backend cores-backup
balance roundrobin
option httpchk GET /db/server/core/read-only HTTP/1.0
mode tcp
server neo4j-1 neo4j-1:6362
server neo4j-2 neo4j-2:6362
server neo4j-3 neo4j-3:6362
要从只读副本进行备份,请将 option httpchk
行替换为
option httpchk GET /db/manage/server/read-replica/available HTTP/1.0
HA:将在线备份定向到从属实例
用于 HA 模式的 haproxy.cfg 文件如下所示
defaults
mode http
timeout connect 5000ms
timeout client 30000ms
timeout server 30000ms
# Available at http://localhost:8080/haproxy?stats
listen admin
balance
mode http
bind *:8080
stats enable
frontend neo4j-backup
mode tcp
bind *:6362
default_backend slaves-backup
backend slaves-backup
balance roundrobin
option httpchk GET /db/manage/server/ha/slave HTTP/1.0
mode tcp
server neo4j-1 neo4j-1:6362
server neo4j-2 neo4j-2:6362
server neo4j-3 neo4j-3:6362
假设 haproxy DNS 名称类似于 neo4j-backup-slaves
,备份命令将类似于以下内容
$ ./bin/neo4j-admin backup --name=backup.db --backup-dir /tmp/backups --from=neo4j-backup-slaves:6362
或者现在已弃用的 neo4j-backup
工具
$ ./bin/neo4j-backup -to /tmp/backups -host neo4j-backup-slaves -port 6362
此页面有帮助吗?