Skip to content
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 45 additions & 1 deletion modules/ROOT/pages/procedures.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1056,7 +1056,7 @@ For more information, see the link:{neo4j-docs-base-uri}/cypher-manual/{page-ver
| *Mode* 3+| WRITE
|===

[role=label--enterprise-edition label--admin-only]
[role=label--enterprise-edition label--admin-only label--deprecated-2025.01]
[[procedure_dbms_quarantineDatabase]]
=== dbms.quarantineDatabase()

Expand All @@ -1076,6 +1076,43 @@ For more information, see the link:{neo4j-docs-base-uri}/cypher-manual/{page-ver
| *Mode* 3+| DBMS
|===

[NOTE]
====
It is recommended to use <<procedure_dbms_unquarantineDatabase,`dbms.unquarantineDatabase()`>> over `dbms.quarantineDatabase()` due to its improvements and new features (see the `operation` option ).
The deprecated `dbms.quarantineDatabase()` procedure is available in Cypher 5, but not in Cypher 25.
====

[role=label--enterprise-edition label--admin-only label--new-2025.01]
[[procedure_dbms_unquarantineDatabase]]
=== dbms.unquarantineDatabase()


.Details
|===
| *Syntax* 3+m| dbms.unquarantineDatabase(server, databaseName, operation) :: ()
| *Description* 3+a| Lift quarantine from a database on a given server.
.4+| *Input arguments* | *Name* | *Type* | *Description*
| `server` | `STRING` | The identifier of the server where the quarantine for database will be lifted.
| `databaseName` | `STRING` | The name of the database for the quarantine will be lifted.
| `operation` | `STRING` | Optional operation to apply while lifting the quarantine.
| *Mode* 3+| DBMS
|===

[NOTE]
====
The possible values for the optional operation are:

* `keepStateKeepStore` -- do nothing; leave store and cluster state as they are.
* `replaceStateKeepStore` -- join as a new member, clearing the current cluster state but keeping the store.
* `replaceStateReplaceStore` -- join as a new member, clearing both the current cluster state and the store.

If you choose to clear the current cluster state, the server will try to join as a new member,
but this joining can succeed if and only if there is a majority of old members "letting" the new members in.
Let's assume our cluster has a topology with three primaries.
If there is only one server in `QUARANTINED` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
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.
====

[role=label--admin-only label--deprecated-5.9]
[[procedure_dbms_upgrade]]
=== dbms.upgrade()
Expand Down Expand Up @@ -1925,6 +1962,13 @@ Replaced by: xref:procedures.adoc#procedure_dbms_routing_getroutingtable[`dbms.r
Before Neo4j 5.23, the procedure can be run only with the `Admin` privileges. +
Replaced by xref:clustering/server-syntax.adoc#server-management-syntax[`ENABLE SERVER`].

// New in v6
| xref:procedures.adoc#procedure_dbms_quarantineDatabase[`dbms.quarantineDatabase()`]
| label:no[]
| label:yes[]
| label:admin-only[] label:deprecated[Deprecated in 2025.01] +
Replaced by xref:procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`]

| xref:procedures.adoc#procedure_dbms_setDatabaseAllocator[`dbms.setDatabaseAllocator()`]
| label:no[]
| label:yes[]
Expand Down
Loading