华为云用户手册

  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 slow_logs Array of objects 慢日志具体信息。详情请参考表5。 表5 RedisSlowLogDetail 参数 参数类型 描述 node_name String 节点名称。 node_id String 节点ID。 whole_message String 执行语句。 operate_type String 语句类型。 cost_time Double 执行时间。单位:ms。 log_time String 日志产生时间,UTC时间。格式为“yyyy-mm-ddThh:mm:ssZ”。其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 line_num String 日志单行序列号。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 start_time 是 String 开始时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 注:开始时间不得早于当前时间30天。 end_time 是 String 结束时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 注:结束时间不能晚于当前时间。 limit 是 Integer 表示每次查询的日志条数,最大限制100条。 line_num 否 String 日志单行序列号,第一次查询时不需要此参数,下一次查询时需要使用,可从上一次查询的返回信息中获取。说明:当次查询从line_num的下一条日志开始查询,不包含当前line_num日志。 operate_type 否 String 语句类型,取空值,表示查询所有语句类型。支持查询的所有语句类型如下(以“、”分割):set、get、del、incr、incrby、incrbyfloat、decr、decrby、getset、append、mget、keys、setnx、setex、psetex、delvx、mset、 msetnx、getrange、substr、setrange、strlen、exists、expire、pexpire、expireat、pexpireat、ttl、pttl、persist、type、 scanx、pksetexat、sort、hdel、hset、hget、hgetall、hexists、hincrby、hincrbyfloat、hkeys、hlen、hmget、hmset、hsetnx、 hstrlen、hvals、hscan、hscanx、pkhscanrange、pkhrscanrange、lindex、linsert、llen、lpop、lpush、lpushx、lrange、lrem、 lset、ltrim、rpop、rpoplpush、rpush、rpushx、zadd、zcard、zscan、zincrby、zrange、zrevrange、zrangebyscore、 zrevrangebyscore、zcount、zrem、zunionstore、zinterstore、zrank、zrevrank、zscore、zrangebylex、zrevrangebylex、 zlexcount、zremrangebyrank、zremrangebyscore、zremrangebylex、zpopmax、zpopmin、sadd、spop、scard、smembers、sscan、 srem、sunion、sunionstore、sinter、sinterstore、sismember、sdiff、sdiffstore、smove、srandmember、bitset、bitget、 bitcount、bitpos、bitop、bitfield、pfadd、pfcount、pfmerge、geoadd、georadiusbymember、georadius、geohash、geodist、 geopos、xadd、xack、xgroup、xdel、xtrim、xlen、xrange、xrevrange、xclaim、xpending、xinfo、xread、xreadgroup。 node_id 否 String 节点ID,取空值,表示查询实例下所有允许查询的节点。具体取值请参考表10中的“id”。 keywords 否 Array of strings 根据多个关键字搜索日志全文,表示同时匹配所有关键字。 最多支持10个关键字。 每个关键字最大长度不超过512个字符。 max_cost_time 否 Double 支持根据最大执行时间范围查找日志。单位:ms。 min_cost_time 否 Double 支持根据最小执行时间范围查找日志。单位:ms。
  • 监控指标 云数据库 GeminiDB提供基于云监控服务CES的资源和操作监控能力,帮助用户监控账号下的GeminiDB实例,执行自动实时监控、告警和通知操作。用户可以实时掌握实例运行过程中产生的运行指标和存储用量等信息。 关于GeminiDB Redis支持的监控指标,以及如何创建监控告警规则等内容,请参见支持的监控指标。 关于GeminiDB Influx支持的监控指标,以及如何创建监控告警规则等内容,请参见支持的监控指标。 关于GeminiDB Cassandra支持的监控指标,以及如何创建监控告警规则等内容,请参见支持的监控指标。 关于GeminiDB Mongo支持的监控指标,以及如何创建监控告警规则等内容,请参见支持的监控指标。
  • 访问控制 权限控制 购买实例之后,您可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。具体内容请参见权限管理。 VPC和子网 虚拟私有云(Virtual Private Cloud,VPC)为云数据库构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云上资源的安全性,简化用户的网络部署。您可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性,方便管理、配置内部网络,进行安全、快捷的网络变更。 子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。 具体内容请参见创建虚拟私有云和子网。 安全组 安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求并相互信任的弹性云服务器和云数据库 GeminiDB实例提供访问策略。为了保障数据库的安全性和稳定性,在使用GeminiDB数据库实例之前,您需要设置安全组,开通需访问数据库的IP地址和端口。 具体请参见设置安全组规则。
  • 身份认证 用户访问云数据库 GeminiDB时支持对数据库用户进行身份验证,包含密码验证和IAM验证两种方式。 密码验证 您需要对数据库实例进行管理,通过控制台登录Web客户端页面时,需要对账号密码进行验证,验证成功后方可进行操作。 IAM验证 您可以使用统一身份认证服务(Identity and Access Management, IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。您创建的IAM用户,需要通过验证用户和密码才可以使用GeminiDB资源。具体请参见创建IAM用户并登录。
  • 约束限制 审核对象仅支持:Table、View、Sequence、Index、Function、Procedure、Trigger。 一次审核Schema的数量不超过10000。 审核数据库过程中,避免对正在审核的数据库对象进行删除等操作,影响审核结果。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同数据源审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。 不支持嵌套子函数包含分隔符为单引号的语句,详情可参见表2。
  • 操作步骤 登录UGO服务。 单击左侧导航栏的“数据源管理”。 在数据源管理页面,单击右上角的“创建数据源”按钮。 进入创建数据源页面,完成基本信息的填写。 基本信息填写完成后,“开始测试”高亮显示。 图1 创建数据源 表1 创建数据库档案参数说明 参数名称 说明 名称 在数据源管理项目列表中显示的名称。 唯一且长度范围为5到50个字符,只允许包含英文字母、数字、下划线、中划线。以字母开头、数字或字母结束。 数据库类型 下拉选择待创建的数据库类型。当前仅支持管理GaussDB和MySQL数据源信息。 网络类型 公网网络:通过弹性公网IP(Elastic IP,EIP)进行源库连接。 如果源库网络有IP白名单限制,请将弹性公网IP添加至源库网络白名单,确保UGO可以连接源库。 连接方法 仅支持通过服务器名进行连接。 数据库名称 待进行管理的数据库名称。 主机类型 当前仅支持主机IP地址。 主机IP地址 填写具体主机IP地址,IP地址支持IPv4和IPv6。 说明: 支持IPv6数据库如下:MySQL。 主机端口 待进行管理的数据库端口。 用户名 待进行管理的数据库用户名。 密码 待进行管理的数据库密码。 单击“开始测试”,测试通过显示“已连接”,右下角“创建”高亮显示。 当前仅测试连通性,若断连或权限不足,会导致“连接数据库失败”,无法创建数据源。 单击创建。显示“数据源创建成功。”。 单击“关闭”,返回数据源管理页面,用户可以看到最新创建的数据源已在列表中。 可通过序号、名称、数据库名称、数据库类型、IP地址及端口信息进行搜索。 图2 数据源管理
  • 约束限制 规则的嵌套审核仅支持四种详情可参见表1。 With as只考虑SELECT语句。 别名不能和实体表重名,且别名之间不能重名。 暂不支持视图中的表审核。 不支持对数据库系统表及视图审核。 不支持输入的语句, 语句中涉及的表结构,阈值中含有“#”或“/*”的SQL 审核。 function/procedure不支持嵌套子函数包含分隔符为单引号的语句,详情可参见表2。 表1 支持的嵌套审核语句 SQL语句 select id, (select 子查询) as name from table; select id from table where id in (select 子查询); select * from table1,(select 子查询); with e as (select 子查询) select * from e; 表2 不支持嵌套子函数的语句 SQL语句 CREATE OR REPLACE FUNCTION public.xxx(i integer) RETURNS integer LANGUAGE plpgsql AS $function$ BEGIN CREATE FUNCTION xxx(integer, integer) RETURNS integer AS 'select $1 + $2;' LANGUAGE SQL ; CREATE TABLESPACE ds_location1 RELATIVE LOCATION 'tablespace/tablespace_1'; END; $function$; ;
  • 规则约束 所有涉及update、delete规则项,均不支持多表操作审核。 update、delete多表操作仅支持规则项:“不应用单条update、delete语句对多个表实现更新、删除操作”。 对于这两个规则,“在PL/pgSQL中,关键字建议大写,非关键字小写”、“sql语句中,关键字建议大写,非关键字小写”,不要在以对象名作为非保留关键字的语句中使用,存在审核不准确情况,比如:SELECT id FROM name,name是非保留关键字。 “查询系统视图时,如果使用对象名作为筛选条件,对象名应使用小写”支持的系统视图参见表3。 表3 视图审核 视图名 所属schema 表示对象名的列 adm_arguments pg_catalog、sys owner、object_name、package_name、argument_name adm_audit_object pg_catalog、sys username、owner、obj_name、action_name adm_audit_session pg_catalog、sys username、action_name adm_audit_statement pg_catalog、sys username、obj_name、action_name adm_col_comments pg_catalog、sys owner、table_name、column_name、schema adm_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege adm_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name adm_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name adm_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name adm_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name adm_objects pg_catalog、sys owner、object_name、subobject_name adm_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename adm_role_privs pg_catalog、sys grantee、granted_role adm_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema adm_roles pg_catalog、sys role adm_source pg_catalog、sys owner、name adm_sys_privs pg_catalog、sys grantee、privilege adm_tab_cols pg_catalog、sys owner、table_name、column_name、data_type_owner、schema、qualified_col_name adm_tab_privs pg_catalog、sys grantee、owner、table_name、grantor、privilege adm_tables pg_catalog、sys owner、table_name、tablespace_name adm_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema adm_tab_comments pg_catalog、sys owner、table_name、column_name、schema adm_tab_statistics pg_catalog、sys owner、table_name adm_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name adm_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name adm_types pg_catalog、sys owner、type_name adm_users pg_catalog、sys username、default_tablespace、temporary_tablespace、default_collation adm_views pg_catalog、sys owner、view_name db_all_tables pg_catalog、sys owner、table_name、tablespace_name db_arguments pg_catalog、sys owner、object_name、package_name、argument_name db_col_comments pg_catalog、sys owner、table_name、column_name、schema db_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege db_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name db_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name db_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name db_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name db_objects pg_catalog、sys owner、object_name、subobject_name db_procedures pg_catalog、sys owner、object_name db_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema db_source pg_catalog、sys owner、name db_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema db_tab_comments pg_catalog、sys owner、table_name、schema db_tables pg_catalog、sys owner、table_name、tablespace_name db_triggers pg_catalog、sys trigger_name、table_owner、table_name db_types pg_catalog、sys owner、type_name db_users pg_catalog、sys username db_views pg_catalog、sys owner、view_name dict pg_catalog、sys table_name dictionary pg_catalog、sys table_name my_col_comments pg_catalog、sys owner、table_name、column_name、schema my_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege my_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name my_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name my_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name my_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name my_objects pg_catalog、sys object_name、subobject_name my_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename my_role_privs pg_catalog、sys grantee、granted_role my_tab_col_statistics pg_catalog、sys table_name、column_name、schema my_source pg_catalog、sys owner、name my_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema my_tab_comments pg_catalog、sys owner、table_name、column_name、schema my_tab_statistics pg_catalog、sys table_name my_tables pg_catalog、sys owner、table_name、tablespace_name my_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name my_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name my_types pg_catalog、sys type_name my_views pg_catalog、sys owner、view_name pg_indexes pg_catalog、sys schemaname、tablename、indexname、tablespace pg_roles pg_catalog、sys rolename pg_tables pg_catalog、sys schemaname、tablename、tableowner、tablespace、tablecreator pg_user pg_catalog、sys username、nodegroup pg_views pg_catalog、sys schemaname、viewname、viewowner column_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name、column_name columns information_schema、sys table_catalog、table_schema、table_name、column_name constraint_column_usage information_schema、sys table_catalog、table_schema、table_name、column_name、constraint_catalog、constraint_schema、constraint_name constraint_table_usage information_schema、sys table_catalog、table_schema、table_name、constraint_catalog、constraint_schema、constraint_name enabled_roles information_schema、sys role_name schemata information_schema、sys catalog_name、schema_name、schema_owner、default_character_set_catalog、default_character_set_schema、default_character_set_name table_constraints information_schema、sys constraint_catalog、constraint_schema、constraint_name、table_catalog、table_schema、table_name table_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name tables information_schema、sys table_catalog、table_schema、table_name、self_referencing_column_name、user_defined_type_catalog、user_defined_type_schema、user_defined_type_name triggers information_schema、sys trigger_catalog、trigger_schema、trigger_name、event_object_catalog、event_object_schema、event_object_table、action_reference_old_table、action_reference_new_table usage_privileges information_schema、sys grantor、grantee、object_catalog、object_schema、object_name views information_schema、sys table_catalog、table_schema、table_name
  • Microsoft SQL Server To GaussDB配置项使用说明 问题描述 配置建议 建议值 SQLServer 表字段支持IDENTITY属性,但GaussDB不支持该属性,默认无法迁移。 建议配置”IDENTITY列“解决该类问题。 将IDENTITY属性列转换为SERIAL类型。 影响:序列号数据类型是四个字节的自增整数。取值范围为1至2147483647。超过这个上限,GaussDB将报错,DML语句执行失败。 SQLServer 表字段支持bit类型,但是GaussDB,不支持该属性,默认无法迁移。 建议配置“bit类型”解决该类问题。 将bit类型转化为boolean类型。 影响:boolean类型的取值相比bit类型多了一个“null”。 SQLServer支持datetimeoffset数据类型,但是GaussDB不支持, 默认转成timestamptz(二者最大秒数精度存在差异),时间函数year等转换方案处理结果在特殊情况下存在差异。 建议配置"datetimeoffset类型转换"解决该类问题 将datetimeoffset类型转换为varchar2类型。 影响:datetimeoffset类型转换为varchar2类型。 高斯O模式空字符串''等同于null,ISNULL等函数转换方案存在语义问题。 建议配置"忽略空字符串''为null的风险"解决该类问题。 不忽略空字符串''为null的风险。 影响:存在空字符串''风险的函数不进行转换。 GaussDB 分布式不支持外键约束,相关CREATE TABLE以及ALTER TABLE语句涉及外键约束会导致执行异常,需要根据实际业务情况选择是否需要外键特性。 建议配置"FOREIGN KEY约束"解决该类问题。 影响:注释FOREIGN KEY约束,注释后,原表的外键约束失效,不能确保数据保持一致,有可能创建不一致的数据。 GaussDB 数据库不支持SQL Server表变量(包括多语句表值函数返回表定义),目前GaussDB 较为接近的转换方案为临时表,二者在部分使用场景下有区别,用户根据需要选择是否开启对表变量类型的转换。 建议配置"是否转换表变量(包括多语句表值函数返回表定义)"解决该类问题。 将表变量转换临时表。 影响:SQL Server中显式表变量不遵循事务的回滚语义,GaussDB中临时表遵循事务回滚语义,需要关注业务语义是否发生变化。 父主题: 配置说明
  • 约束限制 规则的嵌套审核仅支持以下四种“select list |from|where |with xx as”,详情可参见表1。 别名不能和实体表重名,且别名之间不能重名。 暂不支持视图中的表审核。 不支持对数据库系统表及视图审核。 不支持语句中含有“#”或“/*”的SQL 审核。涉及点(依赖表结构、语句、阈值等)。 文件审核中和审核完成后,不可点击“重试”按钮。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同文件审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。 function/procedure不支持嵌套子函数包含分隔符为单引号的语句,详情可参见表2。
  • 前提条件 Oracle为源库,为了确保 DBMS_METADATA.GET_DDL 方法返回的对象DDL保持统一,建议您对Oracle源库进行如下设置。 不生成排序规则子句(影响对象:USER、TABLE、CLUSTER、VIEW、MATERIALIZED_VIEW、PROCEDURE、FUNCTION、PACKAGE、TYPE、TRIGGER)。 call DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'COLLATION_CLAUSE', 'NEVER'); 让表约束、索引将成为CREATE TABLE语句的一部分,而不是单独的ALTER、TABLE语句 call DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'CONSTRAINTS_AS_ALTER', false); 用户需拥有创建UGO评估项目的对应权限。具体权限,可参见权限管理进行设置。 各源库分别需要具备以下权限,需成功测试连接到源数据库并通过所有预检查项。 Oracle源数据库连接用户需要具有待迁移数据库的DBMS_METADATA、动态视图和Schema对象数量检查的权限。 MySQL为源库时需要具有MySQL系统库的查询权限、PROCESS权限和待迁移数据库的所有权限。从MySQL-8.0版本开始,针对存储过程和存储函数,还需要SHOW_ROUTINE权限。 DB2 for LUW为源库需要具有DBADM或DATAACCESS权限。 GoldenDB为源库时需要具有GoldenDB系统库的查询权限、PROCESS权限和待迁移数据库的所有权限。针对存储过程和存储函数,还需要SHOW_ROUTINE权限。 Microsoft SQL Server为源库时需要具有VIEW DEFINITION权限。 建议使用非生产环境数据库。 同一套源库中UGO不支持评估同名的重载函数。 GoldenDB为源库时,建议使用CN节点上用户来创建评估任务。 以MySQL 和 GoldenDB为源,如果给用户赋予了全局的SELECT权限,SHOW_ROUTINE权限也能通过,无需再单独授予。
  • 数据库字段设计规范 优先为表中的每一列选择符合存储需要的最小的数据类型。优先考虑数字类型,其次为日期或二进制类型,最后是字符类型。列的字段类型越大,建立索引占据的空间就越大,导致一个页中的索引越少,造成IO次数增加,从而影响性能。 整数型选择能符合需求的最短列类型,如果为非负数,声明需是无符号(UNSIGNED)类型。 每个字段尽可能具有NOT NULL属性。 避免使用ENUM类型,可以用TINYINT类型替换。修改ENUM值需要使用ALTER语句,ENUM类型的ORDER BY操作效率低,需要额外操作。 如果定义了禁止ENUM的枚举值是数值,可使用其他数据类型(如CHAR类型)。 实数类型使用DECIMAL,禁止使用FLOAT和DOUBLE类型。FLOAT和DOUBLE在存储的时候,存在精度损失的问题,很可能在值的比较时,得到错误的结果。 使用DATETIME、TIMESTAMP类型来存储时间,禁止使用字符串替代。 使用数字类型INT UNSIGNED存储IP地址,用INET_ATON、INET_NTOA可以在IP地址和数字类型之间转换。 VARCHAR类型的长度应该尽可能短。VARCHAR类型虽然在硬盘上是动态长度的,但是在内存中占用的空间是固定的最大长度。 使用VARBINARY存储大小写敏感的变长字符串,VARBINARY默认区分⼤小写,没有字符集概念,速度快。
  • 数据库索引设计规范 限制每张表上的索引数量,建议单张表索引不超过5个。索引并不是越多越好,索引可以提高查询的效率,但会降低写数据的效率。有时不恰当的索引还会降低查询的效率。 禁止给表中的每一列都建立单独的索引。设计良好的联合索引比每一列上的单独索引效率要高出很多。 每个InnoDB表强烈建议有一个主键,且不使用更新频繁的列作为主键,不使用多列主键,不使用UUID、MD5、字符串列作为主键。最好选择值的顺序是连续增长的列作为主键,所以建议选择使用自增ID列作为主键。 建议在下面的列上建立索引: 在SELECT,UPDATE,DELETE语句的WHERE从句上的列。 在ORDER BY,GROUP BY,DISTINCT上的列。 多表JOIN的关联列。 索引列顺序: 区分度最高的列放在联合索引的最左侧。区分度=列中不同值的数量/列的总行数。 尽量把字段长度小的列放在联合索引的最左侧。因为字段长度越小,一页能存储的数据量越大,IO性能也就越好。 使用最频繁的列放到联合索引的左侧。这样可以比较少的建立一些索引。 避免冗余的索引,例如:primary key(id),index(id),unique index(id) 避免重复的索引,例如:index(a,b,c),index(a,b),index(a),由于RDS for MariaDB查询优化器无法确定使用哪个索引,所以重复的和冗余的索引会降低查询效率。 在VARCHAR字段上建立索引时,需指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。 一般对字符串类型数据,长度为20的索引,区分度会高达90%以上,可以使用 count(distinct left(列名, 索引长度))/count(*) 的区分度来确定。 对于频繁查询优先考虑使用覆盖索引。 覆盖索引指包含了所有查询字段的索引,不仅仅是WHERE从句GROUP BY从句中的列,也包含SELECT查询的列组合,避免InnoDB表进行索引的二次查询。 外键约束: 建立外键关系的对应列的字符集必须保持一致或者存在外键关系的子表父表的字符集保持一致。
  • 数据库基本设计规范 所有表如果没有特殊需求,都要使用InnoDB存储引擎。InnoDB存储引擎支持事务、行级锁、具有更好的恢复性、高并发下性能更强。 数据库和表的字符集统一使用UTF8字符集,避免由于字符集的转换产生乱码。 所有的表和字段都需要添加注释。使用comment从句添加表和列的备注,从设计初期维护好数据字典。 谨慎使用RDS for MariaDB分区表,避免跨分区查询,否则查询效率会降低。分区表在逻辑上表现为一个表,但是在物理层面上将数据存储在多个文件。建议尽可能将分区表的不同分区文件存储在不同的磁盘阵列上。 表中的列不要太多,尽量做到冷热数据分离,减小表的宽度,以便在一页内存中容纳更多的行,进而减少磁盘IO,更有效的利用缓存。 经常一起使用的列尽量放到一个表中,避免过多的关联操作。 禁止在表中建立预留字段,否则修改列的类型会导致锁表,修改一个字段类型的成本要高于增加一个字段。 禁止在数据库中存储图片、文件等大的二进制数据。
  • 数据库命名规范 所有的数据库对象名称(包括库名、表名、列名等)建议以小写字母命名,每个单词之间用下划线分割。 所有的数据库对象名称禁止使用RDS for MariaDB保留关键字。 数据库对象的命名要能做到见名知意,并且不超过32个字符。 数据库中用到的临时表以“tmp”为前缀并以日期为后缀。 数据库中用到的备份表以“bak”为前缀并以日期为后缀。 在不同的库或表中,要保证所有存储相同数据的列名和列类型必须一致。
  • 使用场景 紧急恢复实例场景中,通过设置慢会话阈值帮助用户快速识别异常会话并手动结束该会话,使得数据库恢复正常,提高数据库的可用性。 新业务中出现并发数过高的SQL语句导致实例不稳定场景中,通过设置SQL限流规则功能控制并发数过高的SQL语句,保证实例的稳定性。 出现“磁盘空间满”问题时,通过查看磁盘空间功能实时了解磁盘空间概况与分布。您可以开启智能扩容,开启后当存储空间过小时,会自动扩容存储空间,保障数据库正常运行。 在突发流量过高、异常读写等业务场景中,通过配置自治限流功能控制活跃连接数来保障核心业务访问的可用性。
  • 功能列表 智能DBA支持以下功能,详情请参见表1。 表1 功能说明 功能 描述 相关文档 实例概览 提供数据库整体运行情况,包括告警统计、资源使用情况和重点性能指标,多方面实时展示实例的运行状态。基于运行数据结合智能算法对实例进行健康智能诊断,并对异常项提供解决方法与使用建议。 查看实例运行情况 实时会话 提供当前数据库的会话查询列表,并支持排序过滤展示。通过设置慢会话阈值来识别异常会话应对紧急实例恢复,保障数据库的可用性。 查看会话统计结果 设置慢会话阈值 实时性能 展示数据库实例各项性能指标,并提供日期对比功能,方便查看周期业务以及指标变化情况,及时发现异常。 查看性能指标 容量预估 数据库实例在使用过程中,当前磁盘空间数据与日志的占比以及历史上涨情况往往是用户关心的重点。智能DBA助手提供了容量预估功能,可以方便地查看磁盘空间概况与分布,并通过历史数据结合智能算法提供了空间预估等功能,尽早发现空间不足的情况并及时避免出现“磁盘空间满”问题。 查看磁盘空间 查看表智能诊断 设置诊断阈值 查看库表大小 慢SQL 提供指定时间段内的慢SQL分析功能。从用户、客户端、SQL模板等进行多维统计,展示统计结果并支持指定排序,识别慢SQL的精准来源,方便用户快速优化业务。 查看慢SQL SQL限流 针对新上业务不能及时优化SQL导致CPU等资源100%瓶颈的场景,按照SQL限流规则及时控制并发数过高的SQL语句,保证实例稳定性。 设置SQL限流规则 自治限流 该功能自动检测数据库的CPU利用率、活跃会话数等异常,根据业务优先级进行限流处理,保证核心业务的稳定运行。 用户可以根据业务情况,按照数据库或者用户进行限流。将非核心数据库或非核心用户业务配置为限流对象,可以保障核心业务不受影响。 配置自治限流 诊断日报 对前一日实例状态的汇总展示,包括慢SQL分析、性能与磁盘分析。支持用户下载和订阅分析报告。建议每天定时对实例进行诊断,以保证实例上业务的正常运转。 查看诊断报告 订阅诊断报告
  • 数据复制服务 数据库和应用迁移 UGO着重于异构数据库结构,如表结构、视图和存储过程等对象的迁移上云,解决数据库语法转换不兼容的问题。 数据复制服务(Data Replication Service)则着重于数据库毫秒级数据同步,支持同构异构数据库之间的数据传输/搬迁,降低数据库之间数据流通的复杂性,减少数据传输成本。 对于迁移方案来说,将存储过程、函数较复杂的异构数据库上云,UGO+DRS会是一个完整的闭环方案,建议同时使用。
  • 统一身份认证服务 统一身份认证服务(Identity and Access Management,简称IAM)为UGO提供了权限管理功能。 需要拥有UGO的Administrator权限后,您才能使用UGO。如需开通该权限,请联系拥有Security Administrator权限的用户,或者申请具有UGO Administrator权限的新用户。 统一身份认证服务的更多信息,请参见《统一身份认证服务用户指南》。
  • VPC终端节点服务 UGO依赖VPC终端节点服务(VPC Endpoint)作为目标库连接代理,用来安全地访问您的目标数据库。 当您使用UGO创建迁移项目时,您除了需要拥有UGO FullAccess权限外,也需要拥有VPC Endpoint Administrator权限或Tenant Administrator权限。UGO会为您的目标库创建VPC终端节点服务,并在您结束迁移删除项目时为您删除对应的VPC终端节点服务。 创建VPC终端节点服务不收取任何费用。UGO会为创建的VPC终端节点服务添加白名单权限控制,确保您目标库的连接安全,您也可以在VPC终端节点服务页面看到目标库相应的终端节点服务。为了保证UGO功能使用正常,请不要在迁移项目未结束时删除目标库对应的VPC终端节点服务。
  • SQL Server为源 以具有创建数据库权限的用户登录Gauss数据库。 执行以下命令,使用Oracle兼容模式创建Gauss数据库。 主备版: create database databasename dbcompatibility = 'A' ; 分布式: create database databasename dbcompatibility = 'ORA'; 执行以下命令,查看是否创建成功。 select * from pg_database where datname = 'databasename'; 主备版:若datcompatibility兼容性一列为A,则数据库创建成功。 分布式:若datcompatibility兼容性一列为ORA,则数据库创建成功。
  • RDS for PostgreSQL主备实例磁盘空间和备份空间的区别 对于RDS for PostgreSQL数据库,将业务访问的节点称为主实例,同时主实例数据会实时同步到另一个节点(称为备实例)。备实例仅作为备份形式存在,不提供业务访问,当主实例故障时,RDS for PostgreSQL会自动将备实例升为主实例,从而达到高可用的目的。 磁盘空间 备实例磁盘空间大小和主实例是一致的,当主实例扩容时,会同时扩容备实例。 主备实例的数据会实时同步,当大量业务写入或复制时延高时可能会导致主备实例间来不及同步,此时主节点会保留所需要的wal日志,使该部分wal日志无法被清理,从而导致wal日志积压,占用磁盘空间。 备份空间 数据库的备份空间用来存放自动备份、手动备份文件,以及SQL审计日志。免费备份空间和实例磁盘容量一致,需要设置备份策略,当使用超出后会按照阶段收取费用。 当备份空间满时,可参考如何清理云数据库RDS的备份空间来清理备份空间。 父主题: 资源及磁盘管理
  • 前提概要 前提:体验需要三方配合,首先要开通IoTEdge,用于节点管理和应用管理,再开通IoTDA,用于设备接入与管理,还得有边缘服务器作为节点被IoTEdge纳管。 边缘服务器:第一点提到的IoTEdge和IoTDA是华为云服务,使用华为云租户账号直接免费开通可用,边缘服务器属于硬件,可以购买低配的ECS代替,其EIP则作为边缘服务器的节点IP地址。 在IoTEdge上注册节点:在购买的ECS上执行安装脚本命令,即自动部署好2个系统应用,agent用于节点应用管理,hub用于数据通信。 网关设备:在上一步注册节点的同时,IoTEdge会自动在IoTDA侧创建一个网关设备,即IoTDA把整个边缘节点(也即边缘网关)当成一个网关设备。该网关设备用于边缘节点与IoTDA之间的数据交互。 边缘设备:在网关设备下注册边缘设备,则相当于边缘设备是网关下的子设备,用于边缘设备与边缘节点之间的数据交互。本示例采用MQTT.fx工具模拟边缘设备。 数据上报:边缘设备上报的数据是到边缘节点(即购买的ECS服务器),然后由节点上的系统应用(hub)负责json格式解析,再根据该边缘设备与网关设备的父子关系,重新组装json数据格式,用网关设备上报给IoTDA。 概述:边缘设备上报数据到边缘节点,然后节点上的系统应用把数据解析重新拼装,以网关设备上报的方式把数据报给IoTDA。数据上报流程不经过IoTEdge云服务,IoTEdge主要做节点和应用管理。
  • 前提概要 前提:体验需要三方配合,首先要开通IoTEdge,用于节点管理和应用管理,再开通IoTDA,用于设备接入与管理,还得有边缘服务器作为节点被IoTEdge纳管。此外还需开通SWR,用于存储已开发并想部署在边缘节点上运行的Docker镜像。 边缘服务器:第一点提到的IoTEdge, IoTDA, SWR是华为云服务,使用华为云租户账号直接免费开通可用,边缘服务器属于硬件,可以购买低配的ECS代替,其EIP则作为边缘服务器的节点IP地址。 在IoTEdge上注册节点:在购买的ECS上执行安装脚本命令,即自动部署好2个系统应用,agent用于节点应用管理,hub用于数据通信。 Docker镜像:是集成了边缘SDK的应用程序打包成的容器镜像,可作为边缘节点的自定义应用部署到边缘服务器上运行,可在节点上进行设备数据协议解析、子系统数据解析、数据业务处理、智能计算等。 概述:用户将Docker镜像打包上传到SWR云服务,通过IoTEdge将该容器镜像配置为用户自定义应用,按需部署到指定边缘节点上运行起来。
  • 业务流程 IoT边缘基于物联网平台的设备接入服务,给您提供边缘侧设备接入、低时延业务联动和本地闭环管理的解决方案。 使用IoT边缘服务的关键流程如下: 图1 业务流程 序号 步骤 步骤说明 1 购买边缘节点硬件 边缘节点硬件需要满足一定的规格要求。 购买边缘节点后,联系技术支持进行边缘节点组网配置。 2 开通IoT边缘服务、IoTDA设备接入服务等 IoT边缘使用时,需要依赖IoTDA设备接入服务提供针对边缘节点和节点下的设备的完整的设备接入和设备管理能力,在使用IoT边缘服务之前,需自行开通设备接入(IoTDA)服务。 3 注册边缘节点 在IoT边缘服务的控制台注册边缘节点,平台自动生成安装命令。 4 安装边缘软件 在边缘节点硬件上执行安装命令,完成对边缘节点的安装。安装完成后,边缘节点将作为设备自动连接到IoTDA设备接入服务。 5 部署应用模块 在IoT边缘服务的控制台上部署应用。边缘节点将自动从云端下载IoT边缘镜像,并部署到边缘节点中。 6 购买数采服务(可选) 在IoT边缘服务的控制台,购买数采资源包。 7 数据采集对接 将数据采集应用从云端下发部署到边缘节点中,对其进行数采配置并下发,将边缘节点硬件与近场设备对接(有线或无线),解析设备协议进行数据采集。详情可参考基于IoT边缘实现OT数采(OPCUA协议)。 8 设备数据上报 将采集到的数据,从边缘节点上报到IoTDA设备接入服务。
  • 响应示例 状态码: 200 处理成功返回。[/topic/body/section/p/br {""}) (br] { "total" : 1, "summary_results" : [ { "date" : "20231201000000", "link" : "http://cdn-log-user-bj4.obs.cn-north-4.myhuaweicloud.com:80/asset-play-summary/05a8aee14d8026a92fcdc018fe235c2c/20231201-asset-play-summary.gz?AccessKeyId=QXBNBGA2GW9EP2XXOYUN&Expires=1701786544&Signature=fJjkLLU1IBeTwANC0U0wUZuzd%2F8%3D" } ] } 状态码: 400 处理失败返回。 { "error_code" : "VOD.10053", "error_msg" : "The request parameter is illegal, illegal field: {xx}." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 记录总数 summary_results Array of AssetDailySummaryResult objects 日志文件列表 表5 AssetDailySummaryResult 参数 参数类型 描述 date String 播放日期 yyyyMMdd000000 link String -日播放统计数据文件下载地址,有效期12个小时。 -日志内容格式:[域名]\t[媒资ID]\t[统计日期]\t[访问流量值(单位bytes)]\t[播放次数]。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时必选。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。
  • URI GET /v1/{project_id}/asset/daily-summary 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID 表2 Query参数 参数 是否必选 参数类型 描述 start_time 是 String 查询开始时间。 -查询指定开始日期数据,格式为yyyyMMdd000000。 -只能查询一年以内数据,日期跨度不超过90天 end_time 是 String 查询结束时间。 -查询指定结束日期数据,格式为yyyyMMdd000000。 -只能查询一年以内数据,日期跨度不超过90天 offset 否 Integer 偏移量,表示查询该偏移量后面的记录 limit 否 Integer 查询返回记录的数量限制
共100000条