Skip to content
Merged
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -5,115 +5,144 @@ 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`]({{<relref "/operate/rs/references/cli-utilities/rladmin/status#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:<ID> | <database-name> }
```

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`]({{<relref "/operate/rs/references/cli-utilities/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`]({{<relref "/operate/rs/references/cli-utilities/rladmin/upgrade#upgrade-db">}}):

To upgrade an Active-Active database (CRDB) instance:
```sh
rladmin upgrade db { db:<ID> | <database-name> }
```

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:
{{<note>}}
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.
{{</note>}}

{{< 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 <database_name | database_ID>
```
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 <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 `<CRDB-GUID>` 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 `<CRDB-GUID>` of your Active-Active database.

You can use the [`crdb-cli crdb list`]({{<relref "/operate/rs/references/cli-utilities/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
700140c5-478e-49d7-ad3c-64d517ddc486 aatest 1 aatest1.example.com
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 <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 <guid> --update-db-config-modules true
crdb-cli crdb update --crdb-guid <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.
Expand Down