华为云用户手册

  • 常见参数的修改 表1 常见参数的修改 参数名 描述 文档链接 time_zone 时区。当实例类型为只读实例时,请务必保证该参数的值与主实例上该参数的值保持一致。 如何修改时区 default_password_lifetime 定义了全局自动密码过期策略,单位为天。 RDS for MySQL密码过期策略 tx_isolation 指定默认的事务隔离等级。 如何修改云数据库RDS的事务隔离等级 character_set_server 服务器字符集。 使用utf8mb4字符集存储emoji表情到RDS for MySQ L实例 lower_case_table_names 如果设为0,表格名称被存储成固定并且表名称将是大小写敏感的。如果设为1,表格名称被存储成小写并且表名称将是大小写不敏感的。 RDS for MySQL如何设置表名是否区分大小写 group_concat_max_len 函数GROUP_CONCAT()结果的最大长度。 GROUP_CONCAT结果不符合预期 max_connections 允许同时连接的客户端总数。如果设定值为default,表示该参数随内存规格变化。 RDS数据库实例支持的最大数据连接数是多少
  • 准备工作 准备弹性云服务器或可公网访问云数据库RDS。 通过弹性云服务器连接云数据库RDS实例,需要创建一台弹性云服务器。 通过公网地址连接云数据库RDS实例,需具备以下条件。 先对云数据库RDS实例绑定公网地址,如何绑定公网地址,请参见绑定弹性公网IP。 保证本地设备可以访问云数据库RDS绑定的公网地址。 在1中的弹性云服务器或可访问云数据库RDS的设备上,安装PostgreSQL客户端。 请参见如何安装PostgreSQL客户端。 该弹性云服务器或可访问云数据库RDS的设备上需要安装和RDS for PostgreSQL数据库服务端相同版本的数据库客户端,PostgreSQL数据库或客户端会自带pg_dump和psql工具。
  • 前提条件 云数据库RDS正常运行。 故障、删除状态的云数据库RDS,无法在 云监控 中查看其监控指标。当云数据库RDS再次启动或恢复后,即可正常查看。 故障24小时及以上的云数据库RDS,云监控将默认该云数据库RDS不存在,并在监控列表中删除,不再对其进行监控,但告警规则需要用户手动清理。 云数据库RDS已正常运行一段时间(约10分钟)。 对于新创建的云数据库RDS,需要等待一段时间,才能查看上报的监控数据和监控视图。
  • 迁移方案总览 表1 SQL Server迁移方案 源数据库类型 数据量 一次性或持续 应用程序停机时间 迁移方式 文档链接 RDS for SQL Server 中 一次性 一段时间 使用DAS导出数据,再导入到RDS for SQL Server数据库。 使用DAS的导出和导入功能迁移RDS for SQL Server数据 任何 一次性或持续 最低 使用DRS将源库数据备份迁移到RDS for SQL Server数据库。 将RDS for SQL Server备份迁移到RDS for SQL Server 任何 一次性或持续 最低 使用DRS将RDS for SQL Server同步到RDS for SQL Server数据库。 将RDS for SQL Server同步到RDS for SQL Server 本地SQL Server 任何 一次性或持续 最低 使用DRS将本地SQL Server备份迁移到RDS for SQL Server数据库。 将本地SQL Server备份迁移到RDS for SQL Server 任何 一次性或持续 最低 使用DRS将本地SQL Server同步到RDS for SQL Server数据库。 将本地SQL Server同步到RDS for SQL Server 其他云上SQL Server数据库 任何 一次性或持续 最低 使用DRS将其他云上SQL Server备份迁移到RDS for SQL Server数据库。 其他云SQL Server备份迁移到RDS for SQL Server 任何 一次性或持续 最低 使用DRS将其他云上SQL Server同步到RDS for SQL Server数据库。 将其他云SQL Server同步到RDS for SQL Server
  • 约束限制 本章节仅使用从华为云RDS for MySQL 5.6、5.7、8.0版本实例下载的全量备份文件在本地恢复到对应版本自建数据库,不包括增量备份的恢复操作。 自建MySQL数据库内核小版本需与华为云RDS for MySQL版本号一致。 通过mysql -V或mysqld --version命令,可以查看MySQL内核版本。 仅支持恢复到本地为Linux操作系统的数据库。 由于开源备份工具目前仅支持x86包,不支持ARM,因此,不支持ARM的E CS 自建库使用本章操作进行备份文件恢复。您可以使用DRS迁移或数据导出导入的方式,具体请参见数据迁移。 全量备份文件恢复到自建数据库将使用以下三个软件: MySQL数据库 qpress工具 Percona XtraBackup工具 请使用对应版本工具,否则将无法恢复成功。 表1 版本对应关系 数据库 qpress Percona XtraBackup MySQL 8.0 qpress 7 XtraBackup 8.0.0及以上版本 MySQL 5.7、MySQL 5.6 qpress 7 XtraBackup 2.4.9及以上版本 在进行恢复阶段请勿在本地自建数据库运行其他业务。
  • 使用限制 使用场景的限制: 部分场景下增加、删除、重命名(MySQL 8.0.28之后)列。 设置或删除列的默认值。 修改ENUM或SET列的定义。 更改索引的类型(BTREE | HASH)。 增加或删除虚拟列。 表名重命名。 添加或删除列的限制: 不支持有其他INSTANT语句在同一行的操作在同一条语句的情况。 新增列将会放到最后,不支持改变列的顺序(MySQL 8.0.29后支持任意位置加列)。 不支持在行格式为COMPRESSED的表上快速加列或删除。 不支持在已经有全文索引的表上快速加列或删除。 不支持在临时表上快速加列或删除。 重命名列的限制: 不支持重命名被其他表引用的列。 不支持重命名列的操作与生成或者删除虚拟列在同一个语句中。 修改ENUM或SET列的限制: 不支持ENUM或者SET列数据类型占用的存储空间发生变化。 增加或删除虚拟列的限制: 不支持对分区表的增加或删除操作。
  • 新的数据字典信息 在执行instant add column的过程中,MySQL会将第一次intant add column之前的字段个数以及每次加的列的默认值保存在tables系统表的“se_private_data”字段中。 dd::Table::se_private_data::instant_col:第一次instant add column之前表上的列的个数。 dd::Column::se_private_data::default_null:标识instant column的默认值是否为NULL。 dd::Column::se_private_data::default:当instant column的默认值不是NULL时存储具体的默认值,column default value需要从InnoDB类型byte转换成“se_private_data”中的char类型。
  • 背景 通常情况下大表的DDL操作都会对业务产生很大的影响,需要在业务低峰期做。MySQL 5.7支持原生DDL工具Copy和Inplace算法、以及开源DDL工具gh-ost,减少了DDL期间DML操作被阻塞的情况。但是大表DDL仍然需要花费很长时间。 instant秒级加列算法,让添加列的时候不在需要rebuild整个表,只需要在表的metadata中记录新增列的基本信息即可,可以很快执行完成。但是目前支持的DDL操作有限。
  • 载入数据字典 MySQL从系统表读取表定义时,会将instant column相关的信息载入到InnoDB的表对象“dict_table_t”和索引对象“dict_index_t”中。 dict_table_t::n_instant_cols:第一次instant add column之前的非虚拟字段个数(包含系统列)。 dict_index_t::instant_cols:用于标示是否存在Instant column。 dict_index_t::n_instant_nullable:第一次instant add column之前的可为NULL的字段个数。 dict_col_t::instant_default:存储instant列默认值及其长度。
  • 记录格式 为了支持instant add column,针对COMPACT和DYNAMIC类型引入了新的记录格式,主要为了记录字段的个数信息。 如果没有执行过instant add column操作,则表的行记录格式保持不变。 如果执行过instant add column操作,则所有新的记录都会设置一个特殊的标记,同时在记录内存储字段的个数。 INSTANT_FLAG使用了info bits中的一个bit位,如果记录是第一次instant add column之后插入的,该flag被设置为1。 图1 记录格式
  • 操作步骤 执行以下命令,进行数据库复制。 EXEC msdb.dbo.rds_copy_database '@DBName_Source', '@DBName_Target'; @ DBName_Source:源数据库,指定要备份的数据库名。 @ DBName_Target:目标数据库,指定要恢复的数据库名。 将数据库testDB_1复制出一个新的数据库testDB_2,示例如下: EXEC msdb.dbo.rds_copy_database 'testDB_1', 'testDB_2'; 数据库版本为RDS for SQL Server 2012(标准版、企业版、Web版)的用户,请使用名称为msdb.dbo.rds_copy_database_2012的存储过程进行数据库备份。 数据库版本为RDS for SQL Server 2016(标准版、企业版、Web版)的用户,请使用名称为msdb.dbo.rds_copy_database_2016的存储过程进行数据库备份。 数据库版本为RDS for SQL Server 2017企业版的用户,请使用名称为msdb.dbo.rds_copy_database_2017的存储过程进行数据库备份。
  • 前提条件 成功连接RDS for SQL Server实例。关于连接华为云关系型数据库实例,请参考连接实例。 执行此存储过程的必须是拥有[CREATE ANY DATABASE]权限的用户。如果不具备此权限的用户尝试执行该存储过程,系统将会如下提示: Database restores can only be performed by database logins with [CREATE ANY DATABASE] permissions. 对自定义数据库进行备份,执行账户必须是该数据库的“db_owner”或“db_backupoperator”角色组成员。如不具备相应权限的用户对数据库进行备份,系统将会有如下提示: Database backups can only be performed by members of db_owner or db_backupoperator roles in the source database
  • 开启CBR备份的约束限制 备份时长与实例数据量大小成正比,如果数据量较大,可联系客服开通CBR快照备份功能提高备份速率。 开启CBR备份后,备份策略为快照备份,已有的自动备份和手动备份的恢复功能正常使用。 开启CBR备份后,当数据库实例被删除时,实例的自动备份将被同步删除,手动备份不会被删除。 实例在进行CBR快照备份时,不支持下发DDL操作,如果有正在执行的DDL操作,会在DDL操作结束后再进行快照备份。 开启CBR备份后,下一次生成的全量备份为快照备份,使用该备份进行恢复,为CBR快照恢复。
  • 未开启CBR备份的约束限制 账户余额大于等于0元,才可创建手动备份。 当数据库实例被删除时,实例的自动备份将被同步删除,手动备份不会被删除。 实例中表的数量会影响备份速度,表数量上限为50万。 全量备份时,会连接备份所属的实例,校验该实例的状态。如果校验存在以下两种情况,则校验不通过,会自动进行校验重试。如果重试结束后,仍然无法满足,则备份失败。 备份所属的实例正在执行DDL操作。 从备份所属的实例获取备份锁失败。
  • 准备工作 查看待升级的云数据库 RDS for PostgreSQL实例信息。 在“实例管理”页面,单击待升级实例名称,进入待升级实例基本信息页面。 在“基本信息”页面中,可以查看到实例所属区域、可用区、虚拟私有云、子网、安全组。 准备弹性云服务器。 通过弹性云服务器连接云数据库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。
  • 解决方法 SQL阻塞 当定位到阻塞的SQL后,可以通过SELECT pg_terminate_backend($PID);结束该进程。 结束后再执行1,进一步确认是否还存在其他锁冲突的情况。 系统资源使用率高,导致SQL运行时间长 优化业务,减少业务并发。 缺少索引导致SQL执行慢 重新创建索引,走索引查询。 SQL中使用排序导致IO执行时间长 增大“work_mem”参数值,减少排序的IO执行时间。
  • 实例监控指标 RDS for MariaDB实例性能监控指标,如下表所示。 表1 RDS for MariaDB实例支持的监控指标 索引 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) 1 rds001_cpu_util CPU使用率 该指标用于统计测量对象的CPU使用率,以比率为单位。 0-100% RDS for MariaDB实例 1分钟 2 rds002_mem_util 内存使用率 该指标用于统计测量对象的内存使用率,以比率为单位。 0-100% RDS for MariaDB实例 1分钟 3 rds003_iops IOPS 该指标用于统计当前实例,单位时间内系统处理的I/O请求数量(平均值)。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 4 rds004_bytes_in 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 5 rds005_bytes_out 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 6 rds006_conn_count 数据库总连接数 该指标用于统计试图连接到MariaDB服务器的总连接数,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟 7 rds007_conn_active_count 当前活跃连接数 该指标用于统计当前打开的连接的数量,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟 8 rds008_qps QPS 该指标用于统计SQL语句查询次数,含存储过程,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 9 rds009_tps TPS 该指标用于统计事务执行次数,含提交的和回退的,以次/秒为单位。 ≥ 0 transactions/s RDS for MariaDB实例 1分钟 10 rds010_innodb_buf_usage 缓冲池利用率 该指标用于统计空闲的页与InnoDB缓存中缓冲池页面总数的比例,以比率为单位。 0-1 RDS for MariaDB实例 1分钟 11 rds011_innodb_buf_hit 缓冲池命中率 该指标用于统计读命中与读请求数比例,以比率为单位。 0-1 RDS for MariaDB实例 1分钟 12 rds012_innodb_buf_dirty 缓冲池脏块率 该指标用于统计InnoDB缓存中脏数据与InnoDB缓存中使用的页比例,以比率为单位。 0-1 RDS for MariaDB实例 1分钟 13 rds013_innodb_reads InnoDB读取吞吐量 该指标用于统计Innodb平均每秒读字节数,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 14 rds014_innodb_writes InnoDB写入吞吐量 该指标用于统计Innodb平均每秒写字节数,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 15 rds015_innodb_read_count InnoDB文件读取频率 该指标用于统计Innodb平均每秒从文件中读的次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 16 rds016_innodb_write_count InnoDB文件写入频率 该指标用于统计Innodb平均每秒向文件中写的次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 17 rds017_innodb_log_write_req_count InnoDB日志写请求频率 该指标用于统计平均每秒的日志写请求数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 18 rds018_innodb_log_write_count InnoDB日志物理写频率 该指标用于统计平均每秒向日志文件的物理写次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 19 rds019_innodb_log_fsync_count InnoDB日志fsync()写频率 该指标用于统计平均每秒向日志文件完成的fsync()写数量,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 20 rds020_temp_tbl_rate 临时表创建速率 该指标用于统计每秒在硬盘上创建的临时表数量,以个/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 21 rds021_myisam_buf_usage Key Buffer利用率 该指标用于统计MyISAM Key buffer的利用率,以比率为单位。 0-1 RDS for MariaDB实例 1分钟 22 rds022_myisam_buf_write_hit Key Buffer写命中率 该指标用于统计MyISAM Key buffer写命中率,以比率为单位。 0-1 RDS for MariaDB实例 1分钟 23 rds023_myisam_buf_read_hit Key Buffer读命中率 该指标用于统计MyISAM Key buffer读命中率,以比率为单位。 0-1 RDS for MariaDB实例 1分钟 24 rds024_myisam_disk_write_count MyISAM硬盘写入频率 该指标用于统计向磁盘写入索引的次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 25 rds025_myisam_disk_read_count MyISAM硬盘读取频率 该指标用于统计从磁盘读取索引的次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 26 rds026_myisam_buf_write_count MyISAM缓冲池写入频率 该指标用于统计向缓冲池写入索引的请求次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 27 rds027_myisam_buf_read_count MyISAM缓冲池读取频率 该指标用于统计从缓冲池读取索引的请求次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 28 rds028_comdml_del_count Delete语句执行频率 该指标用于统计平均每秒Delete语句执行次数,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 29 rds029_comdml_ins_count Insert语句执行频率 该指标用于统计平均每秒Insert语句执行次数,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 30 rds030_comdml_ins_sel_count Insert_Select语句执行频率 该指标用于统计平均每秒Insert_Select语句执行次数,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 31 rds031_comdml_rep_count Replace语句执行频率 该指标用于统计平均每秒Replace语句执行次数,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 32 rds032_comdml_rep_sel_count Replace_Selection语句执行频率 该指标用于统计平均每秒Replace_Selection语句执行次数,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 33 rds033_comdml_sel_count Select语句执行频率 该指标用于统计平均每秒Select语句执行次数。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 34 rds034_comdml_upd_count Update语句执行频率 该指标用于统计平均每秒Update语句执行次数,以次/秒为单位。 ≥ 0 queries/s RDS for MariaDB实例 1分钟 35 rds035_innodb_del_row_count 行删除速率 该指标用于统计平均每秒从InnoDB表删除的行数,以行/秒为单位。 ≥ 0 rows/s RDS for MariaDB实例 1分钟 36 rds036_innodb_ins_row_count 行插入速率 该指标用于统计平均每秒向InnoDB表插入的行数,以行/秒为单位。 ≥ 0 rows/s RDS for MariaDB实例 1分钟 37 rds037_innodb_read_row_count 行读取速率 该指标用于统计平均每秒从InnoDB表读取的行数,以行/秒为单位。 ≥ 0 rows/s RDS for MariaDB实例 1分钟 38 rds038_innodb_upd_row_count 行更新速率 该指标用于统计平均每秒向InnoDB表更新的行数,以行/秒为单位。 ≥ 0 rows/s RDS for MariaDB实例 1分钟 39 rds039_disk_util 磁盘利用率 该指标用于统计测量对象的磁盘利用率,以比率为单位。 0-100% RDS for MariaDB实例 1分钟 40 rds047_disk_total_size 磁盘总大小 该指标用于统计测量对象的磁盘总大小。 40GB~4000GB RDS for MariaDB实例 1分钟 41 rds048_disk_used_size 磁盘使用量 该指标用于统计测量对象的磁盘使用大小。 0GB~4000GB RDS for MariaDB实例 1分钟 42 rds049_disk_read_throughput 硬盘读吞吐量 该指标用于统计每秒从硬盘读取的字节数。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 43 rds050_disk_write_throughput 硬盘写吞吐量 该指标用于统计每秒写入硬盘的字节数。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 44 rds072_conn_usage 连接数使用率 该指标用于统计当前已用的MariaDB连接数占总连接数的百分比。 0-100% RDS for MariaDB实例 1分钟 45 rds073_replication_delay 实时复制时延 该指标为备库或只读与主库的实时延迟,对应seconds_behind_master。该值为实时值。 ≥ 0 s RDS for MariaDB实例 1分钟 5秒 46 rds074_slow_queries 慢日志个数统计 该指标用于展示每分钟MariaDB产生慢日志的数量。 ≥ 0 RDS for MariaDB实例 1分钟 47 rds075_avg_disk_ms_per_read 硬盘读耗时 该指标用于统计某段时间平均每次读取磁盘所耗时间。 ≥ 0 ms RDS for MariaDB实例 1分钟 48 rds076_avg_disk_ms_per_write 硬盘写耗时 该指标用于统计某段时间平均写入磁盘所耗时间。 ≥ 0 ms RDS for MariaDB实例 1分钟 49 rds077_vma VMA数量 该指标用于监控RDS进程的虚拟内存区域大小 ≥ 0 counts RDS for MariaDB实例 1分钟 50 rds078_threads 进程中线程数量 监控RDS进程中的线程数量,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟 51 rds079_vm_hwm 进程的物理内存占用峰值 监控RDS进程的物理内存占用峰值,以KB为单位。 ≥ 0 KB RDS for MariaDB实例 1分钟 52 rds080_vm_peak 进程的虚拟内存占用峰值 监控RDS进程的虚拟内存占用峰值,以KB为单位。 ≥ 0 KB RDS for MariaDB实例 1分钟 53 rds082_semi_sync_tx_avg_wait_time 事务平均等待时间 监控半同步复制模式下平均等待时间,以微秒为单位。 ≥ 0 μs RDS for MariaDB实例 1分钟 54 rds173_replication_delay_avg 平均复制时延 该指标为备库或只读与主库的平均延迟,对应seconds_behind_master ≥ 0 s RDS for MariaDB实例 1分钟 55 rds_buffer_pool_wait_free 缓冲池空闲页等待次数 该指标用于统计InnoDB缓冲池空闲页等待次数 ≥ 0 counts RDS for MariaDB实例 1分钟 56 rds_bytes_recv_rate 数据库每秒接受字节 该指标用于统计数据库每秒接收字节,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 57 rds_bytes_sent_rate 数据库每秒发送字节 该指标用于统计数据库每条发送字节,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 58 rds_conn_active_usage 活跃连接数使用率 该指标统计活跃连接数占最大连接数的比率,以比率为单位。 0-100% RDS for MariaDB实例 1分钟 59 rds_created_tmp_tables_rate 每秒创建临时表数 该指标用于统计每秒创建临时表数,以个/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 60 rds_innodb_buffer_pool_pages_flushed_rate innodb_buffer_pool每秒页面刷新数 该指标用于统计innodb_buffer_pool每秒页面刷新数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 61 rds_innodb_buffer_pool_read_requests_rate innodb_buffer_pool每秒读请求次数 该指标用于统计innodb_buffer_pool每秒读请求次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 62 rds_innodb_buffer_pool_write_requests_rate innodb_buffer_pool每秒写请求次数 该指标用于统计innodb_buffer_pool每秒写请求次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 63 rds_innodb_lock_waits 等待行锁事务数 该指标用于统计当前等待行锁的Innodb事务数,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟 64 rds_innodb_log_waits_count 日志等待次数 该指标用于统计日志等待次数,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟 65 rds_innodb_log_waits_rate 因log buffer不足导致等待flush到磁盘次数 该指标用于统计因log buffer不足导致等待flush到磁盘次数,以次/秒为单位。 ≥ 0 counts/s RDS for MariaDB实例 1分钟 66 rds_innodb_os_log_written_rate 平均每秒写入redo log的大小 该指标用于统计平均每秒写入redo log的大小,以字节/秒为单位。 ≥ 0 bytes/s RDS for MariaDB实例 1分钟 67 rds_innodb_pages_read_rate innodb平均每秒读取的数据量 该指标用于统计innodb平均每秒读取的数据量,以页/秒为单位。 ≥ 0 Pages/s RDS for MariaDB实例 1分钟 68 rds_innodb_pages_written_rate innodb平均每秒写入的数据量 该指标用于统计innodb平均每秒写入的数据量,以页/秒为单位。 ≥ 0 Pages/s RDS for MariaDB实例 1分钟 69 rds_innodb_row_lock_current_waits 当前行锁等待数 该指标用于统计innodb当前行锁等待数,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟 70 rds_innodb_row_lock_time_avg 行锁平均等待时间 该指标用于统计行锁平均等待时间,以毫秒为单位。 ≥ 0 ms RDS for MariaDB实例 1分钟 71 rds_wait_thread_count 等待线程数 该指标用于统计等待线程数量,以个为单位。 ≥ 0 counts RDS for MariaDB实例 1分钟
  • 约束限制 开启或关闭实例级别的FileStream特性需要重启实例,重启过程大致需要3~5分钟,重启过程中会中断业务,实例将不可用,请谨慎操作。 目前仅支持单机实例、2017企业版集群实例、2019企业版集群实例、2022企业版集群实例开启或关闭该特性。 开启并创建该特性数据库后,不支持关闭。如需关闭,请先删除该特性数据库。 目前不支持通过V3接口创建FileStream特性的数据库。通过API接口创建数据库的详细内容请参见SQL Server创建数据库。 开启FileStream后不支持单机转主备。 开启FileStream后,期间所产生的备份文件只允许恢复到已有实例(非原实例)或者新实例,且恢复的目标实例只能是单机实例或2017企业版集群或2019企业版集群实例。 恢复到已有实例(非原实例):已有实例必须已提前开启FileStream。 恢复到新实例:新实例将自动同步开启FilesStream。
  • 相关参数 filestream access level 云数据库默认值:“0” 作用:文件流访问级别选项。可以用于更改此RDS for SQL Server实例的FILESTREAM访问级别。 参数值:如需修改参数值,详细步骤请参见修改RDS for SQL Server实例参数。 0:表示关闭。 1:表示允许T-SQL访问。 2:允许完全访问。 影响: 开启FileStream特性后,该参数只允许修改1或2才能生效。 关闭FileStream特性后,该参数只能修改0生效。
  • 注意事项 当有对应的小版本更新时(定期同步开源社区问题、漏洞修复等),请及时升级小版本。 升级数据库内核小版本会重启RDS for MariaDB实例,服务可能会出现闪断,请您尽量在业务低峰期执行该操作,或确保您的应用有自动重连机制。 升级内核小版本时,如果RDS实例为DRS任务的源端,DRS可能会拉取不到RDS实例的日志;如果RDS实例为DRS任务的目标端,DRS可能会写不进目标库。 建议您在升级内核小版本前先确认RDS实例Binlog的保留时间: 如果Binlog在保留时间内,待内核小版本升级完成后,DRS任务会自动重启。 如果Binlog不在保留时间内,您需要重新配置或创建DRS任务。 升级内核小版本后,实例会升级到新的内核小版本,无法降级。如果升级失败,将会自动回退到原版本。 小版本升级过程中禁止event的DDL操作,如create event、drop event和alter event。
  • 功能列表 智能DBA支持以下功能,详情请参见表1。 表1 功能说明 功能 描述 相关文档 实例概览 提供数据库整体运行情况,包括告警统计、资源使用情况和重点性能指标,多方面实时展示实例的运行状态。基于运行数据结合智能算法对实例进行健康智能诊断,并对异常项提供解决方法与使用建议。 查看实例运行情况 实时会话 提供当前数据库会话快照查询,并支持排序过滤展示。可基于用户、访问主机、库等多维度快速过滤识别到自定义慢SQL会话、活跃会话等。KILL会话与SQL限流功能应对紧急实例恢复,保障数据库的可用性。 管理实时会话 实时性能 展示数据库实例各项关键指标,并提供日期对比功能,方便查看周期业务以及指标变化情况,及时发现异常。秒级监控有助于精准定位问题。 查看实例性能指标 容量预估 数据库实例在使用过程中,当前磁盘空间数据与日志的占比以及历史上涨情况往往是用户关心的重点。智能DBA助手提供了容量预估功能,可以方便地查看磁盘空间概况与分布,并通过历史数据结合智能算法提供了空间预估等功能,尽早发现空间不足的情况并及时避免。此外还提供了智能扩容、表智能诊断、TOP50库表协助运维功能。 管理磁盘容量 锁&事务 该模块从元数据锁以及InnoDB锁两个维度分析当前业务锁状态。通过元数据锁视图与InnoDB锁拓扑图管理阻塞事务,协助用户优化自身业务,减少锁冲突。 管理锁&事务 慢SQL 提供指定时间段内的慢SQL分析功能。从用户、IP、SQL模板等进行多维统计,展示统计结果并支持指定排序,识别慢SQL的精准来源,方便用户快速优化业务。 查看实例慢SQL 全量SQL 在实例开启全量SQL的前提下,该模块基于全量SQL数据进行分析,并提供多维度的分析、搜索、过滤的能力,帮助用户全面洞察SQL,TOP SQL快速定位异常原因,保障数据库稳定运行。 查看实例TOP SQL 新增SQL洞察任务 SQL限流 针对新上业务不能及时发包优化的SQL和突发流量导致CPU等资源100%瓶颈的场景,SQL限流功能通过控制既定SQL规则的并发度协助业务侧及时流控,保证核心业务的稳定运行。 新建SQL限流规则 自治限流 该功能自动检测数据库的CPU利用率、活跃会话数等异常,根据业务优先级进行限流处理,保证核心业务的稳定运行。 用户可以根据业务情况,按照数据库或者用户进行限流。将非核心数据库或非核心用户业务配置为限流对象,可以保障核心业务不受影响。 配置自治限流 诊断日报 对前一日实例状态的汇总展示,包括以上部分模块的重点指标:慢SQL分析、全量SQL分析、性能与磁盘分析。支持用户下载和订阅分析报告。建议每天定时对实例进行诊断,以保证实例上业务的正常运转。 管理诊断日报 异常快照 智能判断实例异常,记录会话快照、锁/事务等快照信息,方便后续问题定位。 管理异常快照
  • 使用场景 紧急恢复实例场景中,通过设置慢会话阈值帮助用户快速识别异常会话并手动结束该会话,使得数据库恢复正常,提高数据库的可用性。 新业务中出现并发数过高的SQL语句导致实例不稳定场景中,通过设置SQL限流规则功能控制并发数过高的SQL语句,保证实例的稳定性。 出现“磁盘空间满”问题时,通过查看磁盘空间功能实时了解磁盘空间概况与分布。您可以设置存储空间自动扩容,在实例存储空间达到阈值时,会触发自动扩容,详见存储空间自动扩容。 在突发流量过高、异常读写等业务场景中,通过配置自治限流功能控制活跃连接数来保障核心业务访问的可用性。
  • 功能描述 智能DBA(Database Administrator,数据库管理员)功能主要面向开发人员和数据库管理人员,提供数据库运维和智能诊断的可视化界面,提升数据库的运维能力与易用性。通过告警统计、资源使用情况、健康智能诊断、性能指标数据、容量预估等维度分析,帮助用户快速定位故障,实时了解实例运行情况。 如果要在RDS界面使用智能DBA助手功能, IAM 子账号必须要有RDS FullAccess、DAS FullAccess、DAS Administrator、 CES FullAccess权限。如果需要添加权限,请参见创建用户并授权使用RDS。
  • 服务端加密简介 云数据库RDS服务的管理控制台目前支持 数据加密 服务(Data Encryption Workshop,简称DEW)托管密钥的服务端加密,即使用数据加密服务提供的密钥进行服务端加密。 数据加密服务通过使用硬件安全模块 (Hardware Security Module,简称HSM) 保护密钥安全的托管,帮助用户轻松创建和控制加密密钥。用户密钥不会明文出现在硬件安全模块之外,避免密钥泄露。对密钥的所有操作都会进行访问控制及日志跟踪,提供所有密钥的使用记录,满足监督和合规性要求。 当启用服务端加密功能后,用户创建实例和扩容磁盘时,磁盘数据会在服务端加密成密文后存储。用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。
  • 前提条件 云数据库RDS正常运行。 故障、删除状态的云数据库RDS,无法在云监控中查看其监控指标。当云数据库RDS再次启动或恢复后,即可正常查看。 故障24小时及以上的云数据库RDS,云监控将默认该云数据库RDS不存在,并在监控列表中删除,不再对其进行监控,但告警规则需要用户手动清理。 云数据库RDS已正常运行一段时间(约10分钟)。 对于新创建的云数据库RDS,需要等待一段时间,才能查看上报的监控数据和监控视图。
  • 解决方法 分析慢SQL日志以及CPU使用率指标来定位效率低的查询,再优化查询效率低的语句。 查看慢SQL日志来确定是否存在运行缓慢的SQL查询以及各个查询的性能特征(如果有),从而定位查询运行缓慢的原因。 查询RDS for MariaDB日志,请参见查看或下载慢日志。 查看数据库实例的CPU使用率指标,协助定位问题。 请参见查看监控指标。 创建只读实例专门负责查询。减轻主实例负载,分担数据库压力。 多表关联查询时,关联字段要加上索引。 尽量避免用select*语句进行全表扫描,可以指定字段或者添加where条件。
  • 事件监控支持的事件说明 表1 资源异常事件 事件来源 事件名称 事件ID 事件级别 事件说明 处理建议 事件影响 RDS 创建实例业务失败 createInstanceFailed 重要 创建实例失败产生的事件,一般是磁盘个数,配额大小不足,底层资源耗尽导致。 检查磁盘个数、配额大小,释放资源后重新创建。 无法创建数据库实例。 跨区域备份同步异常 crossRegionBackupSyncFailed 次要 一般是由于底层网络和复制资源出现瓶颈等原因导致。 如果事件一直不停上报,提交工单调整底层资源分配。 跨区域备份同步异常,目标区域不能使用备份文件进行恢复。 实例全量备份失败 fullBackupFailed 重要 单次全量备份失败产生的事件,不影响以前成功备份的文件,但会对“恢复到指定时间点”的功能有一些影响,导致“恢复到指定时间点”时增量备份的恢复时间延长。 重新执行一次手工备份。 备份失败。 主备切换异常 activeStandBySwitchFailed 重要 主备切换异常是由于网络、物理机有某种故障导致备机没有接管主机的业务,短时间内会恢复到原主机继续提供服务。 检查应用和数据库之间的连接是否重新建立了连接。 无 复制状态异常 abnormalReplicationStatus 重要 出现”复制状态异常“事件通常有两种情况: 1、主备之间复制时延太大(一般在写入大量数据或执行大事务的时候出现),在业务高峰期容易出现阻塞。 2、主备间的网络中断,导致主备复制异常。 提交工单。 但不会导致原来单实例的读写中断,客户的应用是无感知的。 复制状态异常已恢复 replicationStatusRecovered 重要 即复制时延已回到正常范围内,或者主备之间的网络通信恢复。 不需要处理。 无 实例运行状态异常 faultyDBInstance 重要 由于灾难或者物理机故障导致单机或者主实例故障时会上报本事件,属于关键告警事件。 检查是否有设置自动备份策略,并且提交工单。 可能导致数据库服务不可用。 实例运行状态异常已恢复 DBInstanceRecovered 重要 针对灾难性的故障,RDS有高可用工具会自动进行备机重建,重建完成之后即会上报本事件。 不需要处理。 无 单实例转主备实例失败 singleToHaFailed 重要 创建备机时或备机创建完成后主备机之间配置同步发生故障时会产生此事件,一般是由于备节点所在数据中心资源不足导致。 提交工单。 “单实例转主备实例失败”不会导致原来单实例的读写中断,客户的应用是无感知的。 数据库进程重新启动 DatabaseProcessRestarted 重要 一般是内存不足、负载过高导致数据库进程停止 通过云监控的数据,查看是否有内存飙升、cpu长期过高、磁盘满使用率不足等的情况,可以选择提升CPU内存规格或者优化业务逻辑 进程挂掉的时候,业务中断。RDS服务会自动拉起进程,尝试恢复业务。 实例磁盘满 instanceDiskFull 重要 一般是由于数据空间占用过大导致。 对实例进行扩容操作。 实例由于磁盘空间满将会变成只读实例,数据库不可进行写入操作。 实例磁盘满恢复 instanceDiskFullRecovered 重要 实例磁盘状态恢复正常。 不需要处理。 实例解除只读状态,恢复写操作。 MySQL实例连接数满 mysqlConnectionsFull 重要 由于实例业务量冲高,导致连接数满,无法建立新连接。 调整连接数到合理值。 通过限流等方式降低负载。 变更到更高规格,扩大连接数上限。 实例无法建立新连接。 MySQL实例连接数满已恢复 mysqlConnectionsFullRecovered 重要 实例连接数已恢复正常 实例连接数已恢复正常,请确认业务是否正常运行。 实例连接数已恢复正常。 MySQL负载高导致新建连接异常 highLoadInstanceConnectionsAbnormal 重要 由于CPU、内存、磁盘、网络带宽等资源不足,导致无法建立新连接或者建立的新连接异常 增加系统资源,例如增加CPU、内存、磁盘等。 调整MySQL配置,例如增加连接池大小、调整缓存大小等。 根据实际运行状态和业务需求,选择异常进程执行kill会话,结束会话,使数据库恢复正常。 实例新建连接异常。 MySQL负载高导致新建连接异常已恢复 highLoadInstanceConnectionsAbnormalRevocered 重要 负载高导致实例新建连接异常已恢复 负载高导致实例新建连接异常已恢复,请确认业务是否正常运行。 负载高导致实例新建连接异常已恢复。 kafka连接失败 kafkaConnectionFailed 重要 一般是由于网络波动或kafka服务端出现异常等原因导致。 检查网络状况和kafka服务端状态。 审计日志无法发送到kafka服务端。 数据库代理 数据库安全组未放通数据库代理地址 proxy_connection_failure_cause_security_group 重要 一般是由于数据库安全组未放通代理地址导致。 修改数据库所使用安全组规则放通代理地址。 通过代理访问的业务流量中断。 数据库代理与数据库连通性异常 proxy_connection_failure_to_db 重要 数据库代理与主库建立新连接失败,与只读库可能存在建立新连接失败。一般是由于数据库/数据库代理压力过大,或代理与数据库间网络异常。 观察数据库与数据库代理压力指标后(连接数、活跃连接数、CPU使用率)调整相应参数,压力指标正常情况下提工单处理。 通过代理访问的业务流量中断。 数据库代理与数据库只读库连通性异常 proxy_connection_failure_to_replica 一般 数据库代理与只读库建立新连接失败。一般是由于只读库压力过大,或代理与只读库间网络异常。 观察只读库压力指标后(连接数、活跃连接数、CPU使用率)调整相应参数,压力指标正常情况下提工单处理。 通过代理访问的业务读流量部分中断。 表2 操作类事件 事件来源 事件名称 事件ID 事件级别 事件说明 RDS 重置数据库管理员密码 resetPassword 重要 重置数据库管理员密码 集群扩容等操作 instanceAction 重要 磁盘扩容、规格变更 删除集群下的实例 deleteInstance 次要 删除集群下的实例 修改备份策略 setBackupPolicy 次要 修改备份策略 修改参数组 updateParameterGroup 次要 修改参数组 删除参数组 deleteParameterGroup 次要 删除参数组 重置参数组 resetParameterGroup 次要 重置参数组 修改数据库端口号 changeInstancePort 重要 修改数据库端口号 实例主备切换 PrimaryStandbySwitched 重要 实例主备切换 父主题: 事件监控
共100000条