diff --git a/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md b/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md index f35c67034f..3acfae9ea6 100644 --- a/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md +++ b/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md @@ -5,101 +5,108 @@ categories: - docs - operate - rs -description: Upgrade an Active-Active database. +description: How to upgrade an Active-Active database. linkTitle: Active-Active databases weight: 70 --- -When you upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/databases/active-active" >}}), you can also upgrade the CRDB protocol version and feature version. +## Upgrade an Active-Active database -## CRDB protocol version guidelines +To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/databases/active-active" >}}): -Redis Enterprise Software versions 5.4.2 and later use CRDB protocol version 1 to help support Active-Active features. +1. [Upgrade Redis Enterprise Software]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster" >}}) on each node in the clusters where the Active-Active instances are located. -CRDB protocol version 1 is backward compatible, which means Redis Enterprise v5.4.2 CRDB instances can understand write operations from instances using the earlier CRDB protocol version 0. +1. [Check the status](#check-database-status) of all Active-Active database instances. -After you upgrade one instance's CRDB protocol to version 1: +1. [Upgrade all Active-Active database instances](#upgrade-database-instances) to a later version of Redis. -- Any instances that use CRDB protocol version 1 can receive updates from both version 1 and version 0 instances. +1. If the status indicates `OLD CRDB FEATURESET VERSION`, [upgrade the featureset version](#upgrade-featureset-version). See [Feature version guidelines](#feature-version-guidelines) for more information. -- However, instances that still use CRDB protocol version 0 cannot receive write updates from version 1 instances. +1. If your Active-Active database uses modules, [update module information](#update-module-information). To check if your database uses modules, run [`rladmin status modules`]({{}}): -- After you upgrade an instance from CRDB protocol version 0 to version 1, it automatically receives any missing write operations. + ```sh + rladmin status modules db { db: | } + ``` -Follow these upgrade guidelines: +## Check database status -- Upgrade all instances of a specific CRDB within a reasonable time frame to avoid temporary inconsistencies between the instances. +To check the status of an Active-Active database instance, run [`rladmin status`]({{}}): -- Make sure that you upgrade all instances of a specific CRDB before you do global operations on the CRDB, such as removing instances and adding new instances. +```sh + rladmin status +``` -- As of v6.0.20, protocol version 0 is deprecated and support will be removed in a future version. +{{< image filename="/images/rs/crdb-upgrade-node.png" >}} -- To avoid upgrade failures, update all Active-Active databases to protocol version 1 _before_ upgrading Redis Enterprise Software to v6.0.20 or later. +The statuses of the Active-Active instances on the node can indicate: -## Feature version guidelines +- `OLD REDIS VERSION`: The database instance is running a Redis version that is outdated or not fully compatible with the current Redis Enterprise Software cluster version. You should [upgrade the database](#upgrade-database-instances) to a later version of Redis bundled with the cluster's current Redis Enterprise Software version. -Starting with version 5.6.0, a new feature version (also called a _feature set version_) helps support new Active-Active features. +- `OLD CRDB PROTOCOL VERSION`: This instance uses an older CRDB protocol. Redis Enterprise Software versions 5.4.2 and later use CRDB protocol version 1. You can upgrade the CRDB protocol version when you [upgrade the Active-Active database instances](#upgrade-database-instances). See [CRDB protocol version guidelines](#crdb-protocol-version-guidelines) for more information. -When you update the feature version for an Active-Active database, the feature version is updated for all database instances. - -Follow these upgrade guidelines: +- `OLD CRDB FEATURESET VERSION`: The database feature set version is outdated. After all [Active-Active database instances are upgraded](#upgrade-database-instances), [upgrade the feature set version](#upgrade-featureset-version). See [Feature version guidelines](#feature-version-guidelines) for more information. -- As of v6.0.20, feature version 0 is deprecated and support will be removed in a future version. +## Upgrade database instances -- To avoid upgrade failures, update all Active-Active databases to protocol version 1 _before_ upgrading Redis Enterprise Software to v6.0.20 or later. +For each Active-Active database instance: -## Upgrade Active-Active database instance +1. Upgrade the Redis database version and enabled modules with [`rladmin upgrade db`]({{}}): -To upgrade an Active-Active database (CRDB) instance: + ```sh + rladmin upgrade db { db: | } + ``` -1. [Upgrade Redis Enterprise Software]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster" >}}) on each node in the clusters where the Active-Active instances are located. +1. If the CRDB protocol version is old, read the warning message carefully and confirm that you want to update the CRDB protocol. See [CRDB protocol version guidelines](#crdb-protocol-version-guidelines) for more information. -1. To see the status of your Active-Active instances, run: + {{< image filename="/images/rs/crdb-upgrade-protocol.png" >}} - ```sh - rladmin status - ``` + After confirmation, the Active-Active instance will use the new Redis version and CRDB protocol version. - The statuses of the Active-Active instances on the node can indicate: + {{}} +You can use the `keep_crdt_protocol_version` option to upgrade the database version without upgrading the CRDB protocol version. However, you must upgrade the CRDB protocol before you update the CRDB feature set version. - - `OLD REDIS VERSION` - - `OLD CRDB PROTOCOL VERSION` - - `OLD CRBD FEATURESET VERSION` +If you use `keep_crdt_protocol_version`, make sure that you upgrade the CRDB protocol soon after with the [`rladmin upgrade db`]({{< relref "/operate/rs/references/cli-utilities/rladmin/upgrade#upgrade-db" >}}) command. + {{}} - {{< image filename="/images/rs/crdb-upgrade-node.png" >}} +### CRDB protocol version guidelines -1. To upgrade each Active-Active instance and its modules, including the Redis version and CRDB protocol version, run: +Redis Enterprise Software versions 5.4.2 and later use CRDB protocol version 1 to help support Active-Active features. - ```sh - rladmin upgrade db - ``` +CRDB protocol version 1 is backward compatible, which means Redis Enterprise v5.4.2 CRDB instances can understand write operations from instances using the earlier CRDB protocol version 0. - If the protocol version is old, read the warning message carefully and confirm. +After you upgrade one instance's CRDB protocol to version 1: - {{< image filename="/images/rs/crdb-upgrade-protocol.png" >}} +- Any instances that use CRDB protocol version 1 can receive updates from both version 1 and version 0 instances. - The Active-Active instance uses the new Redis version and CRDB protocol version. +- However, instances that still use CRDB protocol version 0 cannot receive write updates from version 1 instances. - Use the `keep_crdt_protocol_version` option to upgrade the database feature version -without upgrading the CRDB protocol version. +- After you upgrade an instance from CRDB protocol version 0 to version 1, it automatically receives any missing write operations. - If you use this option, make sure that you upgrade the CRDB protocol soon after with the [`rladmin upgrade db`]({{< relref "/operate/rs/references/cli-utilities/rladmin/upgrade#upgrade-db" >}}) command. +Follow these upgrade guidelines: - You must upgrade the CRDB protocol before you update the CRDB feature set version. +- Upgrade all instances of a specific CRDB within a reasonable time frame to avoid temporary inconsistencies between the instances. -1. If the feature set version is old, you must upgrade all of the Active-Active instances. Then, to update the feature set for each active-active database, run: +- Make sure that you upgrade all instances of a specific CRDB before you perform global operations on the CRDB, such as removing instances and adding new instances. - ```sh - crdb-cli crdb update --crdb-guid --featureset-version yes - ``` +- As of v6.0.20, protocol version 0 is deprecated and support will be removed in a future version. - You can retrieve the `` with the following command: +- To avoid upgrade failures, update all Active-Active databases to protocol version 1 _before_ upgrading Redis Enterprise Software to v6.0.20 or later. + +## Upgrade featureset version + +If the feature set version is old, as indicated by the `OLD CRDB FEATURESET VERSION` status: + +1. [Upgrade all Active-Active database instances](#upgrade-database-instances) and make sure the CRDB protocol is not outdated. + +1. Find the `` of your Active-Active database. + + You can use the [`crdb-cli crdb list`]({{}}) command: ```sh crdb-cli crdb list ``` - Look for the fully qualified domain name (CLUSTER-FDQN) of your cluster and use the associated GUID: + Look for the fully qualified domain name (`CLUSTER-FDQN`) of your cluster and use the associated `GUID`: ```sh CRDB-GUID NAME REPL-ID CLUSTER-FQDN @@ -107,13 +114,35 @@ without upgrading the CRDB protocol version. 700140c5-478e-49d7-ad3c-64d517ddc486 aatest 2 aatest2.example.com ``` -1. Update module information in the CRDB configuration using the following command: +1. Update the feature set for each Active-Active database. See [Feature version guidelines](#feature-version-guidelines) for more information. + + ```sh + crdb-cli crdb update --crdb-guid --featureset-version yes + ``` + +### Feature version guidelines + +Starting with version 5.6.0, a new feature version (also called a _feature set version_) helps support new Active-Active features. + +The featureset version is an internal version of the Active-Active feature that enables new capabilities and improvements across participating Active-Active clusters. When you update the feature version for an Active-Active database, the feature version is updated for all database instances. + +Follow these upgrade guidelines: + +- As of v6.0.20, feature version 0 is deprecated and support will be removed in a future version. + +- To avoid upgrade failures, make sure all your Active-Active databases are configured with the latest feature set version before upgrading to Redis Enterprise Software 6.0.20 or later. + +## Update module information + +If your Active-Active database uses modules: + +1. Update module information in the CRDB configuration using the following command syntax: ```sh - crdb-cli crdb update --crdb-guid --update-db-config-modules true + crdb-cli crdb update --crdb-guid --update-db-config-modules true ``` - `crdb-cli` will ask you to verify all Active-Active database instances and their modules have been updated before you enter `y` to continue. +1. `crdb-cli` will ask you to verify all Active-Active database instances and their modules have been updated before you enter `y` to continue: ``` Verify that all CRDB database instances and their modules have been updated.