Skip to content

Commit 217b88c

Browse files
Clarify backup/restore strategy regarding system db (#2521) (#2554)
1 parent bad07b4 commit 217b88c

File tree

1 file changed

+46
-34
lines changed

1 file changed

+46
-34
lines changed

modules/ROOT/pages/backup-restore/planning.adoc

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ If you have zero tolerance for downtime and data loss, you might want to conside
3838
** use SSL/TLS for the backup network communication (online only).
3939
** keep your databases as archive files (online or offline).
4040
* How many backups you want to keep.
41-
* Where the backups will be stored —drive or remote server, cloud storage, different data center, different location, etc.
41+
* Where the backups will be stored — drive or remote server, cloud storage, different data center, different location, etc.
4242
+
4343
[TIP]
4444
====
@@ -51,15 +51,14 @@ This ensures that if for some reason your Neo4j DBMS crashes, you will be able t
5151
== Backup and restore options
5252

5353
Neo4j supports backing up and restoring both online and offline databases.
54-
It uses xref:neo4j-admin-neo4j-cli.adoc[Neo4j Admin tool] commands, which can be run from a live, as well as from an offline Neo4j DBMS.
54+
It uses xref:neo4j-admin-neo4j-cli.adoc[Neo4j Admin tool] commands that can be executed on a Neo4j DBMS, whether it is running or offline.
5555
All `neo4j-admin` commands must be invoked as the `neo4j` user to ensure the appropriate file permissions.
5656

57-
* `neo4j-admin database backup/restore` (Enterprise only) -– used for performing online backup (xref:backup-restore/modes.adoc#full-backup[full] and xref:backup-restore/modes.adoc#differential-backup[differential]) and restore operations.
58-
The database to be backed up must be in **online** mode.
59-
The command produces an immutable artifact, which has an inspectable API to aid management and operability.
60-
This command is suitable for production environments, where you cannot afford downtime.
61-
+
62-
The command can also be invoked over the network if access is enabled using `server.backup.listen_address`.
57+
* `neo4j-admin database backup/restore` label:enterprise[Enterprise Edition] – used for performing online backup (xref:backup-restore/modes.adoc#full-backup[full] and xref:backup-restore/modes.adoc#differential-backup[differential]) and restore operations.
58+
** The database to be backed up must be in **online** mode.
59+
** The command produces an immutable artifact, which has an inspectable API to aid management and operability.
60+
** This command is suitable for production environments, where you cannot afford downtime.
61+
** The command can also be invoked over the network if access is enabled using `server.backup.listen_address`.
6362
+
6463
[NOTE]
6564
====
@@ -73,9 +72,9 @@ For more information, refer to the xref:backup-restore/online-backup.adoc#backup
7372
When using `neo4j-admin database backup` in a cluster, it is recommended to back up from an external instance as opposed to reuse instances that form part of the cluster.
7473
====
7574
* `neo4j-admin database dump/load` –- used for performing offline dump and load operations.
76-
The database to be dumped must be in **offline** mode.
77-
The dump command can only be invoked from the server command line and is suitable for environments where downtime is not a factor.
78-
The command produces an archive file that follows the format _<databasename><timestamp>.dump_.
75+
** The database to be dumped must be in **offline** mode.
76+
** The dump command can only be invoked from the server command line and is suitable for environments where downtime is not a factor.
77+
** The command produces an archive file that follows the format _<databasename><timestamp>.dump_.
7978
* `neo4j-admin database copy` –- used for copying an offline database or backup.
8079
This command can be used for cleaning up database inconsistencies and reclaiming unused space.
8180

@@ -84,23 +83,9 @@ This command can be used for cleaning up database inconsistencies and reclaiming
8483
File system copy-and-paste of databases is not supported and may result in unwanted behavior, such as corrupt stores.
8584
====
8685

87-
=== Considerations for backing up and restoring databases in a cluster
88-
89-
Backing up a database in a clustered environment is not essentially different from a standalone backup, apart from the fact that you must know which server in a cluster to connect to.
90-
Use `SHOW DATABASE <database>` to learn which servers are hosting the database you want to back up.
91-
See xref:clustering/monitoring/show-databases-monitoring.adoc#show-databases-monitoring-listing-single[Listing a single database] for more information.
92-
93-
However, _restoring_ a database in a cluster is different since it is not known in advance how a database is going to be allocated to the servers in a cluster.
94-
This method relies on the seed already existing on one of the servers.
95-
The recommended way to restore a database in a cluster is to xref::database-administration/standard-databases/seed-from-uri.adoc[seed from URI].
86+
The following table summarizes the commands' capabilities and usage.
9687

97-
[NOTE]
98-
====
99-
The Neo4j Admin commands `backup`, `restore`, `dump`, `load`, `copy`, and `check-consistency` are not supported for use on xref:database-administration/composite-databases/concepts.adoc[Composite databases].
100-
They must be run directly on the databases that are associated with that Composite database.
101-
====
102-
103-
.The following table describes the commands' capabilities and usage.
88+
.`neo4j-admin` commands for backing up and restoring databases
10489
[cols="<,^,^,^",frame="topbot",options="header"]
10590
|===
10691
| Capability/ Usage
@@ -184,18 +169,45 @@ They must be run directly on the databases that are associated with that Composi
184169
| {check-mark}
185170
|===
186171

172+
173+
[NOTE]
174+
====
175+
The Neo4j Admin commands `backup`, `restore`, `dump`, `load`, `copy`, and `check-consistency` are not supported for use on xref:database-administration/composite-databases/concepts.adoc[Composite databases].
176+
They must be run directly on the databases that are associated with that Composite database.
177+
====
178+
179+
180+
== Considerations for backing up and restoring databases in a cluster
181+
182+
Backing up a database in a clustered environment is not essentially different from a standalone backup, apart from the fact that you must know which server in a cluster to connect to.
183+
Use `SHOW DATABASE <database>` to learn which servers are hosting the database you want to back up.
184+
See xref:clustering/monitoring/show-databases-monitoring.adoc#show-databases-monitoring-listing-single[Listing a single database] for more information.
185+
186+
Restoring from the command line involves putting a copy of the database on disk on each server that will need it.
187+
That can be awkward to achieve.
188+
The recommended way to restore a database in a cluster is to xref::database-administration/standard-databases/seed-from-uri.adoc[seed from URI].
189+
190+
[IMPORTANT]
191+
====
192+
By default, a database backup includes only the database contents.
193+
If you choose to include metadata, the backup also stores the role-based access control (RBAC) settings associated with the database.
194+
195+
When restoring, you have the flexibility to define the target topology (how many primaries and secondaries are desired for the database), which may differ from the topology at backup time.
196+
The database will then be allocated across the available servers according to that topology.
197+
====
198+
187199
[[backup-planning-databases]]
188-
== Databases to backup
200+
== Databases to back up
189201

190202
A Neo4j DBMS can host multiple databases.
191-
Both Neo4j Community and Enterprise Editions have a default user database, called `neo4j`, and a `system` database, which contains configurations, e.g., operational states of databases, security configuration, schema definitions, login credentials, and roles.
192-
In the Enterprise Edition, you can also create additional user databases.
203+
Both Neo4j Community and Enterprise Editions have a default user database named `neo4j` and a `system` database.
204+
The `system` database contains configurations, e.g., operational states of databases, security configuration, schema definitions, login credentials, and roles.
205+
206+
In the Enterprise Edition, you can also create multiple user databases.
193207
Each of these databases is backed up independently of one another.
194208

195-
[NOTE]
196-
====
197209
It is very important to store a recent backup of your databases, including the `system` database, in a safe location.
198-
====
210+
199211

200212
[[backup-planning-additional]]
201213
== Additional files to back up
@@ -215,4 +227,4 @@ If you have a cluster, you should back up these files for each cluster member.
215227

216228
For any backup, it is important that you store your data separately from the production system, where there are no common dependencies, and preferably off-site.
217229
If you are running Neo4j in the cloud, you may use a different availability zone or even a separate cloud provider.
218-
Since backups are kept for a long time, the longevity of archival storage should be considered as part of backup planning.
230+
Since backups are kept for a long time, the longevity of archival storage should be considered as part of backup planning.

0 commit comments

Comments
 (0)