华为云用户手册

  • Top20库 展示空间占用Top20的数据库详细信息,包括库文件信息。 图4 库信息 表3 库参数说明 参数 说明 数据库 数据库名。 状态 数据库状态。 总空间(MB) 当前单库总的占用空间,单位MB。 已使用(MB) 当前单库已使用空间,单位MB。 可用空间(MB) 当前单库剩余可用空间,单位MB。 日志已使用(MB) 当前单库事务日志已使用空间,单位MB。 日志可用(MB) 当前单库事务日志可用空间,单位MB。 在数据库列表,单击“查看趋势”,可以查看近7天、近30天、自定义时间段内库的空间变化趋势。 图5 库数据趋势 单击数据库前面的,可打开当前库所包含的库文件列表。 表4 库文件列表参数说明 参数 说明 文件组 文件所在的文件组名,Log文件的文件组为NULL。 文件类型 文件的类型,通常为Data、Log或Filestream类型。 文件名 数据库文件的名称。 总空间大小(MB) 文件占用的总空间,单位MB。 已使用空间(MB) 文件已使用空间,单位MB。 可用空间(MB) 文件可用空间,单位MB。 文件最大限制(MB) 文件空间最大限制,单位MB,值为-1时表示不受限制。 文件自动增长量 文件自动增长的步长单位,固定值单位MB,或百分比。 在库文件列表,勾选单个或多个文件,单击“批量文件收缩”,执行文件收缩命令(master、msdb、model、rdsadmin库限制下发)。 图6 批量文件收缩
  • 限制条件 恢复中的实例,不可进行该操作。 除RDS界面和API以外的其他方式创建的数据库和账号,也会展示在RDS界面。如果创建的数据库名和账号名不满足数据库命名规则和帐号命名规则,例如包含中文或不支持的特殊字符,那么该数据库和账号不支持RDS界面或API的数据库管理和账号管理功能。 如果源库的数据库名和账号名不满足数据库命名规则和帐号命名规则,迁移到目标库RDS for MySQL后,该数据库和账号不支持RDS界面或API的数据库管理和账号管理功能。
  • 步骤2:测试连通性并安装MySQL客户端 登录E CS 实例,请参见《弹性云服务器用户指南》中“SSH密码方式登录”。 在RDS“实例管理”页面,单击实例名称进入“基本信息”页面。 选择“连接管理”,在“连接信息”模块获取实例的内网地址和数据库端口。 图4 连接信息 在ECS上测试是否可以正常连接到RDS for MySQ L实例 内网地址的端口。 执行yum install telnet命令提前安装telnet工具。 telnet 192.168.6.144 3306 如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将RDS实例的内网IP地址和端口添加到出方向规则。 图5 ECS的安全组 查看RDS的安全组的入方向规则,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参考设置安全组规则。 将MySQL客户端安装包导入ECS。 方法一: 在ECS上下载Linux系统的MySQL客户端安装包,该方式需要为ECS绑定EIP。 8.0版本: wget https://dev.mysql.com/get/mysql-community-client-8.0.28-1.el6.x86_64.rpm 5.7版本: wget https://dev.mysql.com/get/mysql-community-client-5.7.38-1.el6.x86_64.rpm 建议您下载的MySQL客户端版本高于已创建的RDS实例中数据库版本。 方法二: 在浏览器下载Linux系统的MySQL客户端安装包,然后将安装包上传到ECS。 您可以使用任何终端连接工具(如WinSCP、PuTTY等工具)将安装包上传至ECS。 8.0版本: 打开链接,以mysql-community-client-8.0.28-1.el6.x86_64.rpm为例,下载安装包。 图6 下载MySQL 8.0安装包 5.7版本: 打开链接,以mysql-community-client-5.7.38-1.el6.x86_64.rpm为例,下载安装包。 图7 下载MySQL 5.7安装包 建议您下载的MySQL客户端版本高于已创建的RDS实例中数据库版本。 执行以下命令安装MySQL客户端。 8.0版本: rpm -ivh --nodeps mysql-community-client-8.0.28-1.el6.x86_64.rpm 5.7版本: rpm -ivh --nodeps mysql-community-client-5.7.38-1.el6.x86_64.rpm 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下: rpm -ivh --replacefiles mysql-community-client-安装包版本号-1.el6.x86_64.rpm 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下: rpm -ivh --nodeps mysql-community-client-安装包版本号-1.el6.x86_64.rpm
  • 步骤1:购买ECS 登录管理控制台,查看是否有弹性云服务器。 有Linux弹性云服务器,执行3。 有Windows弹性云服务器,参考通过内网连接RDS for MySQL实例(Windows方式)。 无弹性云服务器,执行2。 图1 ECS实例 购买弹性云服务器时,选择Linux操作系统,例如CentOS。 由于需要在ECS下载MySQL客户端,因此需要为ECS绑定弹性公网IP(EIP),并且选择与RDS for MySQL实例相同的区域、VPC和安全组,便于RDS for MySQL和ECS网络互通。 购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图2 ECS基本信息 在RDS for MySQL实例基本信息页,查看RDS实例的区域和VPC。 图3 MySQL基本信息 确认ECS实例与RDS for MySQL实例是否处于同一区域、同一VPC内。 是,执行步骤2:测试连通性并安装MySQL客户端。 如果不在同一区域,请重新购买实例。不同区域的云服务之间内网互不相通,无法访问实例。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 如果不在同一VPC,可以修改ECS的VPC,请参见切换虚拟私有云。
  • 步骤2:测试连通性并安装SQL Server Management Studio 登录ECS实例,请参见《弹性云服务器用户指南》中“Windows弹性云服务器管理控制台远程登录(VNC方式)”。 在RDS“实例管理”页面,单击实例名称进入“基本信息”页面。 在“连接信息”模块获取实例的内网地址和数据库端口。 图4 连接信息 在ECS上打开cmd命令窗,测试是否可以正常连接到RDS for SQL Server实例内网地址的端口。 telnet 192.168.2.182 1433 如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将RDS实例的内网IP地址和端口添加到出方向规则。 图5 ECS的安全组 查看RDS的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参见设置安全组规则。 图6 RDS的安全组 在ECS上打开浏览器,访问Microsoft网站,以SQL Server Management Studio 18.0为例,下载安装包。 双击安装包,按照向导完成安装。
  • 步骤1:购买ECS 登录管理控制台,查看是否有弹性云服务器。 有Windows弹性云服务器,执行3。 无Windows弹性云服务器,执行2。 图1 ECS实例 购买弹性云服务器时,选择Windows操作系统。 由于需要在ECS下载SQL Server Management Studio客户端,因此需要为ECS绑定弹性公网IP(EIP),并且选择与RDS for SQL Server实例相同的区域、VPC和安全组,便于RDS for SQL Server和ECS网络互通。 购买Windows弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图2 ECS基本信息 在RDS for SQL Server实例基本信息页,查看RDS实例的区域和VPC。 图3 SQL Server基本信息 确认ECS实例与RDS for SQL Server实例是否处于同一区域、同一VPC内。 是,执行步骤2:测试连通性并安装SQL Server Management Studio。 如果不在同一区域,请重新购买实例。不同区域的云服务之间内网互不相通,无法访问实例。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 如果不在同一VPC,可以修改ECS的VPC,请参见切换虚拟私有云。
  • 数据类型 本章节介绍了在PostgreSQL11开源版本的基础上,RDS for PostgreSQL增强版支持的数据类型。 表1 数据类型 数据类型名称 数据类型 变长字符串类型 VARCHAR2,NVARCHAR2 十进制浮点数类型 DECIMAL 双精度二进制浮点类型 BINARY_DOUBLE 二进制数据类型 RAW 二进制大对象类型 BLOB 字符大对象类型 CLOB 字节字符大对象类型 NCLOB 数字类型 NUMBER 变长字符串类型 NVARACHAR Unicode字符数据类型 NCHAR 三十二位浮点型数据类型 BINARY_FLOAT 长整型 LONG XML数据类型 XMLType 本地时间戳数据类型 TIMESTAMP WITH LOCAL TIME ZONE PL/SQL整型溢出翻转数据类型 BINARY_INTEGER PL/SQL整型溢出错误数据类型 PLS_INTEGER 父主题: RDS for PostgreSQL增强版
  • 约束限制 仅SQL Server2017企业版和2019企业版的实例会产生自动差备文件。当备机强制升主,主机故障可能存在少量数据未同步,在修复原主机变为正常备机的过程中会对原主机做差异备份,备份当前所有自建数据库基于上次数据备份的差异数据。更多介绍请参见RDS for SQL Server自动差备是如何产生的。 若备份文件大于400MB,建议您使用OBS Browser+下载。 通过该方式下载备份文件不额外收取OBS公网流出流量费用。
  • 支持审计的关键操作列表 通过 云审计 服务,您可以记录与华为云云数据库RDS实例相关的操作事件,便于日后的查询、审计和回溯。 表1 云审计服务支持的RDS操作列表 操作名称 资源类型 事件名称 创建实例、创建只读、恢复到新实例 instance createInstance 扩容、规格变更 instance instanceAction 实例重启 instance instanceRestart 恢复到原有实例 instance instanceRestore 实例重命名 instance instanceRename 重置密码 instance resetPassword 设置数据库版本配置参数 instance setDBParameters 重置实例的数据库版本配置参数 instance resetDBParameters 设置备份策略-打开,关闭,修改 instance setBackupPolicy 修改数据库端口号 instance changeInstancePort 绑定解绑EIP instance setOrResetPublicIP 修改安全组 instance modifySecurityGroup 创建标签 instance createTag 删除标签 instance deleteTag 修改标签 instance modifyTag 删除实例 instance deleteInstance 主备倒换 instance instanceFailOver 修改主备同步模式 instance instanceFailOverMode 修改主备倒换策略 instance instanceFailOverStrategy 单机转主备实例 instance modifySingleToHaInstance 创建快照 backup createManualSnapshot 复制快照 backup copySnapshot 下载备份(通过OBS下载) backup downLoadSnapshot 下载备份(通过浏览器下载) backup backupsDownLoad 删除快照 backup deleteManualSnapshot 合并下载binlog backup packBackupsDownLoad 创建参数模板 parameterGroup createParameterGroup 修改参数模板 parameterGroup updateParameterGroup 删除参数模板 parameterGroup deleteParameterGroup 复制参数模板 parameterGroup copyParameterGroup 重置参数模板 parameterGroup resetParameterGroup 应用参数模板 parameterGroup applyParameterGroup 保存参数模板 parameterGroup saveParameterGroup 冻结删除 all rdsUnsubscribeInstance 实例冻结 all rdsfreezeInstance 按需转包周期、续费 all bssUpdateMetadata 父主题: CTS 审计
  • 插件介绍 hypopg插件是RDSforPostgreSQL支持的一款开源第三方插件,hypopg创建的虚拟索引不会存在于任何系统表中,而是存放在连接的私有内存中。由于虚拟索引实际上并不真正存在于任何物理文件中,因此hypopg保证了虚拟索引只会被一个简单的EXPLAIN语句使用(不包括ANALYZE选项)。虚拟索引并不是真实存在的索引,因此不耗费CPU、磁盘或其他资源。 hypopg插件支持的索引类型如下: BTREE:B型树索引。 BRIN:块级索引。 HASH:哈希索引。 BLOOM:布隆索引(需要先安装bloom插件)。
  • 支持的版本说明 PostgreSQL 11及以上版本的最新小版本支持该插件。可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'hypopg'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS for PostgreSQL实例支持的插件,具体请参见支持的插件列表。
  • 解决方法 autovacuum进程不起作用 确认客户数据库上的autovacuum参数是否开启,如果参数未开启,需要开启autovacuum参数,等待观察数据库年龄恢复情况。 查看autovacuum_freeze_max_age参数值,云上数据库默认值是4亿,如果修改了参数值超过10亿,建议改小参数值,等待观察数据库年龄恢复情况。 写入数据量太大 如果磁盘吞吐量达到性能上限,需要更换磁盘类型。 需要手动执行vacuum清理年龄大的表。 临时表长时间未释放 临时表不会执行autovacuum,如果是临时表导致数据库年龄增长,需要释放客户端连接使临时表被回收。 长事务导致数据库年龄增加 如果是长事务,先取消长事务,再对数据库年龄大的表执行vacuum。 取消长事务 select pg_cancel_backend($PID); 清理表 vacuum 表名;
  • 注意事项 目前仅支持MySQL到GeminiDB Redis接口Hash类型的转换。 新规则的Redis键前缀+键分隔符不能是已有规则的Redis键前缀+键分隔符的子前缀,反之亦然。例如新规则的前缀为 "pre1:",键分隔符为 "," ,老规则前缀为 "pre1",分隔符为":", 这种情况不允许创建新规则。 如果修改映射规则中MySQL实例的表名后,则需要重新配置映射规则。 暂不支持ENUM、SET、JSON三种数据类型的同步。 如果对映射规则中键(Key)字段中的一个或多个字段执行改名、删除等操作时,会使映射规则失效。
  • RDS for MySQL内存使用率高的问题处理 对于用户核心业务相关的库 请扩容实例规格,具体请参见变更实例的CPU内存规格。 对于非用户核心业务相关的库 查看本地计算机的内存使用率,如果使用率曲线持续平缓,则无需处理。 对于用户核心业务相关但是数据库规格配置很高的库 在业务低峰期,将数据库参数“performance_schema”的值调整为“OFF”,对于RDS for MySQL 5.6及以下版本,需要重启数据库才能生效。 通过智能DBA助手查看实例的内存使用情况,具体请参见查看实例性能指标。 如果实例的内存使用率仍持续保持较高: 请扩容实例规格。 调整数据库参数“innodb_buffer_pool_size”的值。参数建议值见表1,实际可修改的取值范围以RDS界面为准。 表1 不同内存规格对应的参数建议值 内存(GB) 5.6建议值 5.7建议值 8.0建议值 2 536,870,912 Byte(512 MB) 536,870,912 Byte(512 MB) 536,870,912 Byte(512 MB) 4 1,073,741,824 Byte(1 GB) 1,073,741,824 Byte(1 GB) 1,073,741,824 Byte(1 GB) 8 4,294,967,296 Byte(4 GB) 4,294,967,296 Byte(4 GB) 5,368,709,120 Byte(5 GB) 16 8,589,934,592 Byte(8 GB) 8,589,934,592 Byte(8 GB) 9,663,676,416 Byte(9 GB) 32 22,548,578,304 Byte(21 GB) 22,548,578,304 Byte(21 GB) 21,474,836,480 Byte(20 GB) 64 47,244,640,256 Byte(44 GB) 47,244,640,256 Byte(44 GB) 47,244,640,256 Byte(44 GB) 128 96,636,764,160 Byte(90 GB) 94,489,280,512 Byte(88 GB) 94,489,280,512 Byte(88 GB) 192 146,028,888,064 Byte(136 GB) 146,028,888,064 Byte(136 GB) 146,028,888,064 Byte(136 GB) 256 193,273,528,320 Byte(180 GB) 193,273,528,320 Byte(180 GB) 193,273,528,320 Byte(180 GB) 384 298,500,227,072 Byte(278 GB) 300,647,710,720 Byte(280 GB) 300,647,710,720 Byte(280 GB) 512 412,316,860,416 Byte(384 GB) 412,316,860,416 Byte(384 GB) 412,316,860,416 Byte(384 GB) 768 618,475,290,624 Byte(576 GB) 618,475,290,624 Byte(576 GB) 618,475,290,624 Byte(576 GB) 1024 824,633,720,832 Byte(768 GB) 824,633,720,832 Byte(768 GB) 824,633,720,832 Byte(768 GB) 请根据业务实际情况,调整参数“innodb_buffer_pool_size”的值。 MySQL本身具有内存动态平衡机制,内存使用率在90%以下您可无需关注,同时建议内存使用率告警阈值设置不低于90%。 在业务运行中缓冲池内存会逐渐增大至“innodb_buffer_pool_size”的值,可通过监控指标“缓冲池利用率”查看缓冲池内存的增长趋势。 RDS for MySQL的内存分配可划分为Engine层与Server层。 Engine层的内存包括InnoDB Buffer Pool、Log Buffer、Full Text Index Cache,其中InnoDB Buffer Pool为常驻内存,占用内存较大。 InnoDB缓冲池是一个内存区域,用于保存InnoDB表、索引和其他辅助缓冲区的缓存数据,可以通过参数“innodb_buffer_pool_size”定义缓冲池大小。 Server层的内存占用较高的包括Thread Cache、BinLog Cache、Sort Buffer、Read Buffer、Join Buffer等线程缓存,这类缓存非常驻内存,往往会随着连接关闭而释放。 以上内存的分配导致RDS for MySQL实例运行时内存使用率在80%左右。 父主题: 常见性能问题
  • 通过DRS升级大版本 RDS for MySQL支持通过DRS将RDS for MySQL 5.6版本数据迁移到5.7版本。使用该方式进行大版本升级,需要提前准备好待迁移到的高版本数据库实例。 您可以在“实例管理”页面,单击目标实例名称,在页面右上角,单击“迁移数据库”,进入 数据复制服务 信息页面。 具体迁移操作,请参见《数据复制服务用户指南》的“入云迁移”内容。 表3 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仅支持从低版本迁移到高版本。
  • 升级检查项及升级失败的修复建议 表1 升级检查项及修复建议 检查项 检查内容 修复建议 utf8mb3Check 检查字符集utf8mb3。 MySQL 5.7中,字符集utf8等同于utf8mb3, MySQL 8.0中,字符集utf8等同于utf8mb4, 请注意升级后如果使用utf8创建表格,相当于使用字符集utf8mb4。 用户无需处理该项检查。 removedSysVars 检查已移除的系统参数。 系统参数在MySQL 8.0中已删除。 该检查项不影响升级,用户无需处理。 sysVarsNewDefaults 检查系统参数默认值变化。 系统参数在MySQL 8.0中的默认值发生变化,如果您修改过该参数的值,升级后保留修改后的值,如果未修改过,将采用新的默认值。 该检查项不影响升级,用户无需处理。 zeroDatesCheck 检查使用了零日期、日期时间和时间戳。 MySQL 8.0.16及以后版本,将零值日期(例:“2024-00-00”)作为查询条件时,MySQL将该字符串转换为DATE,如果转换失败,该查询将报错。 该检查项不影响升级,但影响升级后的查询逻辑。用户无需处理global.sql_mode的报错,建议排查是否存在此类值,如果存在,修改为非零值。 enumSetElementLenghtCheck 检查ENUM/SET列元素长度。 元素长度大于255个字符,请修改到不超过255个字符。 reservedKeywordsCheck 检查保留字。 与MySQL 8.0中的保留字冲突,请修改名字。 mysqlDollarSignNameCheck 检查$符号。 数据库对象名包含“$”,请修改。 mysqlInvalid57NamesCheck 检查非法库名/表名/列名等。 包含非法名字,请修改。 groupByAscCheck 检查group by ASC/DESC语法。 MySQL 8.0移除了GROUP BY ASC/DESC语法,请修改数据库对象,可将ASC/DESC关键字从 GROUP BY子句中移除,并放置在适当的ORDER BY子句中。 checkTableOutput 通过"check table x for upgrade"检查表存在的问题。 根据检查结果中的“说明”进行修复。 engineMixupCheck 检查 InnoDB 识别了属于其他引擎的表的情况。 表格被 InnoDB引擎识别,但 SQL 层认为它们属于另一个引擎,请联系客服解决。 foreignKeyLengthCheck 检查外键约束名长度。 外键约束名长度不得超过64个字符,请修改。 nonNativePartitioningCheck 检查使用了非本地分区引擎的分区表的情况。 MySQL 8.0仅支持InnoDB 和 NDB作分区表引擎,请转换为InnoDB引擎,或删除其分区。 routinesSyntaxCheck 检查语法不兼容的情况。 存储过程、函数等数据库对象的定义包含了不兼容的语法,例如与MySQL8.0中的保留字冲突,请根据检查结果中的“说明”作修改。 maxdbFlagCheck 检查是否使用了过时的 MAXDB sql_mode标志。 MySQL 8.0删除了sql_mode中的MAXDB选项,请修改sql_mode参数,不使用MAXDB。 sqlModeFlagCheck 检查是否使用了过时的sql_mode标志。 MySQL 8.0删除了部分sql_mode标志,请根据检查结果中的“说明”,修改sql_mode参数。 removedSysLogVars 检查已移除的系统日志系统参数。 MySQL 8.0移除了部分系统日志系统参数,请知悉。 用户无需处理该项检查结果。 mysqlIndexTooLargeCheck 检查索引长度。 MySQL 5.7和MySQL 8.0都支持相同长度的索引,最大索引长度为767字节,在MySQL 8.0 utf8mb4编码下,最大支持191个字符;请修改索引长度至不超过191个字符。 circularDirectoryCheck 检查表空间数据文件路径使用循环目录。 目标版本不支持表空间在数据文件路径中包含循环目录引用(例如“/../”),请联系客服处理。 columnsWhichCannotHaveDefaultsCheck 检查列默认值。 BLOB、TEXT、GEOMETRY或JSON等类型的列不允许设置默认值,请通过ALTER TABLE语句删除默认值。 removedFunctionsCheck 检查已移除的函数。 目标版本删除了部分函数,请根据检查结果中的“说明”,修改相应数据库对象。 mysqlOrphanedRoutinesCheck 检查孤立的存储过程或函数等。 孤立的存储过程或函数等指其引用的数据库对象已不存在,无法运行,请删除。 mysqlEmptyDotTableSyntaxCheck 检查废弃的标识符。 请根据检查结果中的“说明”,修改对应数据库对象中的标识符。 mysqlSchemaCheck 检查表名冲突。 MySQL8.0新增部分表,请通过RENAME TABLE语句修改存在冲突的表名。 mysqlInvalidEngineForeignKeyCheck 检查外键约束指向其他引擎的表。 请通过ALTER TABLE语句修改引擎,或删除外键引用。 lowerCaseNameCheck 检查参数lower_case_table_names=1时,是否存在大写表名 参数lower_case_table_names=1时,如果存在大写表名,将导致升级失败;请先修改lower_case_table_names=0,通过RENAME TABLE语句将检查结果中的大写表名修改为小写,再将lower_case_table_names的值修改回1。 specVarInConfigFileCheck 检查配置文件中 sql_mode、loose_tls_version 是否有过时的值。 目标版本移除了部分sql_mode标志,MySQL8.0.28及其以上,loose_tls_version参数不支持TLSv1和TLSv1.1,请根据检查结果修改sql_mode或loose_tls_version参数的值。 reversedUserCheck 检查是否创建了创建 mysql.infoschema@localhost。 MySQL8.0内置mysql.infoschema@localhost账号,如MySQL5.7存在此账号,将导致升级失败,升级前请删除该账号。 schemaInconsistencyCheck 检查表文件移除或损坏导致的数据库结构不一致问题。 表文件.frm缺失,请联系客服处理。 geometryIndexCheck 检查空间坐标作为索引时是否为空间索引。 目标版本中,空间坐标作索引时必须为空间索引,请重建索引或删除索引。 danglingIndexCheck 检查是否存在空悬索引。 全文索引列删除导致FTS_DOC_ID空悬的表,需要进行 OPTIMIZE TABLE修复。 viewColumnCheck 检查视图列名长度。 目标版本中视图列名长度不可超过64个字符,请通过ALTER VIEW语句修改列名。 partitionedTablesInSharedTablespaceCheck 检查分区表是否在共享表空间。 目标版本不支持共享表空间,请通过ALTER TABLE语句将它们移动到独立表空间。 partitionsReferencedCheck 检查分区表是否被普通表通过外键引用。 分区表不可被普通表引用,请删除外键引用。 partitionsRangeDateCheck 检查按时间分区的分区表。 MySQL 8.0按时间分区时,时间列内容要求是标准的格式(例如:'YYYY-MM-DD hh:mm:ss' 或 'YY-MM-DD hh:mm:ss'),并修改相应表中时间数值为标准格式。 表2 升级失败的修复建议 问题描述 影响 修复建议 RDS for MySQL 5.7升级到8.0后,由于默认字符集变更,导致执行部分SQL时索引失效。 5.7默认使用UTF8mb3字符集,8.0默认使用UTF8mb4字符集。 5.7版本使用默认字符集建表,在升级过程中,字符集不会自动变更为8.0版本默认字符集,若用户在内核升级到8.0后建表,同时对两张字符集不同的表进行JOIN等操作,影响SQL执行时索引选择,最终导致SQL执行时间变长。 修改8.0的库、表、字段字符集、以及默认字符集,与5.7的字符集一致。 RDS for MySQL 5.7升级到8.0过程中,删除了全文索引,可能会导致升级失败。 可能会导致升级失败。 执行optimize table重建表;并排查空悬FTS_DOC_ID,详见表1。 RDS for MySQL 5.7升级到8.0过程中,由于含有分区表外键约束(通过参数foreign_key_check设置),导致升级失败。 导致升级失败。 移除该外键约束。 5.7版本中含有definer列为空的“mysql.events”表,会导致RDS for MySQL 5.7升级到8.0失败。 导致升级失败。 将definer列设置为非空。 RDS for MySQL 5.7升级到8.0过程中,Server层和InnoDB层列名大小写不匹配导致升级失败。 导致升级失败。 执行optimize table重建表。 RDS for MySQL 5.7升级到8.0过程中,索引中包含的字段在Server层和InnoDB层中大小写不一致导致升级失败。 导致升级失败。 执行optimize table重建表。 使用8.0不支持的“BTREE SPATIAL INDEX”,会导致RDS for MySQL 5.7升级到8.0失败。 导致升级失败。 删除“BTREE SPATIAL INDEX”索引。
  • 注意事项 下发RDS for MySQL 5.7升级至8.0前,需进行预检查,请注意以下内容: 预检查耗时与表数量相关,请您尽量在业务低峰期执行。 检查报告保留24小时,请及时下载。 “检查参数”项失败时,请根据检查详情中的检查项,对照表1进行修复,级别为error的检查项,必须修复才可升级,级别为warning的检查项,请知悉升级前后该内核特性的变化。 修复后需单击“重新检查”,获取新的检查结果。 只能从5.7的最新小版本升级到8.0的最新小版本。请先确认5.7版本已经是最新小版本,才能继续大版本升级。 大版本升级操作建议避开执行备份的时间窗。 升级大版本前建议先做一次全量备份。 升级数据库大版本过程将造成不超过五分钟的业务中断,请您尽量在业务低峰期执行该操作,并且确保您的应用有自动重连机制。 升级主实例大版本时,如有只读实例,也会同步升级只读实例的大版本(不支持单独升级只读实例的大版本)。 升级大版本后,实例会升级到新的内核大版本,不支持降级。 请务必仔细对比升级前后版本差异,建议您新建一个RDS for MySQL 5.7或8.0版本实例进行语法测试,避免应用使用的低版本语法或特性在升级高版本后不支持。 建议您将原实例数据恢复到新实例上面,先使用新实例进行升级测试,确认各项功能正常后再升级原实例。 内核大版本升级期间,自动扩容不生效,需要确保实例预留了足够的空间支撑升级过程中的业务写入。 大版本升级定时任务需预准备,设置后不可取消。 升级大版本后,升级前的备份将不可用于新版本实例,时间点恢复功能将不能选择升级前的时间点。 大版本升级过程中禁止event的DDL操作,如create event、drop event和alter event。 大版本升级后,规格参数会恢复到升级版本的默认值,包括以下参数:threadpool_size、innodb_buffer_pool_size、innodb_io_capacity、innodb_io_capacity_max、innodb_buffer_pool_instances、back_log、max_connections。
  • 约束限制 有关内核版本详情,请参见内核版本说明。 对于主备实例,复制延迟大于300秒无法升级大版本。 实例中存在异常节点,无法升级大版本。 MySQL 5.7及之后版本不再支持Sequence Engine,升级前请确认。 目前RDS for MySQL实例最大可支持50万张表(系统表+数据表),大于50万张表时,会导致大版本升级失败。 云数据库RDS for MySQL暂不支持已开启事件定时器功能的实例升级大版本,若您想使用该功能,请先关闭事件定时器。具体操作请参考开启或关闭事件定时器。 升级到8.0版本后,主实例和只读实例会共用SQL限流规则,为避免主实例SQL限流规则对只读业务造成影响,请在升级前审视调整主实例SQL限流规则、以及主实例和只读实例的SQL限流开关。 以下场景不支持RDS for MySQL 5.7升级至8.0: 不支持已绑定DDM或已开通数据库代理的RDS for MySQL实例进行升级。 不支持单机、本地盘、集群版实例进行升级。 主实例下的只读实例带有SQL限流规则时,不支持升级,请在升级前删除只读的限流规则。
  • 支持的数据库版本 仅如下版本支持SQL审计功能。如果您的数据库引擎版本较低,请参考升级内核小版本升级到最新版本。 对于RDS for MySQL 5.6云盘实例,支持5.6.43及其以上版本。 对于RDS for MySQL 5.6本地盘实例,支持5.6.47.3及其以上版本。 对于RDS for MySQL 5.7云盘实例,支持5.7.23及其以上版本。 对于RDS for MySQL 5.7本地盘实例,支持5.7.29.3及其以上版本。 支持RDS for MySQL 8.0版本。
  • 相关参数说明 对于和CPU相关的参数(即参数值与CPU变动有关,内存变动时不会影响取值):threadpool_size、slave_parallel_workers,参考如下表格规则重置参数值: 表2 CPU变更场景下重置参数值 场景 参数值无修改 参数值有修改 升配(CPU升高) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较大的值,即Max(default,custom) 降配(CPU降低) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较小的值,即Min(default,custom) 对于和内存相关的参数(即参数值与内存变动有关,CPU变动时不会影响取值):innodb_buffer_pool_size、innodb_log_buffer_size、innodb_log_files_in_group、max_connections、innodb_page_cleaners、innodb_buffer_pool_instances和back_log,参考如下表格规则重置参数值: 表3 内存变更场景下重置参数值 场景 参数值无修改 参数值有修改 升配(内存升高) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较大的值,即Max(default,custom) 降配(内存降低) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较小的值,即Min(default,custom) 以下参数没有修改时,重置为新规格默认值,有修改时保留修改值:innodb_io_capacity、innodb_io_capacity_max。
  • 约束限制 账户余额大于等于0元,才可变更规格。 当实例进行CPU/内存规格变更时,该实例不可被删除。 当实例进行CPU/内存规格变更时,不能对该实例做如下操作:重启数据库、扩容磁盘、修改参数组、创建手动备份、创建数据库账号、创建数据库等。 RDS for MySQL实例支持规格升配,也支持降配。 本地盘规格变更时,变更后的目标规格的存储上限不能小于当前实例的存储容量。 只读实例规格变更期间主实例Binlog清理关闭。 变更规格会临时占用IP,且变更后不会立即释放(默认12小时后释放)。变更规格前,请确保有未被使用的内网地址(主备实例:2个未被使用的内网地址;单机实例:1个未被使用的内网地址;只读实例:1个未被使用的内网地址),否则变更规格会失败。 变更过程中若存在大事务,可能导致变更失败。 如果实例的主备同步延迟大于5分钟,下发规格变更操作会失败。 变更规格会导致业务中断,导致约10~120秒的服务不可用,请确保您的应用有自动重连机制。请在业务低峰期变更规格,在业务高峰期执行会导致变更时长变长。 关于变更规格所需的时间(非业务高峰期): 对于云盘存储类型的实例,此过程需要5~15分钟。 对于本地盘存储类型的实例,需要通过备份恢复到新本地盘机器的方式进行规格变更,花费的总体时间与数据量相关。 超过变更时长,请及时联系华为云客服。 选择可维护时间段变更规格,提交后在定时任务中可选择立即切换(如果界面没有立即切换,请联系客服申请),关于变更规格所需的时间:业务高峰期时,可能存在复制时延高的情况,切换所需时间可能会较长。
  • 计费说明 表1 计费说明 计费模式 变更操作 对费用的影响 包年/包月 规格升配 升配后,新规格将在原来已有的时间周期内生效。 您需要按照与原规格的价格差,结合使用周期内的剩余时间,补交差价。 例如:(以下价格仅作示例,实际价格以控制台显示为准) 客户于2023/6/1在华北-北京四购买规格为通用型 2vCPUs 8GB的RDS for MySQL 5.7单机实例,SSD云盘存储,存储空间40GB,购买周期为一个月。此时实例价格为230元/月。 客户在2023/6/15将规格变更为通用型 4vCPUs 8GB,实例价格为400元/月。 升配费用 = 新规格价格 x 剩余周期 - 旧规格价格 x 剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。 本示例中,剩余周期=15(6月份剩余未使用天数)/ 30(6月份最大天数)= 0.5,代入公式可得升配费用 = 400 x 0.5 - 230 x 0.5 = 85元 规格降配 降配后,新规格将在原来已有的时间周期内生效。 RDS按照与原规格的价格差,结合使用周期内的剩余时间,退回差价。 例如:(以下价格仅作示例,实际价格以控制台显示为准) 客户于2023/6/1在华北-北京四购买规格为通用型 2vCPUs 8GB的RDS for MySQL 5.7单机实例,SSD云盘存储,存储空间40GB,购买周期为一个月。此时实例价格为230元/月。 客户在2023/6/15将规格变更为通用型 2vCPUs 4GB,实例价格为196元/月。 退回费用 = 旧规格价格 x 剩余周期 - 新规格价格 x 剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。 本示例中,剩余周期=15(6月份剩余未使用天数)/ 30(6月份最大天数)= 0.5,代入公式可得退回费用 = 230 x 0.5 - 196 x 0.5 = 17元 按需计费 规格升配 变更规格成功后,新规格按小时计费。具体请参见产品价格详情。 规格降配
  • 迁移方案总览 表1 PostgreSQL迁移方案 源数据库类型 数据量 一次性或持续 应用程序停机时间 迁移方式 文档链接 RDS for PostgreSQL 小型 一次性 一段时间 使用pg_dump工具将数据复制到RDS for PostgreSQL数据库。 使用psql命令迁移RDS for PostgreSQL数据 中 一次性 一段时间 使用DAS导出数据,再导入到RDS for PostgreSQL数据库。 使用DAS的导出和导入功能迁移RDS for PostgreSQL数据 任何 一次性或持续 最低 使用DRS将源库数据同步到RDS for PostgreSQL数据库。 将RDS for PostgreSQL同步到RDS for PostgreSQL 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 任何 一次性或持续 最低 使用DRS将自建PostgreSQL同步到RDS for PostgreSQL数据库。 将自建PostgreSQL同步到RDS for PostgreSQL 其他云上PostgreSQL数据库 任何 一次性或持续 最低 使用DRS将其他云上PostgreSQL同步到RDS for PostgreSQL数据库。 其他云PostgreSQL同步到RDS for PostgreSQL 本地自建Oracle数据库 ECS自建Oracle数据库 任何 一次性或持续 最低 使用DRS将自建Oracle数据同步到RDS for PostgreSQL数据库。 将Oracle同步到RDS for PostgreSQL RDS for MySQL 任何 一次性或持续 最低 使用DRS将RDS for MySQL同步到RDS for PostgreSQL数据库。 将RDS for MySQL同步到RDS for PostgreSQL 本地自建MySQL数据库 ECS自建MySQL数据库 任何 一次性或持续 最低 使用DRS将自建MySQL同步到RDS for PostgreSQL数据库。 将自建MySQL同步到RDS for PostgreSQL 其他云上MySQL数据库 任何 一次性或持续 最低 使用DRS将其他云上MySQL同步到RDS for PostgreSQL数据库。 将其他云MySQL同步到RDS for PostgreSQL
  • 常见问题 问题:“磁盘空间满”问题如何处理? 解决方法:参考磁盘满设置只读,通过以下方式降低磁盘空间使用率,使数据库恢复正常的写入操作。 磁盘扩容:磁盘扩容期间,服务不中断。您可以设置存储空间自动扩容,在实例存储空间达到阈值时,会触发自动扩容。 减少磁盘数据:删除无用的历史表数据。 如果实例变为只读状态,您需要先联系客服解除只读状态。如果实例非只读状态,则可以直接执行删除操作。 查看物理文件大小Top50库表,识别可以删除的历史表数据,具体操作请参见库表大小统计。 在业务低峰期对碎片率高的表执行OPTIMIZE优化,以便释放空间。 清理整张表使用DROP或TRUNCATE操作。删除部分数据,使用DELETE操作。如果是执行DELETE操作,需要使用OPTIMIZE TABLE来释放空间。 对于大量排序查询导致的临时文件过大,建议优化SQL查询。 查询数据库的慢SQL,分析数据量大,行数多,响应时间长的SQL语句,并进行优化。
  • 库表大小统计 可查看物理文件大小Top50库表,结合磁盘空间的分布情况,识别占用较高的库表并进行优化。 物理文件大小为精确采集数据,其余指标为预估值(存在误差),如差距较大建议对目标表执行ANALYZA TABLE。 库名,表名中包含保留特殊字符时无法正常统计,包括“/”和“#p#p”。 目前只支持RDS for MySQL 5.7和8.0版本。 实例内存大于85%或者实例总计表数量超过5万时,为了不影响实例,不会采集数据。 图6 TOP 50库 单击“查看趋势”,可以查看近7天、近30天、自定义时间段(时间跨度在30天内)的数据量变化情况。 图7 查看数据趋势
  • 磁盘空间分布 支持查看实例磁盘空间的分布情况。 图5 磁盘空间分布 如果磁盘空间(包括数据空间、Binlog、Slowlog、Relaylog、Audit log、临时空间、其他空间)对应的文件总数超过1万个,界面上不会展示磁盘空间分布数据和空间变化趋势,避免采集大量文件信息消耗性能,请联系技术支持处理。 数据空间:用户数据(包括临时表文件)占用的磁盘空间。 Binlog:Binlog日志占用的磁盘空间。 Slowlog:慢日志占用的磁盘空间。 Relaylog:Relaylog日志占用的磁盘空间。 Audit log:审计日志占用的磁盘空间。 临时空间:临时文件占用的磁盘空间。 其他空间:数据库生成的ib_buffer_pool、ib_doublewrite、error.log等文件占用的磁盘空间。
  • 注意事项 使用该功能前,必须要确保跨Region数据库实例之间的网络打通,可以使用云连接 CC产品完成跨区域VPC网络连通。 使用该功能前,确保主实例和灾备实例状态正常,主实例和灾备实例在不同Region上,且主实例为主备实例,灾备实例为单机实例。 灾备实例的CPU和内存规格以及磁盘容量要大于或等于主实例的规格以及磁盘容量。 搭建容灾后,灾备实例支持变更CPU和内存规格,如需使用该功能,请联系客服申请。 修改主实例的端口或内网地址后需要重新搭建灾备关系。 RDS for PostgreSQL 12及以上支持建立跨Region容灾关系。 主实例参数被修改后,灾备实例无法同步修改该参数,需结合业务自行修改灾备实例参数。
  • 支持查看的任务 表1 支持查看的任务 任务类型 分类 任务名称 即时任务 创建实例 创建SQL Server实例、创建SQL Server只读实例。 实例生命周期 重启SQL Server实例、停止SQL Server实例、开启SQL Server实例、删除SQL Server实例。 变更实例 扩容SQL Server实例、SQL Server实例主备倒换、克隆SQL Server实例、SOL Server单实例转主备、SQL Server规格变更、SQL Server磁盘类型变更、SQL Server实例迁移可用区、SQL Server修改字符集。 连接管理 SQL Server创建公网 域名 、SQL Server修改公网域名、SQL Server创建内网域名、SQL Server修改内网域名、SQL Server实例绑定弹性公网IP、SQL Server实例解绑弹性公网IP、SQL Server更新SSL证书。 备份与恢复 SQL Server恢复到新实例、SQL Server恢复到已有实例。 开启FileStream存储 SQL Server开启FileStream。 安全与加密 SQL Server开启TDE、SQL Server滚动TDE证书。 定时任务 实例生命周期 开启SQL Server实例、SQL Server实例系统升级。
  • 操作场景 您可以复制您创建的自定义数据库参数模板。当您已创建一个数据库参数模板,并且想在新的数据库参数模板中包含该组中的大部分自定义参数和值时,复制参数模板是一个方便的解决方案。您还可以导出某数据库实例应用的参数列表,生成一个新的参数模板,供您后期使用。 复制数据库参数模板之后,新参数模板可能不会立即显示,建议您等待5分钟再使用。 您无法复制默认参数模板。不过,您可以创建基于默认参数模板的新参数模板。
  • 操作场景 随着业务数据的增加,原来申请的数据库磁盘容量可能会不足,需要为云数据库RDS实例进行扩容。实例扩容的同时备份空间也会随之扩大。 当实例处于“磁盘空间满”状态时,需扩容至磁盘空间使用率小于87%才可使实例处于可用状态,使数据库恢复正常的写入操作。 建议您设置“磁盘使用率”指标的告警规则,及时了解磁盘使用情况,起到预警作用,具体请参见设置告警规则。 磁盘扩容期间,服务不中断。云数据库RDS服务只支持扩容磁盘存储空间大小,不支持变更存储类型。
共100000条