You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/ROOT/pages/database-administration/standard-databases/errors.adoc
+19-18Lines changed: 19 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,6 @@
1
1
:description: This section describes how to manage errors that you may encounter while managing databases.
2
2
:page-aliases: manage-databases/errors.adoc
3
+
:page-role: enterprise-edition
3
4
[[manage-database-errors]]
4
5
= Error handling
5
6
@@ -11,8 +12,9 @@ When running the database management queries, such as `CREATE DATABASE`, it is p
11
12
Because database management operations are performed asynchronously, these errors may not be returned immediately upon query execution.
12
13
Instead, you must monitor the output from the `SHOW DATABASE` command; particularly the `statusMessage` and `currentStatus` columns.
13
14
14
-
.Fail to create a database
15
-
====
15
+
=== Fail to create a database
16
+
17
+
16
18
[source, cypher]
17
19
----
18
20
neo4j@system> CREATE DATABASE foo;
@@ -51,7 +53,6 @@ In a cluster:
51
53
52
54
3 row available after 100 ms, consumed after another 6 ms
53
55
----
54
-
====
55
56
56
57
57
58
[[database-management-states]]
@@ -91,8 +92,8 @@ However, these retries are not guaranteed to succeed, and errors may persist thr
91
92
If a database is in the `quarantined` state, retrying the last operation will not work.
92
93
====
93
94
94
-
.Retry to start a database
95
-
====
95
+
=== Retry to start a database
96
+
96
97
[source, cypher]
97
98
----
98
99
neo4j@system> START DATABASE foo;
@@ -146,7 +147,7 @@ neo4j@system> SHOW DATABASE foo;
146
147
147
148
1 rows available after 4 ms, consumed after another 1 ms
148
149
----
149
-
====
150
+
150
151
151
152
If repeated retries of a command have no effect, or if a database is in a `dirty` state, you may drop and recreate the database, as detailed in xref:database-administration/standard-databases/create-databases.adoc[Create database].
152
153
@@ -162,11 +163,11 @@ It produces a database dump that can be further examined and potentially repaire
162
163
163
164
When a database encounters a severe error during its normal run, which prevents it from a further operation, Neo4j stops that database and brings it into a `quarantined` state.
164
165
Meaning, it is not possible to restart it with a simple `START DATABASE` command.
165
-
You have to run `CALL dbms.unquarantineDatabase(server, database, operation)` to lift the quarantine, specifying as `server` the instance with the failing database.
166
+
You have to run `CALL dbms.unquarantineDatabase(server, database, operation)` to lift the quarantine, specifying the `server` with the failing database.
166
167
167
168
The `dbms.unquarantineDatabase()` procedure is introduced in Neo4j 2025.01 to replace the now-deprecated xref:procedures.adoc#procedure_dbms_quarantineDatabase[`dbms.quarantineDatabase`()].
168
169
169
-
After lifting the quarantine, the instance will automatically try to bring the database to the desired state.
170
+
After lifting the quarantine, Neo4j automatically tries to bring the database to the desired state.
170
171
171
172
*Syntax:*
172
173
@@ -188,15 +189,15 @@ The possible values for the optional operation are:
188
189
* `replaceStateKeepStore` -- join as a new member, clearing the current cluster state but keeping the store.
189
190
* `replaceStateReplaceStore` -- join as a new member, clearing both the current cluster state and the store.
190
191
191
-
If you choose to clear the current cluster state, the server will try to join as a new member,
192
-
but this joining can succeed if and only if there is a majority of old members "letting" the new members in.
193
-
Let's assume your cluster has a topology with three primaries.
194
-
If there is only one server in `QUARANTINED` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
195
-
If there are two servers in `QUARANTINED` mode, then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both servers because there would be no majority to let them in.
192
+
If you choose to clear the current cluster state, the defined database allocation will try to join as a new member.
193
+
This joining process can succeed if and only if a majority of the existing members allow the new member to join.
194
+
Assume your database has a topology with three primary allocations.
195
+
If there is only one allocation in `quarantined` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
196
+
If there are two allocations in `quarantined` mode (meaning that the database is `quarantined` on two servers), then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both of them because there would be no majority to let them in.
196
197
197
198
*Return arguments:*
198
199
199
-
The procedure doesn't return any value.
200
+
The procedure does not return any value.
200
201
201
202
202
203
.Check if a database is quarantined
@@ -220,9 +221,9 @@ neo4j@system> SHOW DATABASE foo;
220
221
[NOTE]
221
222
====
222
223
A `quarantined` state is persisted for user databases.
223
-
This means that if a database is quarantined, it will remain so even if that Neo4j instance is restarted.
224
-
You can remove it only by running the xref:procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`] procedure.
224
+
This means that if a database is quarantined, it will remain so even if the Neo4j process is restarted.
225
+
You can remove the `quarantined` state only by running the xref:procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`] procedure.
225
226
226
-
The one exception to this rule is for the built-in `system` database.
227
-
Any quarantine for that database is removed automatically after instance restart.
227
+
The one exception to this rule is for the `system` database.
228
+
Any quarantine for that database is removed automatically after the Neo4j process restart.
Copy file name to clipboardExpand all lines: modules/ROOT/pages/procedures.adoc
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1173,11 +1173,11 @@ The possible values for the optional operation are:
1173
1173
* `replaceStateKeepStore` -- join as a new member, clearing the current cluster state but keeping the store.
1174
1174
* `replaceStateReplaceStore` -- join as a new member, clearing both the current cluster state and the store.
1175
1175
1176
-
If you choose to clear the current cluster state, the server will try to join as a new member,
1177
-
but this joining can succeed if and only if there is a majority of old members "letting" the new members in.
1178
-
Let's assume your cluster has a topology with three primaries.
1179
-
If there is only one server in `QUARANTINED` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
1180
-
If there are two servers in `QUARANTINED` mode, then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both servers because there would be no majority to let them in.
1176
+
If you choose to clear the current cluster state, the defined database allocation will try to join as a new member.
1177
+
This joining process can succeed if and only if a majority of the existing members allow the new member to join.
1178
+
Assume your database has a topology with three primary allocations.
1179
+
If there is only one allocation in `quarantined` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
1180
+
If there are two allocations in `quarantined` mode (meaning that the database is `quarantined` on two servers), then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both of them because there would be no majority to let them in.
0 commit comments