云服务器内容精选

  • URI GET https://{Endpoint}/v3/{project_id}/instances/{instance_id}/db-upgrade/candidate-versions 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 String 实例ID,严格匹配UUID规则。
  • 响应示例 实例在滚动升级中时,只返回滚动升级目标版本与滚动升级分片和AZ状态。 { "upgrade_type_list": [ { "upgrade_type": "grey", "upgrade_action_list": [ { "upgrade_action": "commit", "enable": false }, { "upgrade_action": "rollback", "enable": false }, { "upgrade_action": "upgrade", "enable": true }, { "upgrade_action": "upgradeAutoCommit", "enable": true } ], "enable": true, "is_parallel_upgrade": null }, { "upgrade_type": "hotfix", "upgrade_action_list": null, "enable": false, "is_parallel_upgrade": null }, { "upgrade_type": "inplace", "upgrade_action_list": [ { "upgrade_action": "upgradeAutoCommit", "enable": true } ], "enable": true, "is_parallel_upgrade": null } ], "rollback_enabled": false, "source_version": "8.102.0", "target_version": null, "roll_upgrade_progress": { "not_fully_upgraded_az": "cn-southwest-244a,cn-southwest-244b,cn-southwest-244c", "already_upgraded_az": "", "az_description_map": { "cn-southwest-244c": "az3", "cn-southwest-244b": "az2", "cn-southwest-244a": "az1" } }, "upgrade_candidate_versions": [ "8.300.0", "8.103.0" ], "hotfix_upgrade_candidate_versions": [], "hotfix_rollback_candidate_versions": [], "hotfix_upgrade_infos": [], "hotfix_rollback_infos": [] }
  • 准备工作 查看待升级的云数据库 RDS for PostgreSQ L实例 信息。 在“实例管理”页面,单击待升级实例名称,进入待升级实例概览页面。 在“概览”页面中,可以查看到实例所属区域、可用区、虚拟私有云、子网、安全组。 准备弹性云服务器。 通过弹性云服务器连接云数据库RDS实例,需要创建一台弹性云服务器。 该弹性云服务器的区域、可用区、虚拟私有云、子网、安全组与待升级RDS for PostgreSQL实例相同。 在2中的弹性云服务器上,安装PostgreSQL客户端。 请参见如何安装PostgreSQL客户端。 该弹性云服务器需要安装和RDS for PostgreSQL数据库服务端相同版本的数据库客户端,PostgreSQL数据库或客户端会自带pg_dump、pg_restore和psql工具。 通过psql连接源数据库,在每一个数据库上执行如下sql,获取已使用列表。 select extname from pg_extension; 根据查看的已使用列表,选择一个包含当前所有插件的目标升级版本。 RDS for PostgreSQL各版本支持的插件,参考支持的插件列表。 参考创建参数模板,创建一个兼容待升级实例参数的目标版本参数模板。 创建目标版本RDS for PostgreSQL实例。 创建RDS for PostgreSQL实例,请参见购买实例。 目标版本RDS for PostgreSQL实例所属区域、可用区、虚拟私有云、子网、安全组与源实例相同。 在2中的弹性云服务器上,通过psql连接目标数据库,确认目标实例连接正常。
  • 操作步骤 以下操作均在已准备的弹性云服务器上执行。 使用psql连接源数据库,执行以下sql,获取数据库列表。 postgres=# \l 使用psql连接目标数据库,执行以下sql,确认1中的所有数据库在目标数据库中是否均存在。 postgres=# \l 存在,执行3。 不存在,执行以下sql创建缺失的数据库,然后执行3。 postgres=# create database my_target_db; 模板库template0、template1不需要迁移。 默认创建的数据库postgres,一般不会存放业务数据,也不需要迁移。但是如果存放了业务数据,也需要迁移。 使用pg_dump转储源数据库,并使用pg_restore恢复到目标数据库。针对每一个业务库,重复执行3~4。 对于除RDS for PostgreSQL 11外的其他版本,转储命令如下: pg_dump -Fc -v --host=source_IP --port=source_port --username=my_user --dbname=my_source_db | pg_restore -v --no-owner --host=target_IP --port=target_port --username=my_user --dbname=my_target_db 对于RDS for PostgreSQL 11版本,转储命令如下: pg_dump -Fc -v --host=source_IP --port=source_port -Ndbms_lob -Ndbms_output -Ndbms_random -Nsys -Nutl_raw -Npg_catalog --username=my_user --dbname=my_source_db | pg_restore -v --no-owner --host=target_IP --port=target_port --username=my_user --dbname=my_target_db pg_dump所使用的登录用户需要拥有访问该数据库所有对象的权限。 pg_restore所使用的登录用户需要拥有该数据库的所有操作权限。 授权操作请参考grant。 若pg_dump命令使用-N参数,blob对象不会被导出。 若pg_dump命令使用-Fc参数,则导出的文件格式为二进制格式,如果需要导出sql类型的文件请使用-Fp参数。 每迁移完一个数据库,就可以通过目标数据库测试相应业务,保证业务在目标数据库中运行正常。 请务必确保验证业务可以在目标库正常运行后,再将业务切换到目标数据库,然后删除源数据库。
  • 操作场景 升级RDS for PostgreSQL引擎大版本,能让您享受到RDS for PostgreSQL新版本带来的功能、性能、安全的提升。但大版本升级可能存在向后不兼容的数据变更,可能导致现有业务运行不兼容。因此需要用户使用目标版本测试确保业务能够正常运行后,再执行大版本升级。 本章节中“源数据库”表示待升级的低版本RDS for PostgreSQL数据库,“目标数据库”表示待升级到的高版本RDS for PostgreSQL数据库。
  • RDS for PostgreSQL版本号说明 RDS for PostgreSQL v10及其以上版本的版本号由major.minor组成。其中,major表示大版本号,minor表示小版本号。大版本升级是指major部分增加,比如:11.x升级到12.x。 RDS for PostgreSQL v10之前的版本号由major.major.minor组成。其中,major.major表示大版本号,minor表示小版本号。大版本升级是指如major.major部分增加,比如:从9.5.x升级到9.6.x或者从9.x.x升级到10.x。
  • 注意事项 当有对应的小版本更新时(定期同步开源社区问题、漏洞修复),请及时手动立即升级或者设置可维护时间段升级小版本。 升级数据库内核小版本会重启RDS for MySQL实例,服务可能会出现闪断,请您尽量在业务低峰期执行该操作,或确保您的应用有自动重连机制。 升级内核小版本期间,除了主备切换时的网络闪断外,由于主备之间默认是半同步复制,升级过程中会有两次单条SQL持续最长十秒的更新及写入等待,用户可通过修改主备间的复制模式为异步来规避此场景。 如果主备实例在同一个AZ,升级内核小版本会触发一次主备倒换;如果主备实例在不同AZ,则会触发两次主备倒换。 升级主实例小版本时,如有只读实例,也会同步升级只读实例的小版本,升级完成会重启实例,请您选择合适的时间升级(不支持单独升级只读实例的小版本)。 升级内核小版本时,如果RDS实例为DRS任务的源端,DRS可能会拉取不到RDS实例的日志;如果RDS实例为DRS任务的目标端,DRS可能会写不进目标库。 建议您在升级内核小版本前先确认RDS实例Binlog的保留时间: 如果Binlog在保留时间内,待内核小版本升级完成后,DRS任务会自动重启。 如果Binlog不在保留时间内,您需要重新配置或创建DRS任务。 升级内核小版本后,实例会升级到新的内核小版本,无法降级。如果升级失败,将会自动回退到原版本。 升级小版本前建议先做一次全量备份。 升级内核小版本一般是分钟级完成。 小版本升级过程中禁止event的DDL操作,如create event、drop event和alter event。 如果小版本升级时,界面提示主节点存在DDL操作,可通过如下方式处理: 将实例STATUS为SLAVESIDE_DISABLED状态的event,更改为ENABLED或者DISABLED状态后再进行升级。 删除SLAVESIDE_DISABLED状态的event后再进行升级。
  • 约束条件 对于主备实例,复制延迟大于300秒无法升级小版本。 升级主备实例时,升级顺序依次是备实例、主实例。 实例中存在异常节点,无法升级小版本。 云数据库RDS for MySQL暂不支持已开启事件定时器功能的实例升级内核小版本,若您想使用该功能,请先关闭事件定时器。具体操作请参考开启或关闭事件定时器。 8.0.28及以上的内核版本,不支持设置TLSv1.1,可以通过参数“loose_tls_version”修改TLS版本。
  • 后续操作 返回实例列表,在左侧导航栏,选择“任务中心”,查看版本升级任务的执行进度。 对于升级方式为“立即升级”的任务: 在“即时任务”页签,搜索“MySQL实例版本升级”任务,查看执行进度。即时任务不支持取消。 对于升级方式为“可维护时间段内升级”的任务: 在“定时任务”页签,搜索实例名称,查看该实例下版本升级的任务执行情况。 如果任务为“待执行”状态,单击“取消”,取消执行该升级任务。 更多操作,请参见查看任务。
  • 请求消息 请求参数 表2 参数说明 名称 参数类型 是否必选 说明 target_version String 是 目标版本。 URI样例 https://{Endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/3aa441c4c98a4b36b100a7e3e87d17cein03/major-version/inspection { "target_version": "14.9.0" }
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 upgrade_type 是 String 实例升级类型,区分大小写。包括就地升级,灰度升级,热补丁升级三种,三种升级方式的异同,详见接口描述。 inplace:就地升级。 grey:灰度升级。 hotfix:热补丁升级。 upgrade_action 否 String 实例升级操作,区分大小写。 实例升级类型是就地升级时非必选。 灰度升级包括升级自动提交、升级待观察、提交升级和升级回退四种。 热补丁升级包括升级自动提交,升级回退两种。 upgradeAutoCommit:升级自动提交 。 upgrade:升级待观察。 commit:提交升级。 rollback:升级回退。 target_version 否 String 实例升级目标版本。 热补丁升级场景下支持传入多个热补丁版本。 upgrade_shard_num 否 Integer 分布式实例灰度升级分片数。分布式实例灰度升级,升级待观察必填。该值不能大于实例未升级分片总数。 upgrade_az 否 String 灰度升级,升级待观察AZ值,升级待观察时必填。可以支持多AZ一起升级,AZ之间以英文逗号分隔。不能填入不属于该实例的AZ值。
  • 请求示例 就地升级。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "inplace", "target_version": "xxx" } 热补丁升级 实例热补丁升级。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "hotfix", "target_version" : "xxxx,xxxx,xxxx", "upgrade_action" : "upgradeAutoCommit" } 实例热补丁升级回退。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type": "hotfix", "target_version": "xxxx,xxxx,xxxx", "upgrade_action": "rollback" } 灰度升级 实例灰度升级并采用升级自动提交升级方式升级。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "grey", "target_version": "xxx", "upgrade_action" : "upgradeAutoCommit" } 实例灰度升级并采用升级待观察方式升级。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "grey", "target_version": "xxx", "upgrade_action" : "upgrade", "upgrade_shard_num" : 1, } 实例灰度升级并采用升级待观察方式升级,当实例处于升级待观察状态中,可进行升级回退,会回退全部已升级的分片,实例恢复正常后回退成功。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "grey", "target_version": "xxx", "upgrade_action" : "rollback" } 实例灰度升级并采用升级待观察方式升级,当实例处于升级待观察状态中,且全部分片都升级完成后,可进行升级提交。实例恢复正常后升级完成。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "grey", "target_version": "xxx", "upgrade_action" : "commit" } 主备版实例灰度升级并采用升级待观察方式升级传参。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade { "upgrade_type" : "grey", "upgrade_action" : "upgrade", "target_version": "xxx", "upgrade_az" : "az1,az2" }
  • URI PUT https://{Endpoint}/v3.1/{project_id}/instances/{instance_id}/db-upgrade 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 String 实例ID,严格匹配UUID规则。
  • 功能介绍 GaussDB 实例版本升级。包括就地升级,灰度升级,热补丁升级三种升级方式。 就地升级 就地升级需要停止业务进行,会一次性升级集群中所有节点。就地升级需要暂停业务30分钟来升级。 灰度升级 每个主DN或者CN组件升级就有一次10秒业务中断。升级过程均是先管理面,再数据面,由备到主的升级方式。灰度升级支持升级自动提交和升级待观察两种操作方式。 升级自动提交:所有节点进程一起升级,在升级过程中有大概10秒的业务中断,不阻塞其他业务操作。 升级待观察:升级待观察,将数据库升级过程细分为升级,提交两个阶段。 升级阶段可以根据部署方式细分为按分片或者按AZ的滚动升级。 分布式实例:根据分片数滚动升级。 主备版实例:根据AZ数进行滚动升级。 提交阶段可以对升级完成后的实例进行业务测试,根据需要可以选择提交升级或者升级回退。 提交升级:在升级完成进入提交阶段时,业务测试正常后提交升级,完成本次升级流程。 升级回退:在升级完成进入提交阶段时,可以根据需要回退本次升级,回退到升级前的版本。 热补丁升级 升级自动提交:热补丁自动升级并提交,中间无业务中断。 升级回退:热补丁回退,无业务中断时间。 调用接口前,您需要了解API 认证鉴权。 调用接口前,您需要提前获取到地区和终端节点,即下文中的Endpoint值。
  • RDS for MySQL是否支持版本升级 通过DRS升级大版本 您可以使用 数据复制服务 (Data Replication Service,简称DRS)将云数据库 RDS for MySQL 5.6版本迁移到MySQL 5.7版本,实现在线升级迁移,平滑完成数据库的迁移工作。使用该方式进行大版本升级,需要提前准备好待迁移到的高版本数据库实例。 您可以在“实例管理”页面,单击目标实例名称,在页面右上角,单击“迁移数据库”,进入数据复制服务信息页面。 具体迁移操作,请参见《数据复制服务用户指南》的“入云迁移”内容。 表1 MySQL数据库版本信息 源数据库版本 目标数据库版本 迁移类型 RDS for MySQL/自建MySQL/其他云MySQL 5.5.x 5.6.x 5.7.x 8.0.x RDS for MySQL 5.6.x 5.7.x 8.0.x MySQL数据库版本升级 DRS仅支持从低版本迁移到高版本。迁移到高版本后建议在新实例上执行optimize table优化表空间。 使用DRS迁移MySQL实例时,如果对实例进行规格变更,会导致实例有2次闪断,规格变更之后请检查DRS任务。 小版本升级。 云数据库 RDS for MySQL支持自动或手动升级内核小版本,内核小版本的升级涉及性能提升、新功能或问题修复等。 升级主备实例时,升级顺序依次是备实例、主实例。 内核小版本功能详情请参见华为云RDS for MySQL内核版本说明。 具体升级操作,请参见“升级内核小版本”内容。 父主题: 版本升级