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/clustering/multi-region-deployment/geo-redundant-deployment.adoc
+21-19Lines changed: 21 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,21 +26,21 @@ If primaries are far apart, network latency adds to commit time.
26
26
27
27
image::secondaries-for-read-resilience.svg[width="400", title="Cluster design with database secondaries for better read performance", role=popup]
28
28
29
-
You can locate all the database primaries in one data center (DC) and database secondaries in another DC for better read performance.
30
-
This provides fast writes, because they will be performed within the DC.
29
+
For better read performance, you can locate all database primaries in one data center (DC) and database secondaries in another DC.
30
+
This also provides fast writes, because they will be performed within the DC.
31
31
32
32
However, if the DC with primaries goes down, your cluster loses write availability.
33
33
Though read availability may remain via the secondaries.
34
34
35
-
==== How to recover from loss of a data center?
35
+
==== Recovering from the loss of a data center
36
36
37
37
You can restore the cluster write availability without the failed DC:
38
38
39
-
* If you have enough secondary members of the database in another data center, you can switch their mode to primary and not have to store copy or wait a long time for primary copies to restore.
40
-
* Use secondaries to re-seed databases if needed.
41
-
Run xref:database-administration/standard-databases/recreate-database.adoc[the `dbms.recreateDatabase()` procedure].
39
+
* If you have enough secondary members of the database in another data center, you can switch their mode to primary and not have to store a copy or wait a long time for primary copies to restore.
40
+
* You can use secondaries to re-seed databases if needed.
41
+
See xref:database-administration/standard-databases/recreate-database.adoc[the `dbms.recreateDatabase()` procedure] for more details.
42
42
43
-
Example steps::
43
+
Example recovery steps::
44
44
45
45
. Promote secondary copies of the `system` database to primaries to make the `system` database write-available.
46
46
This requires restarting processes.
@@ -50,36 +50,37 @@ For other scenarios, see xref:clustering/multi-region-deployment/disaster-recove
50
50
For each `Unavailable` server, run `CALL dbms.cluster.cordonServer("unavailable-server-id")` on the remaining cluster.
51
51
52
52
. Recreate each user database, letting it choose the existing xref:database-administration/standard-databases/recreate-database.adoc#seed-servers[servers as seeders].
53
-
You will need to accept a smaller topology that will fit in the remaining data center/cloud region.
53
+
You need to accept a smaller topology that will fit in the remaining DC.
54
54
55
55
For detailed scenarios, see the xref:clustering/multi-region-deployment/disaster-recovery.adoc[Disaster recovery guide].
56
56
57
57
58
58
[[geo-distributed-dc]]
59
59
=== Geo-distribution of user database primaries
60
60
61
-
image::geo-distributed-primaries.svg[width="400", title="Cluster design with primaries distributed across three data centers", role=popup]
61
+
image::geo-distributed-primaries.svg[width="400", title="Cluster design with database primaries distributed across three data centers", role=popup]
62
62
63
-
You can place each primary copy in a different data center using a minimum of three data centers.
63
+
You can place each primary copy in a different data center (DC) using a minimum of three data centers.
64
64
65
-
Therefore, if one data center fails, only one primary member is lost and the cluster can continue without data loss.
65
+
Therefore, if one DC fails, only one primary member is lost and the cluster can continue without data loss.
66
66
67
67
However, you always pay cross-data center latency times for every write operation.
68
68
69
-
==== How to recover from loss of a data center?
69
+
==== Recovering from the loss of a data center
70
70
71
71
This setup has no loss of quorum, so the cluster keeps running -- only with reduced fault tolerance (with no room for extra failures).
72
72
73
73
To restore fault tolerance, you can either wait until the affected DC is back online or start a new primary member somewhere else that will provide resilience and re-establish three-DC fault tolerance.
74
74
75
-
Example steps::
75
+
Example recovery steps::
76
76
77
77
. Start and enable a new server.
78
78
See xref:clustering/servers.adoc#cluster-add-server[How to add a server to the cluster] for details.
79
79
80
80
. Remove the unavailable server from the cluster:
81
81
.. First, xref:clustering/servers.adoc#_deallocating_databases_from_a_server[deallocate databases] from it.
82
-
.. Then xref:clustering/servers.adoc#_dropping_a_server[drop the server].
82
+
.. Then xref:clustering/servers.adoc#_dropping_a_server[drop the server].
83
+
+
83
84
For more information, visit the xref:clustering/servers.adoc[].
84
85
85
86
For detailed scenarios, see the xref:clustering/multi-region-deployment/disaster-recovery.adoc[Disaster recovery guide].
@@ -90,7 +91,7 @@ For detailed scenarios, see the xref:clustering/multi-region-deployment/disaster
90
91
91
92
image::geo-distribution-system-db.svg[width="400", title="Primaries for the `system` database distributed across three data centers", role=popup]
92
93
93
-
You can place all primaries for user databases in one data center, with secondaries in another.
94
+
You can place all primaries for user databases in one data center (DC), with secondaries in another.
94
95
95
96
In a third DC, deploy a server that only hosts a primary member of the `system` database (in addition to those in the first two data centers).
96
97
@@ -105,14 +106,14 @@ If a DC goes down, you retain write availability for the `system` database, whic
105
106
However, if the DC with primaries goes down, you lose write availability for the user databases.
106
107
Though read availability may remain via the secondaries.
107
108
108
-
==== How to recover from loss of a data center?
109
+
==== Recovering from the loss of a data center
109
110
110
111
If you lose the DC with primaries in, the user databases will go write-unavailable, though the secondaries should continue to provide read availability.
111
-
Because of the third DC, the `system` database will remain writeavailable, so you will be able to get the user databases back to writeavailable without process downtime.
112
+
Because of the third DC, the `system` database remains write-available, so you will be able to get the user databases back to write-available without process downtime.
112
113
113
114
However, if you need to use the `recreateDatabase()` procedure, it will involve downtime for the user database.
114
115
115
-
Example steps::
116
+
Example recovery steps::
116
117
117
118
. Mark missing servers as not present by cordoning them.
118
119
For each `Unavailable` server, run `CALL dbms.cluster.cordonServer("unavailable-server-id")` on one of the available servers.
@@ -130,9 +131,10 @@ You need to accept a smaller topology that fits in the remaining data center.
130
131
131
132
image::2dc-unbalanced-membership.svg[width="400", title="Unbalanced data center primary distribution", role=popup]
132
133
133
-
Suppose you decide to set up just two data centers, placing two primaries in data center 1 (DC1) and one primary in the data center 2 (DC2).
134
+
Suppose, you decide to set up just two data centers, placing two primaries in data center 1 (DC1) and one primary in the data center 2 (DC2).
134
135
135
136
If the writer primary is located in DC1, then writes can be fast because a local quorum can be reached.
137
+
136
138
This setup can tolerate the loss of one data center — but only if the failure is in DC2.
137
139
If DC1 fails, you lose two primary members, which means the quorum is lost and the cluster becomes unavailable for writes.
0 commit comments