升级数据存储¶
您可以升级数据库实例的数据存储版本。在执行升级时,系统会自动管理您的数据库的数据和配置文件。
要执行数据存储升级,您需要
一个需要升级的 Trove 数据库实例。
一个具有目标数据存储版本的 guest 镜像。
本指南演示如何将 MySQL 数据存储从 5.7.29 升级到 5.7.30,用于一个数据库实例。
警告
数据存储升级可能会导致数据库服务停机。
升级数据存储¶
检查系统中的数据存储版本
在我的环境中,MySQL 定义了数据存储版本 5.7.29 和 5.7.30。
$ openstack datastore list +--------------------------------------+-------+ | ID | Name | +--------------------------------------+-------+ | 50bed39d-6788-4a0d-8d74-321012bb6b55 | mysql | +--------------------------------------+-------+ $ openstack datastore version list mysql +--------------------------------------+--------+---------+ | ID | Name | Version | +--------------------------------------+--------+---------+ | 70c68d0a-27e1-4fbd-bd3b-f29d42ce1a7d | 5.7.29 | 5.7.29 | | cf91aa9a-2192-4ec4-b7ce-5cac3b1e7dbe | 5.7.30 | 5.7.30 | +--------------------------------------+--------+---------+
使用数据存储版本 5.7.29 创建一个新实例
确保实例状态在升级前为 HEALTHY(健康)。
$ openstack database instance create test-mysql-upgrade \ --flavor d2 \ --size 1 \ --nic net-id=$netid \ --datastore mysql --datastore-version 5.7.29 \ --databases testdb --users user:password $ openstack database instance list -c ID -c Name -c Status -c "Operating Status" -c Addresses +--------------------------------------+--------------------+--------+------------------+--------------------------------------------------------------------------------------------------+ | ID | Name | Status | Operating Status | Addresses | +--------------------------------------+--------------------+--------+------------------+--------------------------------------------------------------------------------------------------+ | 32eb56b0-d10d-43e9-b59e-1e4b0979e5dd | test-mysql-upgrade | ACTIVE | HEALTHY | [{'address': '10.0.0.54', 'type': 'private', 'network': '3dc8f3c2-f335-11eb-878c-00224d6b7bc1'}] | +--------------------------------------+--------------------+--------+------------------+--------------------------------------------------------------------------------------------------+
通过连接数据库检查 MySQL 版本
$ ip=10.0.0.54 $ mysql -u user -ppassword -h $ip testdb mysql> SELECT @@GLOBAL.innodb_version; +-------------------------+ | @@GLOBAL.innodb_version | +-------------------------+ | 5.7.29 | +-------------------------+
运行升级
使用 openstack database instance upgrade 命令来升级实例的数据存储。
$ openstack database instance upgrade 32eb56b0-d10d-43e9-b59e-1e4b0979e5dd cf91aa9a-2192-4ec4-b7ce-5cac3b1e7dbe
等待状态从 UPGRADE(升级中)变为 HEALTHY(健康)。
使用 openstack database instance list 来检查当前状态。
$ openstack database instance list -c ID -c Name -c Status -c "Operating Status" +--------------------------------------+--------------------+---------+------------------+ | ID | Name | Status | Operating Status | +--------------------------------------+--------------------+---------+------------------+ | 32eb56b0-d10d-43e9-b59e-1e4b0979e5dd | test-mysql-upgrade | UPGRADE | | +--------------------------------------+--------------------+---------+------------------+ $ openstack database instance list -c ID -c Name -c Status -c "Operating Status" +--------------------------------------+--------------------+--------+------------------+ | ID | Name | Status | Operating Status | +--------------------------------------+--------------------+--------+------------------+ | 32eb56b0-d10d-43e9-b59e-1e4b0979e5dd | test-mysql-upgrade | ACTIVE | HEALTHY | +--------------------------------------+--------------------+--------+------------------+
再次检查 MySQL 版本
$ mysql -u user -ppassword -h $ip testdb mysql> SELECT @@GLOBAL.innodb_version; +-------------------------+ | @@GLOBAL.innodb_version | +-------------------------+ | 5.7.30 | +-------------------------+