华为云用户手册

  • 请求路由规则 只发往主节点 INSERT、UPDATE、DELETE、SELECT FOR UPDATE。 所有DDL操作(建表/库、删表/库、变更表结构、权限等)。 所有事务中的请求(事务拆分开启时部分读请求可能发送至只读节点,详见设置事务拆分)。 用户自定义函数。 存储过程。 Multi Statements。 使用到临时表的请求。 SELECT last_insert_id()。 所有对用户变量的查询和更改。 发往只读节点或主节点 非事务中的SELECT。 COM_STMT_EXECUTE命令。 总是发往所有节点 所有系统变量的更改。 USE命令。
  • 约束限制 仅SQL Server2017企业版和2019企业版的实例会产生自动差备文件。当备机强制升主,主机故障可能存在少量数据未同步,在修复原主机变为正常备机的过程中会对原主机做差异备份,备份当前所有自建数据库基于上次数据备份的差异数据。更多介绍请参见RDS for SQL Server自动差备是如何产生的。 若备份文件大于400MB,建议您使用OBS Browser+下载。 通过该方式下载备份文件不额外收取OBS公网流出流量费用。
  • 功能介绍 目前,云数据库RDS for MySQ L实例 支持只读实例和 开通读写分离 功能。 在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力,甚至对主业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以在某个区域中创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,以此增加应用的吞吐量。 创建只读实例后,您可以开通读写分离功能,通过RDS的读写分离连接地址,写请求自动访问主实例,读请求按照读权重设置自动访问各个只读实例。 未开通读写分离时,您需要在应用程序中分别配置主实例和每个只读实例的连接地址,才能实现将写请求发往主实例而将读请求发往只读实例。 只读实例为单个物理节点的架构(没有备节点),采用MySQL的原生复制功能,将主实例的更改同步到所有只读实例。只读实例跟主实例在同一区域,但可以在不同的可用区。
  • 单机版只读实例和高可用只读实例 只读实例帮助主实例分担读取密集型工作负荷,降低主实例的工作负荷。 只读实例与主实例之间采用异步复制方案,存在一定的复制延时,只读实例上的数据最终将与主实例上的数据一致。对于能够适应这种延时的场景,可以使用只读实例。 只读实例分为单机版只读实例和高可用只读实例: 单机版只读实例:推荐开启数据库代理功能,并购买单机版只读实例。当单个只读故障后,数据库代理可以将流量分担到其他可用只读实例或主实例。购买单机只读实例时,注意表库名的大小写敏感要与主实例保持一致。 高可用只读实例:当只读实例所在物理机故障后,备用只读实例自动顶替。购买高可用只读实例时,注意表库名的大小写敏感要与主实例保持一致。 推荐用法: 主实例下包含2个及以下只读实例时,高可用只读作用比较好。 主实例下包含2个以上只读实例时,建议开启数据库代理,获得更好的性价比。 当只读实例与主数据库之间复制异常后,单机版和高可用版只读都需要较长时间重建和恢复(取决于数据量)。
  • 功能特点 只读实例规格可以与主实例不一致。 建议只读实例规格大于等于主实例规格,否则易导致只读实例创建失败、延迟高、负载高等现象。 支持按需计费,购买方式灵活,按实际使用时长计费;也支持包年/包月计费,相对于按需计费提供更大的折扣,对于长期使用者,推荐该方式。 提供系统性能监控。 云数据库RDS提供近20个系统性能的监控视图,如磁盘容量、IOPS、连接数、CPU利用率、网络流量等,用户可以轻松查看实例的负载。
  • 功能限制 1个主实例最多可以创建10个只读实例。 不支持单独购买只读实例,需要购买主实例后才能购买只读实例。 不支持单独停止只读实例。停止主实例时,如果存在只读实例,会同时停止只读实例。 主实例、备实例及只读实例的数据都是一致的,暂不支持过滤库或者表不同步。 备份设置:不支持自动备份设置以及手动备份。只读实例没有备份文件,不会提供Binlog。 实例恢复:不支持通过备份文件或任意时间点创建只读实例,不支持通过备份集覆盖只读实例。 数据迁移:不支持将数据迁移至只读实例。 数据库管理:不支持创建和删除数据库。 账号管理:只读实例不提供创建账号权限。请在主实例上创建,请参见创建数据库账号。 回收站:不支持加入回收站管理。
  • 操作场景 安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求,并相互信任的弹性云服务器和云数据库RDS实例提供访问策略。 为了保障数据库的安全性和稳定性,在使用云数据库RDS实例之前,您需要设置安全组,开通需访问数据库的IP地址和端口。 通过弹性公网IP连接RDS实例时,需要为RDS所在安全组配置相应的入方向规则。 通过内网连接RDS实例时,设置安全组分为以下两种情况: E CS 与RDS实例在相同安全组时,默认ECS与RDS实例互通,无需设置安全组规则。 ECS与RDS实例在不同安全组时,需要为RDS和ECS分别设置安全组规则。 设置RDS安全组规则:为RDS所在安全组配置相应的入方向规则。 设置ECS安全组规则:安全组默认规则为出方向上数据报文全部放行,此时,无需对ECS配置安全组规则。当在ECS所在安全组为非默认安全组且出方向规则非全放通时,需要为ECS所在安全组配置相应的出方向规则。 本节主要介绍如何为RDS实例设置相应的入方向规则。 关于添加安全组规则的详细要求,可参考《虚拟私有云用户指南》的“添加安全组规则”章节。
  • 注意事项 因为安全组的默认规则是在出方向上的数据报文全部放行,同一个安全组内的弹性云服务器和云数据库RDS实例可互相访问。安全组创建后,您可以在安全组中定义各种访问规则,当云数据库RDS实例加入该安全组后,即受到这些访问规则的保护。 默认情况下,一个用户可以创建100个安全组。 默认情况下,一个安全组最多只允许拥有50条安全组规则。 一个RDS实例允许绑定多个安全组,一个安全组可以关联多个RDS实例。 为一个安全组设置过多的安全组规则会增加首包延时,因此,建议一个安全组内的安全组规则不超过50条。 当需要从安全组外访问安全组内的云数据库RDS实例时,需要为安全组添加相应的入方向规则。 为了保证数据及实例安全,请合理使用权限。建议使用最小权限访问,并及时修改数据库默认端口号(3306),同时将可访问IP地址设置为远程主机地址或远程主机所在的最小子网地址,限制远程主机的访问范围。 源地址默认的IP地址0.0.0.0/0是指允许所有IP地址访问安全组内的云数据库RDS实例。 关于添加安全组规则的详细要求,可参考《虚拟私有云用户指南》的“添加安全组规则”章节。
  • 操作背景 “default language”参数指定登录的默认语言,每种语言对应一个“langid”值,您可通过查询“sys.syslanguages”兼容性视图来获取“langid”的值。有关sys.syslanguages (Transact-SQL)介绍,请参见官方文档sys.syslanguages (Transact-SQL)。 更多介绍请参见官方文档配置默认语言服务器配置选项。 RDS for SQL Server支持修改默认语言,您可以根据业务需求修改创建的数据库参数模板中的“default language”参数值,来设置RDS for SQL Server默认语言。
  • 设置数据库级别的TDE加密功能 在开启数据库级别的TDE加密功能之前,请确保已成功开启实例级别的TDE加密功能。 连接目标实例。 请参考通过公网连接RDS for SQL Server实例、通过内网连接RDS for SQL Server实例及通过DAS连接RDS for SQL Server实例。 通过rds_tde存储过程开启、关闭或查询TDE加密功能。 exec master.dbo.rds_tde DatabaseName,TDE_Action DatabaseName:目标数据库名,取值可为null。 TDE_Action: 取值为“-1”,表示查询目标库加密信息。 如果“DatabaseName”取值为null,则返回所有库的加密状态。 取值为“0”,表示关闭目标库TDE加密功能。 取值为“1”,表示开启目标库TDE加密功能。 开启数据库db1的TDE加密功能: exec master.dbo.rds_tde db1, 1 图2 开启数据库TDE加密 关闭数据库db1的TDE加密功能: exec master.dbo.rds_tde db1, 0 图3 关闭数据库TDE加密 查询数据库db1的TDE加密状态: exec master.dbo.rds_tde db1, -1 图4 开启状态 图5 关闭状态 查询所有数据库的TDE加密状态: exec master.dbo.rds_tde null, -1 图6 查询所有库状态
  • 使用限制 RDS for SQL Server暂不支持已开启TDE加密功能的单机实例转主备。 RDS for SQL Server暂不提供TDE证书下载。如果需要通过加密的“.bak”文件在线下恢复数据,需执行以下操作: 关闭该数据库的TDE加密功能,请参考设置数据库级别的TDE加密功能。 创建该数据库的手动备份。 获取备份文件并通过备份文件恢复数据。 请根据需要开启该数据库的TDE加密功能。 开启TDE加密功能后,可提高数据安全性,但同时会影响访问加密数据库的读写性能。请谨慎选择开启TDE加密功能。 线下加密的数据库无法直接迁移上云数据库SQL Server实例,需要先关闭线下数据库级别的TDE加密功能,再进行迁移。 已开启实例级别TDE加密功能的实例无法使用“恢复到已有实例”功能。 在开启实例级别TDE加密功能、执行存储过程rds_tde、开启/关闭数据库级别TDE功能的过程中,建议不要进行以下操作,否则开启数据库级别TDE可能失败: 从数据库中的文件组中删除文件 删除数据库 使数据库脱机 分离数据库 将数据库或文件组转换为READ ONLY状态 使用ALTER DATABASE命令 创建快照 启动数据库或数据库文件备份 启动数据库或数据库文件还原
  • 操作步骤 创建c#函数,编译出一个RDS for SQL Server的dll。 图1 c#函数代码 创建函数详细说明请参见官方文档。 使用S SMS 等工具连接数据库。 图2 连接数据库 选择需要创建程序集的数据库,添加对应的程序集。 只能创建safe模式(权限集显示为安全),不能创建其他模式。 dll文件会以十六进制的形式存入。如图4所示。 图3 新建程序集 图4 dll文件 执行程序,如图5所示表示执行成功。程序集中新增一个TESTS程序集,如图6所示。 图5 执行结果 图6 TESTS程序集
  • 操作背景 公共语言运行库(CLR)是Microsoft .NET Framework 的核心,为所有.NET Framework代码提供执行环境。在CLR中运行的代码称为托管代码。CLR提供执行程序所需的各种函数和服务,包括实时(JIT)编译、分配和管理内存、强制类型安全性、异常处理、线程管理和安全性。 SQL CLR(SQL Common Language Runtime)是自SQL Server 2005才出现的新功能,它将.NET Framework中的CLR服务注入到SQL Server中,让SQL Server的部分数据库对象可以使用.NET Framework的编程语言开发(当前只支持VB.NET和C#),包括预存程序、用户自定义函数、触发程序、用户自定义类型以及用户自定义汇总函数等功能。但是要想执行CLR代码,首先要开启CLR特性。 更多介绍请参见Microsoft SQL Server官网公共语言运行时 (CLR) 集成编程概念。 CLR集成安全性相关内容请参见Microsoft SQL Server官网CLR 集成安全性。
  • 账户说明 您在创建RDS for SQL Server数据库实例时,系统会自动为实例创建如下系统账户(用户不可使用),用于给数据库实例提供完善的后台运维管理服务。 如果试图删掉、重命名、修改这些系统账户的密码和权限,会导致出错,请谨慎操作。 rdsadmin:具有sysadmin服务角色,用于后台查询实例信息、监控实例状态、故障排查、迁移、恢复等操作。 rdsmirror:用于创建镜像端点,主备复制账户。 rdsbackup:备份账户,用于后台的备份。 Mike:RDS for SQL Server中的Windows系统账户,用于在初始化实例时执行初始化SQL,包括创建rdsadmin数据库和相关账户等。
  • 操作场景 您可以复制您创建的自定义数据库参数模板。当您已创建一个数据库参数模板,并且想在新的数据库参数模板中包含该组中的大部分自定义参数和值时,复制参数模板是一个方便的解决方案。您还可以导出某数据库实例应用的参数列表,生成一个新的参数模板,供您后期使用。 复制数据库参数模板之后,新参数模板可能不会立即显示,建议您等待5分钟再使用。 您无法复制默认参数模板。不过,您可以创建基于默认参数模板的新参数模板。
  • 按照执行方式:分为自动备份和手动备份。 表2 自动备份和手动备份对比 备份类型 自动备份 手动备份 描述 您可以在管理控制台设置自动备份策略,系统将按照自动备份策略中设置的备份时间段和备份周期进行自动备份,并且会按照设置的备份保留天数对备份文件进行存储。 自动备份的备份文件不支持手动删除,可通过修改自动备份策略来调整备份保留天数,超出备份保留天数的已有备份文件(包括全量备份和增量备份)会被自动删除。 手动备份是由用户触发产生的全量备份,会一直保存,直到用户手动删除。 建议您定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份恢复数据库,从而保证数据可靠性。 是否默认开启 是 是 保留时长 根据设置的备份保留天数保存自动备份。 备份保留天数的设置范围为:1~732天 一直保存,直到手动删除。 设置方法 设置同区域备份策略 创建手动备份
  • 按照备份区域:分为同区域备份和跨区域备份。 如果需要使用跨区域备份功能,请提交工单申请。 表3 同区域备份和跨区域备份对比 备份类型 同区域备份 跨区域备份 描述 备份存储在同一个区域。 备份存储在除当前区域外的其他区域。 是否默认开启 是 否 保留时长 根据设置的备份保留天数保存备份。 备份保留天数的设置范围为:1~732天 根据设置的跨区域备份时长保存备份。 备份保留时长设置范围为:1~1825天 特点 支持将备份文件存放到和实例相同的区域存储,系统默认开启自动备份(同区域)策略,暂不支持关闭。 支持将备份文件存放到另一个区域存储,开启跨区域备份策略后,会自动将该实例的备份文件备份到目标区域。 设置方法 设置同区域备份策略 设置跨区域备份策略 查看备份大小 单击“备份管理”,在“数据库同区域备份”页面查看目标实例的备份大小。 单击“备份管理”,在“数据库跨区域备份”页面,单击“查看跨区域备份”,查看目标实例的备份大小。
  • 按照数据量:分为全量备份和增量备份。 表1 全量备份和增量备份对比 备份类型 全量备份 增量备份 描述 全量备份是备份数据库所有数据。 增量备份是备份某个时间段内变化的数据。 是否默认开启 是 是 保留时长 自动备份为设置的保留天数。减少保留天数,会针对已有的备份文件生效。 手动备份会一直保存,不会随着RDS实例的删除而释放,直到用户手动删除。 增量备份随自动全量备份一起删除。 特点 对当前状态下的数据库实例中的所有数据进行一次完整的备份。 用户可在任意时刻使用全量备份恢复创建备份时的完整数据。 包含自动备份和手动备份。 系统自动每5分钟或一定数据量时会对上一次自动备份或增量备份后更新的数据进行备份。 全部为自动备份。 利用增量备份恢复数据时会依赖最近一次的全量备份,如图1所示,因此自动删除时仍然会保留最近的一次超出保留天数的全量备份,保证在保留天数内的数据可正常恢复。 图1 增量数据恢复 查看备份大小 单击实例名称,在“备份恢复”的“全量备份”页签查看备份大小。 单击实例名称,在“备份恢复”的“Binlog备份”页签查看备份大小。
  • 操作步骤 注册华为账号 并开通华为云。 实名认证。 个人账号:实名认证 企业账号:实名认证 购买实例前需要确保账户有足够金额,请参见账户充值。 如果需要对华为云上的资源进行精细管理,请使用 统一身份认证 服务(Identity and Access Management,简称 IAM )创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予RDS权限。 进入购买云数据库RDS页面。 在“购买数据库实例”页面,选择“自定义购买”,选择计费模式,填写并选择实例相关信息后,单击“立即购买”。 计费模式 包年/包月:若选择该模式,跳过7,执行8。 按需计费:若选择该模式,继续执行7。 资源选配 图1 计费方式和基本信息 表1 基本信息 参数 描述 区域 资源所在的区域。 说明: 不同区域内的产品内网不互通,且创建后不能更换,请谨慎选择。 数据库引擎 MySQL。 数据库版本 请参见数据库引擎和版本。 不同区域所支持的数据库版本不同,请以实际界面为准。 选用RDS for MySQL数据库时,请根据实际业务需求选择合适的数据库引擎版本。建议您选择当前可用的最高版本数据库,因其性能更稳定,安全性更高,使用更可靠。 实例类型+可用区 集群版:支持一主多备的高可用性架构,集群版实例的每个节点的规格保持一致。备节点提高了实例的可靠性,创建主节点的过程中,会同步创建备节点,备节点创建成功后,会提供一个只读地址供用户访问。 当主节点故障后,会自动选择最优备节点进行主备切换,数据库客户端会发生短暂中断,数据库客户端需要支持重新连接。 说明: 如需购买RDS for MySQL集群版实例,请联系客服申请。 中国站支持的区域:华东-上海一、华南-广州 主备:一主一备的经典高可用架构。适用于大中型企业的生产数据库,覆盖互联网、物联网、零售电商、物流、游戏等行业应用。备机提高了实例的可靠性,创建主机的过程中,同步创建备机,备机创建成功后,用户不可见。 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。有的区域支持单可用区和多可用区,有的区域只支持单可用区。 为了达到更高的可靠性,即使您选择了单可用区部署主实例和备实例,RDS也会自动将您的主实例和备实例分布到不同的物理机上。在专属计算集群中创建主备实例时,如果您的专属计算集群中只有一台物理机,并且将主机和备机划分在同一可用区内,将会导致主备实例创建失败。 RDS支持在同一个可用区内或者跨可用区部署数据库主备实例,以提供故障切换能力和高可用性。 单机:采用单个数据库节点部署架构,与主流的主备实例相比,它只包含一个节点,但具有高性价比。适用于个人学习、微型网站以及中小企业的开发测试环境。 备节点数量 选择集群版实例时,需要设置备节点个数,取值范围:2~5。 存储类型 实例的存储类型决定实例的读写速度。最大吞吐量越高,读写速度越快。 本地SSD盘: 将数据存储于本地SSD盘,可以降低I/O延时。相对云磁盘,本地磁盘的IO吞吐性能更好。 SSD云盘:云盘存储,弹性扩容,将数据存储于SSD云盘,即实现了计算与存储分离。最大吞吐量350MB/s。 极速型SSD:结合25GE网络和RDMA技术,为您提供单盘最大吞吐量达1000 MB/s并具有亚毫秒级低时延性能。 超高I/O:磁盘类型SSD,最大吞吐量350MB/s。 说明: 选择“专属存储”的用户默认只显示购买专属分布式存储服务时选择的存储类型。 通用型实例、独享型实例、惠选型实例和鲲鹏通用增强型实例支持SSD云盘和极速型SSD存储类型。 实例创建完成后可以修改存储类型,详见变更实例的CPU和内存规格。 本地SSD盘支持的IOPS请参见RDS for MySQL实例规格。 SSD云盘支持的IOPS取决于云硬盘(Elastic Volume Service,简称EVS)的IO性能,具体请参见《云硬盘产品介绍》中“磁盘类型及性能介绍”中“超高IO”的内容。 极速型SSD支持的IOPS取决于云硬盘的IO性能,具体请参见《云硬盘产品介绍》中“磁盘类型及性能介绍”中“极速型SSD”的内容。 实例选配 图2 规格与存储 表2 规格与存储 参数 描述 性能规格 实例的CPU和内存。不同性能规格对应不同连接数和最大IOPS。 关于性能规格详情,请参见RDS for MySQL性能规格。 创建成功后可进行规格变更,请参见变更实例的CPU和内存规格。 说明: 在专属计算集群上创建实例时,性能规格只支持通用增强型。 资源类型 云硬盘 专属存储 说明: 只有购买了专属分布式存储服务(Dedicated Distributed Storage Service,简称DSS)的用户才有此选项。 存储池 只有选择“专属存储”的用户才有此选项,是购买专属分布式存储服务时确定的独享的存储池,该存储池与其他池物理隔离,安全性高。 存储空间 您申请的存储空间会有必要的文件系统开销,这些开销包括索引节点和保留块,以及数据库运行必需的空间。 如果存储类型为SSD云盘或极速型SSD,可设置存储空间自动扩容,当存储空间可用率过小时,会自动扩容存储空间。 存储空间自动扩容:存储空间自动扩容开关。 可用存储空间率:当可用存储空间百分比小于等于该阈值或者10GB时,会触发自动扩容。 存储自动扩容上限:默认取值:40~4000,单位:GB。需要大于等于实例当前存储空间总大小。 数据库创建成功后可进行扩容,具体请参见扩容磁盘。 说明: 存储空间支持40GB到4000GB,用户选择容量大小必须为10的整数倍。 创建主实例时指定只读实例,主实例设置自动扩容,只读会默认同步开启设置。 磁盘加密 不加密:未开启加密功能。 加密:选择加密后会提高数据安全性,但对数据库读写性能有少量影响,请按照您的使用策略进行选择。RDS使用KMS提供的信封加密方式来保护用户的数据,具体请参见华为云服务如何使用KMS加密数据。 在下拉框选择密钥,该密钥是最终租户密钥。 单击“创建密钥”,在页面右侧弹窗可以新建密钥。更多信息,请参见《 数据加密 服务用户指南》的“创建密钥”章节内容。 说明: 本地SSD盘实例不支持磁盘加密。 RDS购买磁盘加密后,在实例创建成功后不可修改磁盘加密状态,且无法更改密钥。选择“磁盘加密”,存放在 对象存储服务 上的备份数据不会被加密,如需开通备份数据加密,请联系华为云客服人员申请。 设置了磁盘加密或备份数据加密后,提醒您保存好密钥,一旦密钥被禁用、删除或冻结,会导致数据库不可用,并且可能无法恢复数据,具体场景如下: 针对磁盘加密,备份数据不加密的场景:可以通过备份恢复到新实例的方式恢复数据。 针对磁盘加密,并且备份数据加密的场景:无法恢复数据。 如果使用共享KMS密钥,对应的 CTS 事件为createdatakey和decrydatakey,仅密钥所有者能够感知到该事件。 图3 规格与存储(小微企业助力计划) 表3 规格与存储(小微企业助力计划) 参数 描述 自定义选型 小微企业助力计划:适用轻量级应用场景,价格优惠,降低您的使用压力。 须知: 如需选择“小微企业助力计划”,请联系客服开通申请。 购买“小微企业助力计划”实例后,不支持以下操作:购买只读实例、变更实例的CPU和内存规格、扩容磁盘、单机转主备。 磁盘加密 不加密:未开启加密功能。 加密:提高数据安全性,对性能有一定影响。 密钥名称:选择或创建密钥,该密钥是最终租户密钥。 说明: RDS购买磁盘加密后,在实例创建成功后不可修改磁盘加密状态,且无法更改密钥。选择“磁盘加密”,存放在对象存储服务上的备份数据不会被加密,如需开通备份数据加密,请联系华为云客服人员申请。 设置了磁盘加密或备份数据加密后,提醒您保存好密钥,一旦密钥被禁用、删除或冻结,会导致数据库不可用,并且可能无法恢复数据,具体场景如下: 针对磁盘加密,备份数据不加密的场景:可以通过备份恢复到新实例的方式恢复数据。 针对磁盘加密,并且备份数据加密的场景:无法恢复数据。 创建密钥请参见《数据加密服务用户指南》的“创建密钥”章节内容。 实例管理和网络配置 图4 实例管理和网络配置 表4 网络 参数 描述 实例名称 实例名称长度最小为4字符,最大为64个字符,如果名称包含中文,则不超过64字节(注意:一个中文字符占用3个字节),必须以字母或中文开头,区分大小写,可以包含字母、数字、中划线、下划线或中文,不能包含其他特殊字符。 创建多个实例和只读实例时,实例名称长度会发生变化,具体以实际页面显示情况为准。 购买多个数据库实例时,名称自动按序增加4位数字后缀。例如输入instance,从instance-0001开始命名;若已有instance-0010,从instance-0011开始命名。 设置密码 现在设置(默认),如果您选择创建实例时设置,请填写账户对应的密码。 创建后设置,系统不会为您设置初始密码。 须知: 您在登录数据库前,需要先通过重置密码的方式设置密码,否则实例创建成功后,无法登录数据库。 实例创建成功后重置密码,请参见重置管理员密码。 管理员账户名 数据库的登录名默认为root。 管理员密码 所设置的密码长度为8~32个字符,至少包含大写字母、小写字母、数字、特殊字符三种字符的组合,其中允许输入 ~ ! @ # $ % ^ * - _ = + ? , ( ) & . | 特殊字符。请您输入高强度密码并定期修改,以提高安全性,防止出现密码被暴力破解等安全风险。 如果您提供的密码被系统视为弱密码,您将收到错误提示,请提供更高强度的密码。 请妥善保管您的密码,因为系统将无法获取您的密码信息。 实例创建成功后,如需重置密码,请参见重置管理员密码。 确认密码 必须和管理员密码相同。 虚拟私有云 云数据库RDS实例所在的虚拟网络环境,可以对不同业务进行网络隔离。您需要创建或选择所需的虚拟私有云。如何创建虚拟私有云,请参见《虚拟私有云用户指南》的“创建虚拟私有云基本信息及默认子网”。 如果没有可选的虚拟私有云,云数据库RDS服务默认为您分配资源。 如需使用共享VPC,请在下拉列表选择其他账号共享给当前账号的VPC。 共享VPC基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给一个或者多个账号使用。通过共享VPC功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。有关VPC子网共享的更多信息,请参见共享VPC。 须知: 目前RDS实例创建完成后不支持切换虚拟私有云,请谨慎选择所属虚拟私有云。 子网 通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。子网在可用区内才会有效,创建云数据库RDS实例的子网默认开启DHCP功能,不可关闭。 IPv4地址: 创建实例时RDS会自动为您配置IPv4内网地址,您也可输入子网号段内未使用的IPv4内网地址。实例创建成功后该内网地址可修改。 IPv6地址: 选择支持IPv6地址的CPU和内存规格后,才能创建内网地址为IPv6的实例。 创建实例时RDS会自动为您配置IPv6内网地址,不支持指定IPv6内网地址。实例创建成功后该内网地址也不支持修改。如果选不到某个规格下的IPv6子网,请联系客服处理。 须知: 创建单机实例时,需要确认可用私有IP数量≥ 2。 如果同时创建单机只读实例,则可用私有IP数量≥ 4。 如果同时创建高可用只读实例,则可用私有IP数量≥ 5。 创建主备实例时,需要确认可用私有IP数量≥ 3。如果同时创建高可用只读实例,则可用私有IP数量≥ 6。 图5 查看可用私有IP数量 数据库端口 数据库端口默认为3306,实例创建成功后可修改。 RDS for MySQL数据库端口设置范围为1024~65535(其中12017、33071、33062被RDS系统占用不可设置)。 安全组 安全组限制实例的安全访问规则,加强云数据库RDS服务与其他服务间的安全访问。此外,通过网络访问控制列表(ACL),可以允许或拒绝进入和退出各个子网的网络流量。请确保所选取的安全组允许客户端访问数据库实例。 创建实例时,可以选择多个安全组(为了更好的网络性能,建议不超过5个)。此时,实例的访问规则遵循几个安全组规则的并集。 如果不创建安全组或没有可选的安全组,云数据库RDS服务默认为您分配安全组资源。 高级配置 图6 高级配置 表5 高级配置 参数 描述 企业项目 对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。 更多关于企业项目的信息,请参见《企业管理用户指南》。 参数模板 数据库参数模板就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。对于HA实例创建成功后,主备参数模板相同。实例创建成功后,参数模板可进行修改。 须知: 创建数据库实例时,为确保数据库实例正常创建,自定义参数模板中相关规格参数如下不会下发, 而是采用系统默认的推荐值。 “back_log” “innodb_io_capacity_max” “max_connections” “innodb_io_capacity” “innodb_buffer_pool_size” “innodb_buffer_pool_instances” 您可以在实例创建完成之后根据业务需要进行调整。具体请参见编辑参数。 时区 由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。时区可在创建实例时选择,后期可修改。 表名大小写 表名是否区分大小写。 已创建完成的RDS for MySQL 8.0实例不支持设置表名大小写敏感。 标签 可选配置,对云数据库RDS的标识。使用标签可以方便识别和管理您拥有的云数据库RDS资源。每个实例最多支持20个标签配额。 如果您的组织已经设定RDS的相关标签策略,则需按照标签策略规则为RDS实例添加标签。标签如果不符合标签策略的规则,则可能会导致RDS实例创建失败,请联系组织管理员了解标签策略详情。 实例创建成功后,您可以单击实例名称,在标签页签下查看对应标签。关于标签的详细操作,请参见标签。 证书 可选配置, 云证书管理服务 (Cloud Certificate Manager,CCM)创建的证书。默认证书是自动生成的系统证书,您也可在“证书”下拉框中选择其他证书。 须知: 创建数据库实例时,指定证书需要具有相应的操作权限。您可联系华为云客服人员申请。 数据库安全审计 包周期实例开启数据库安全审计后,将实时记录该数据库的访问操作行为,对风险和攻击行为进行实时告警。 只读实例 表6 只读实例 参数 描述 只读实例 选择是否立即购买只读实例。 默认选择“暂不购买”。 选择“立即购买”:只读实例名称默认在主实例名称后增加后缀read和2位数字。例如主实例名称为instance-0001,只读实例从instance-0001-read-01开始命名。只读实例的网络、存储配置与主实例一致。 只读模式 选择“高可用只读”:当只读实例所在物理机故障后,备用只读实例自动顶替。购买高可用只读实例时,注意表库名的大小写敏感要与主实例保持一致。 选择“只读”:推荐开启数据库代理功能,并购买单机版只读实例。当单个只读故障后,数据库代理可以将流量分担到其他可用只读实例或主实例。购买单机只读实例时,注意表库名的大小写敏感要与主实例保持一致。 存储类型 实例的存储类型决定实例的读写速度。最大吞吐量越高,读写速度越快。 本地SSD盘: 将数据存储于本地SSD盘,可以降低I/O延时。相对云磁盘,本地磁盘的IO吞吐性能更好。 SSD云盘:云盘存储,弹性扩容,将数据存储于SSD云盘,即实现了计算与存储分离 。 极速型SSD:结合25GE网络和RDMA技术,为您提供单盘高达100万的随机读写能力和单路低时延性能。 说明: 选择“专属存储”的用户默认只显示购买专属分布式存储服务时选择的存储类型。 只读实例可用区 默认和主实例跨AZ,您也可根据业务需要进行选择。 须知: 不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。 性能规格 只读实例的CPU和内存。 只读实例数量 云数据库RDS支持在下发创建主实例任务时,同步下发批量创建只读实例的任务,待主实例创建成功后,系统自动触发创建只读实例,您最多可在一个主实例下创建5个只读实例。 如果您选择创建主备实例,数量选择为1,那么会创建一个主备实例和一个只读实例。 购买时长与数量 表7 购买时长与数量 参数 描述 购买时长(包年/包月) 选择所需的时长,系统会自动计算对应的配置费用,时间越长,折扣越大。 如果设置订购时间为5年,约束条件如下: 需要具有相应的操作权限,您可以联系客服人员申请。 当前仅华北-北京四、华东-上海一、华南-广州、西南-贵阳一支持。 当前仅通用型规格实例支持。 自动续费(包年/包月) 默认不勾选,不进行自动续费。 勾选后实例自动续费,自动续费周期与原订单周期一致。 购买数量 云数据库RDS支持批量创建实例,如果您选择创建主备实例,数量选择为1,那么会同步创建一个主实例和一个备实例。 如果您对价格有疑问,可以单击页面底部“配置费用”处的“了解计费详情”来了解产品价格。 云数据库RDS的性能,取决于用户申请云数据库RDS时所选择的配置。可供用户选择的硬件配置项为性能规格、存储类型以及存储空间。 对于按需计费的实例,进行规格确认。 图7 规格确认 如果需要重新选择实例规格,单击“上一步”,回到上个页面修改实例信息。 如果规格确认无误,单击“提交”,完成购买实例的申请。 跳过8和9,直接执行10。 对于包年/包月模式的实例,进行订单确认。 图8 订单确认 如果需要重新选择实例规格,单击“上一步”,回到上个页面修改华为云关系型数据库实例信息。 如果订单确认无误,单击“去支付”,进入“付款”页面。 选择付费方式,完成付费。 本操作仅适用于包年/包月计费方式。 云数据库RDS实例创建成功后,用户可以在“实例管理”页面对其进行查看和管理。 创建实例过程中,状态显示为“创建中”,创建完成的实例状态显示为“正常”。您可以通过“任务中心”查看详细进度和结果。 创建实例时,系统默认开启自动备份策略,后期可修改。实例创建成功后,系统会自动创建一个全量备份。 实例创建成功后,实例名称支持添加备注,以方便用户备注分类。 数据库端口默认为3306,实例创建成功后可修改。 建议您及时修改数据库默认端口。 具体请参见修改数据库端口。
  • 跨区域增量备份文件恢复 在页面上方选择备份所在的目标区域。 在左侧导航栏单击“备份管理”,选择“数据库跨区域备份”页签。 单击目标实例操作列“查看跨区域备份”。 在“Binlog备份”页签,单击“恢复到指定时间点”。 图3 增量备份恢复 选择恢复日期和该日期下可恢复的时间区间,并输入要恢复到的时间点,选择恢复方式,单击“确定”。 恢复到新实例:设置新实例参数,单击“立即购买”。 数据库引擎和数据库版本,与原实例相同,不可重置。 其他参数默认,用户如需设置,请参见购买RDS for MySQL实例。
  • 视图接口说明 表3 视图接口说明 序号 视图 列 说明 1 rds_pg_sql_ccl.get_all_enabled_rule dbid oid, queryid bigint, max_concurrency int, max_wait int 查看所有生效的限流规则。 2 rds_pg_sql_ccl.get_activity_query_status queryid bigint, wait_start_time timestamptz, pid int, dbid oid 查看当前实例每个SQL的运行状态(queryid,是否等待等)。 3 rds_pg_sql_ccl.get_current_db_ccl_rule rule_id bigint, query_id bigint , query_string, max_concurrency int, max_waiting int, search_path text, create_time timestamptz, enabled bool 查看当前数据库创建的限流规则(不一定生效)。
  • 绑定变量的SQL限流 JDBC等驱动支持prepare statement,对参数化SQL进行预编译,在输入参数后实际执行SQL。在pg_stat_statements视图中会以绑定变量的方式呈现。对于参数是绑定变量的SQL,内核计算的query id值与参数为实际值的SQL不一致,因此无法直接通过添加SQL语句方式进行限流。 对于这类SQL而言,只能通过实际执行后手动添加的方式进行限流。 首先实际执行一次带绑定变量的SQL,这样内核会计算其query id。基于JDBC的prepare statement程序示例如下: String sql = "select pg_sleep(?);"; PreparedStatement preparedStatement = conn.prepareStatement(sql); preparedStatement.setInt(1, 500); ResultSet resultSet = preparedStatement.executeQuery(); 而后在pg_stat_statements视图可以查询到该SQL的query id。 select queryid from pg_stat_statements where query like '%select pg_sleep%'; 通过查询到的query id添加限流规则。 select rds_pg_sql_ccl.add_ccl_rule_by_queryid($queryid); 通过上一条SQL的返回值(rule_id)使该规则生效。 select rds_pg_sql_ccl.enable_ccl_rule($rule_id); 从插件提供的get_all_enabled_rule视图可以获取到当前所有生效的限流规则。 select * from rds_pg_sql_ccl.get_all_enabled_rule;
  • 创建规则 同一个数据库中,不能创建重复(query id相同)的限流规则;不同的数据库中,可以创建重复的限流规则。 规则创建后不会立刻生效,需要调用enable_ccl_rule函数让规则生效。 get_query_id函数获取不到绑定变量的SQL的queryid,add_ccl_rule_by_query限制不了绑定变量SQL。 绑定变量SQL的queryid可以通过pg_stat_statements插件获取,之后可以通过add_ccl_rule_by_queryid创建规则,可参考后续绑定变量SQL限流。
  • 简介 高并发和消耗资源过多的SQL会导致实例不稳定,对此,RDS for PostgreSQL提供了限流能力,是由华为云自研插件rds_pg_sql_ccl实现,其中ccl是concurrent control的缩写,合理地使用SQL限流可以保障实例的稳定性,可以很好地做到性能优化和资源保护,应对的场景有: 业务量突增:通过限制某类SQL的执行保障实例的稳定性。 保障核心任务:通过限制其他SQL的执行从而降低资源的消耗保障核心任务的顺利完成。 该插件提供了两种限流方式: 方式1: 限制同一时刻同时执行SQL数量( 由rds_pg_sql_ccl.max_concurrent_sql参数控制,默认值为-1,即不限制)。 方式2: 限制某一类SQL(query id相同)同一时刻并发执行的数量,由限流规则控制,限流规则见下文。
  • 支持的版本 PostgreSQL16.2, 15.4, 14.8, 13.11, 12.15, 11.20及以上的最新小版本支持该插件。可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'rds_pg_sql_ccl'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS for PostgreSQL实例支持的插件,具体可参见支持的插件列表。
  • 函数接口说明 表2 函数接口说明 序号 函数名 参数 返回值 功能 1 rds_pg_sql_ccl.get_query_id query_string text, search_path text default 'public' queryid 计算SQL的queryid。 2 rds_pg_sql_ccl.add_ccl_rule_by_query query_string text, max_concurrency int default 0, max_waiting int default 0, search_path text default 'public' ruleid 通过SQL语句添加限流规则。 3 rds_pg_sql_ccl.add_ccl_rule_by_queryid query_id bigint, max_concurrency int default 0, max_waiting int default 0, search_path text default 'public' ruleid 通过queryid添加限流规则。 5 rds_pg_sql_ccl.enable_ccl_rule rule_id bigint bool 通过ruleid让限流规则生效。 6 rds_pg_sql_ccl.disable_ccl_rule rule_id bigint bool 通过ruleid让限流规则失效。 7 rds_pg_sql_ccl.disable_all_ccl_rule - void 让所有限流规则失效。 8 rds_pg_sql_ccl.delete_ccl_rule rule_id bigint void 通过ruleid删除限流规则。 9 rds_pg_sql_ccl.update_ccl_rule new_rule_id bigint, new_max_concurrency int, new_max_waiting int void 通过ruleid更新限流规则。 部分参数说明: max_concurrency:最大并发数,并发执行该类型SQL的最大数量。 max_wait:最大等待时间,达到最大并发数之后,该类型的新SQL的最大等待时间,超过这个时间,则执行失败。 new_max_concurrency:新的最大并发数。 new_max_wait:新的最大等待时间。
  • 简介 dblink是PostgreSQL数据库中的一个扩展模块,它允许在不同的数据库之间建立连接,使得这些数据库之间可以互相访问和查询数据。dblink的主要作用是实现分布式查询,即在不同的数据库之间查询数据。它可以将不同的数据库看作一个整体,方便用户进行跨数据库的查询和操作。 此外,dblink还可以用于数据的备份和恢复,数据的同步等操作。它可以大大提高数据库的灵活性和可扩展性,使得数据库应用更加高效和可靠。更多使用说明详见dblink官方文档。
  • 基本使用 场景一: 在一个实例里,存在多个数据库,不同数据库承载不同的业务,有些操作需要在多个数据库中执行,此时就可以使用dblink进行跨库操作。 -- 1、创建数据库 create database homedb; create database db1; -- 2、切换到homedb,创建dblink连接 select dblink_connect('connect_db1', 'dbname=db1 port=5432 user=root password=******** host=127.0.0.1'); dblink_connect ---------------- OK (1 row) --3、执行sql命令 --执行查询 SELECT * FROM dblink('connect_db1', 'select * from test') as test(id integer, info varchar(8)); id | info ----+------ 1 | a 2 | b (2 rows) --执行插入 SELECT dblink_exec('connect_db1', 'insert into test values(3,'c')'); dblink_exec ------------- INSERT 0 1 (1 row) -- 3、切换到db1查看结果 select * from test; id | info ----+------ 1 | a 2 | b 3 | c (3 rows) -- 4、关闭远程连接 SELECT dblink_disconnect('connect_db1'); dblink_disconnect ---------------- OK (1 row) 场景二: 同一VPC下有两个RDS for PostgreSQL数据库实例:生产环境(数据库db1)、测试环境(数据库db2)。需要将测试环境的数据同步至生产环境,此时在生产环境中可通过dblink插件实现数据同步。 -- 1、登录生产环境,创建数据库 create database db1; -- 2、切换到生产库db1,连接测试环境库db2 select dblink_connect('connect_db2', 'dbname=db2 port=5432 user=root password=******** host=10.29.182.247'); dblink_connect ---------------- OK (1 row) -- 3、查询测试库db2中test1表的值 SELECT * FROM dblink('host=10.29.182.247 port=5432 user=root password=******** dbname=db2', 'select * from test1') as test1(id int, name text); id | name ----+------ 1 | a 2 | b (2 rows) -- 4、将测试库db2中的test1表同步到生产库db1中的backup1表 insert into backup1 SELECT * FROM dblink('dbname=db2 port=5432 user=root password=******** host=10.29.182.247', 'select * from test1') as backup1(id int, name text); dblink ------------- INSERT 0 2 (2 row) --5、查询生产库db1库backup1表 select * from backup1; id | name ----+------ 1 | a 2 | b (2 rows) --6、关闭连接 SELECT dblink_disconnect('connect_db2'); dblink_disconnect ---------------- OK (1 row)
  • 注意事项 pg_cron需要后台守护进程,因此启动数据库前,需要将pg_cron放到shared_preload_libraries中。 定时任务不会在备机上运行,但当备机升主后,定时任务会自动启动。 定时任务会以任务创建者的权限执行。 定时任务使用GMT时间执行。 一个实例可以并行运行多个任务,但同一时间某个任务仅能运行一个。 某个任务,需要等待前一个定时任务结束,那么该任务会进入等待队列,且会在前一个任务结束后尽快启动。 使用前,需要将cron.database_name修改为创建定时任务的数据库,并且只能设为单个数据库,不支持设置多个数据库。
  • 支持的版本说明 PostgreSQL 12及以上版本的最新小版本支持该插件。可通过以下SQL语句查询当前实例支持该插件的版本: SELECT * FROM pg_available_extension_versions WHERE name = 'pg_cron'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS for PostgreSQL实例支持的插件,具体请参见支持的插件列表。
共100000条