升级一个Active-Active数据库
升级一个Active-Active数据库。
当您升级Active-Active (CRDB)数据库时,您也可以升级CRDB协议版本和功能版本。
CRDB协议版本指南
Redis Enterprise Software 5.4.2 及更高版本使用 CRDB 协议版本 1 来帮助支持 Active-Active 功能。
CRDB协议版本1是向后兼容的,这意味着Redis Enterprise v5.4.2 CRDB实例可以理解使用早期CRDB协议版本0的实例的写操作。
在你将一个实例的CRDB协议升级到版本1之后:
-
任何使用CRDB协议版本1的实例都可以从版本1和版本0的实例接收更新。
-
然而,仍然使用CRDB协议版本0的实例无法接收来自版本1实例的写更新。
-
当您将实例从CRDB协议版本0升级到版本1后,它会自动接收任何缺失的写操作。
遵循以下升级指南:
-
在合理的时间范围内升级特定CRDB的所有实例,以避免实例之间的临时不一致。
-
确保在对CRDB进行全局操作(例如删除实例和添加新实例)之前,升级特定CRDB的所有实例。
-
从 v6.0.20 开始,协议版本 0 已被弃用,并将在未来的版本中移除支持。
-
为了避免升级失败,在将Redis Enterprise Software升级到v6.0.20或更高版本之前,请将所有Active-Active数据库更新到协议版本1。
功能版本指南
从版本5.6.0开始,一个新的功能版本(也称为功能集版本)有助于支持新的Active-Active功能。
当您更新Active-Active数据库的功能版本时,所有数据库实例的功能版本都会更新。
遵循以下升级指南:
-
自 v6.0.20 起,功能版本 0 已被弃用,并将在未来的版本中移除支持。
-
为了避免升级失败,在将Redis Enterprise Software升级到v6.0.20或更高版本之前,请将所有Active-Active数据库更新到协议版本1。
升级Active-Active数据库实例
升级一个Active-Active数据库(CRDB)实例:
-
升级Redis企业版软件在每个集群节点上,这些节点位于Active-Active实例所在的集群中。
-
要查看您的Active-Active实例的状态,请运行:
rladmin status
节点上的Active-Active实例的状态可以表示:
旧版REDIS版本
OLD CRDB PROTOCOL VERSION
旧版 CRBD 功能集版本
-
要升级每个Active-Active实例及其模块,包括Redis版本和CRDB协议版本,请运行:
rladmin upgrade db <database_name | database_ID>
如果协议版本较旧,请仔细阅读警告信息并确认。
Active-Active实例使用新的Redis版本和CRDB协议版本。
使用
keep_crdt_protocol_version
选项可以在不升级CRDB协议版本的情况下升级数据库功能版本。如果您使用此选项,请确保在不久后使用
rladmin upgrade db
命令升级CRDB协议。在更新CRDB功能集版本之前,您必须升级CRDB协议。
-
如果功能集版本较旧,您必须升级所有Active-Active实例。然后,要为每个Active-Active数据库更新功能集,请运行:
crdb-cli crdb update --crdb-guid <CRDB-GUID> --featureset-version yes
您可以使用以下命令检索
<CRDB-GUID>
:crdb-cli crdb list
查找集群的完全限定域名(CLUSTER-FDQN)并使用关联的GUID:
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
-
使用以下命令语法更新CRDB配置中的模块信息:
crdb-cli crdb update --crdb-guid <guid> --default-db-config \ '{ "module_list": [ { "module_name": "<module1_name>", "semantic_version": "<module1_version>" }, { "module_name": "<module2_name>", "semantic_version": "<module2_version>" } ]}'
例如:
crdb-cli crdb update --crdb-guid 82a80988-f5fe-4fa5-bca0-aef2a0fd60db --default-db-config \ '{ "module_list": [ { "module_name": "search", "semantic_version": "2.4.6" }, { "module_name": "ReJSON", "semantic_version": "2.4.5" } ]}'