云服务器内容精选

  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 status String 开关状态。取值: Enabled:已开启, Disabled:已关闭, Switching:开关切换中。 retention_days Long SQL数据保存天数。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:8 最大长度:36 error_msg String 错误描述。 最小长度:2 最大长度:512 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:8 最大长度:36 error_msg String 错误描述。 最小长度:2 最大长度:512
  • URI GET /v3/{project_id}/instances/{instance_id}/sql/switch 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID。 表2 Query参数 参数 是否必选 参数类型 描述 type 是 String 开关类型。取值DAS SQL Explorer和DAS Slow Query Log,分别表示DAS收集全量SQL开关和DAS收集慢SQL开关。 datastore_type 是 String 数据库类型。当前全量SQL支持的数据库类型包括MySQL和 GaussDB (for MySQL),慢SQL支持的类型:MySQL、GaussDB(for MySQL)、PostgreSQL。
  • 请求示例 查询慢日志的开关状态。 GET https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/instances/da304cd5bbb944de828759bc7be3d3fein01/sql/switch?type=DAS Slow Query Log&datastore_type=MySQL
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 请求错误。 401 Unauthorized 未提供认证信息,或认证信息错误。 403 Forbidden 请求页面被禁止访问。 408 Request Timeout 请求超出了服务器的等待时间。 429 Too Many Requests 当前请求过多。 500 Internal Server Error 请求未完成,服务异常。 503 Service Unavailable 系统暂时不可用,请求受限。
  • URI GET /V1.0/{project_id}/metric-data 样例: GET /V1.0/{project_id}/metric-data?namespace={namespace}&metric_name={metric_name}&dim.{i}=key,value&from={from}&to={to}&period={period}&filter={filter} 参数说明 表1 参数说明 名称 是否必选 说明 project_id 是 项目ID。 获取方式请参见获取项目ID。 表2 查询检索参数 名称 是否必选 参数类型 说明 namespace 是 String 服务的命名空间,各服务命名空间请参考支持监控的服务列表。 格式为service.item;service和item必须是字符串,必须以字母开头,只能包含0-9/a-z/A-Z/_,service.item总长度最短为3,最大为32。 metric_name 是 String 指标名称,可通过查询指标列表获取已有的告警规则的指标名。 from 是 Integer 查询数据起始时间,UNIX时间戳,单位毫秒(ms)。 由于聚合运算的过程是将一个聚合周期范围内的数据点聚合到周期起始边界上,如果将from和to的范围设置在聚合周期内,会因为聚合未完成而造成查询数据为空,所以建议from参数相对于当前时间向前偏移至少1个周期。 以5分钟聚合周期为例:假设当前时间点为10:35,10:30~10:35之间的原始数据会被聚合到10:30这个点上,所以查询5分钟数据点时from参数应为10:30。 说明: 云监控 会根据所选择的聚合粒度向前取整from参数。 to 是 Integer 查询数据截止时间UNIX时间戳,单位毫秒(ms)。from必须小于to。 period 是 Integer 监控数据粒度。 取值范围: 1,实时数据 300,5分钟粒度 1200,20分钟粒度 3600,1小时粒度 14400,4小时粒度 86400,1天粒度 filter 是 String 数据聚合方式,支持的聚合方式如下: average:聚合周期内指标数据的平均值。 max:聚合周期内指标数据的最大值。 min:聚合周期内指标数据的最小值。 sum:聚合周期内指标数据的求和值。 variance:聚合周期内指标数据的方差。 说明: 聚合运算的过程是将一个聚合周期范围内的数据点根据相应的聚合算法聚合到周期起始边界上,以5分钟聚合周期为例:假设当前时间点为10:35,则10:30~10:35之间的原始数据会被聚合到10:30这个时间点。 dim 是 String 指标的维度,目前最大支持4个维度,维度编号从0开始;维度格式为dim.{i}=key,value,key的最大长度32,value的最大长度为256。 CloudTable仅支持多维度查询。 以下维度说明仅为示例,具体是否支持多维度请参见各服务中监控指标说明中的维度说明。 单维度:dim.0=instance_id,i-12345 多维度:dim.0=instance_id,i-12345&dim.1=instance_name,i-1234 对于dim字段的内容,可通过调用查询指标列表接口,在其响应体的相关指标数据中获取。 对于OBS相关指标数据,当进行了相关OBS接口操作时可查询到相关指标数据,否则查询结果为空。 对于EVS相关指标数据,disk_name维度下,它的返回值有云服务器实例ID-盘符名和云服务器实例ID-volume-卷ID两种。 云服务器实例ID-盘符名,例如:6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d-vda(vda为盘符名)。 云服务器实例ID-volume-卷ID,例如:6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d-volume-31f45764-38b3-44ad-aaca-4015c83371e6。 样例: 请求样例一:查看弹性云服务器ID为6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d的CPU使用率在2019-04-30 20:00:00到2019-04-30 22:00:00时间内,周期为20分钟的监控数据。 GET https://{云监控的endpoint}/V1.0/{project_id}/metric-data?namespace=SYS.E CS &metric_name=cpu_util&dim.0=instance_id,6f3c6f91-4b24-4e1b-b7d1-a94ac1cb011d&from=1556625600000&to=1556632800000&period=1200&filter=min 请求样例二:查询CloudTable服务维度分别是cluster_id为f2fbxxxc-36b2-4d1d-895d-972a4d656xxx和instance_name为hmaster-active的监控指标cmdProcessMem,在2019-04-30 20:00:00到2019-04-30 22:00:00时间内,周期为20分钟的监控数据。 GET https://{云监控的endpoint}/V1.0/{project_id}/metric-data?namespace=SYS.CloudTable&metric_name=cmdProcessMem&dim.0=cluster_id,f2fbxxxc-36b2-4d1d-895d-972a4d656xxx&dim.1=instance_name,hmaster-active&from=1556625600000&to=1556632800000&period=1200&filter=variance
  • 响应消息 响应参数 表3 响应参数 名称 参数类型 说明 datapoints Array of objects 指标数据列表。详细参数请参见表4。 由于查询数据时,云监控会根据所选择的聚合粒度向前取整from参数,所以datapoints中包含的数据点有可能会多于预期。 metric_name String 指标ID,例如弹性云服务器的监控指标CPU使用率,对应的metric_name为cpu_util。各服务监控指标请参考支持监控的服务列表。 表4 datapoints字段数据结构说明 名称 参数类型 说明 average Double 聚合周期内指标数据的平均值。 max Double 聚合周期内指标数据的最大值。 min Double 聚合周期内指标数据的最小值。 sum Double 聚合周期内指标数据的求和值。 variance Double 聚合周期内指标数据的方差。 timestamp Long 指标采集时间,UNIX时间戳,单位毫秒。 unit String 指标单位。 响应样例 响应样例一:维度为SYS.ECS,响应弹性云服务器,CPU使用率的平均值。 { "datapoints": [ { "average": 0.23, "timestamp": 1442341200000, "unit": "%" } ], "metric_name": "cpu_util" } 响应样例二:维度为SYS.ECS,响应弹性云服务器,CPU使用率的求和值。 { "datapoints": [ { "sum": 0.53, "timestamp": 1442341200000, "unit": "%" } ], "metric_name": "cpu_util" } 响应样例三:维度为SYS.ECS,响应弹性云服务器,CPU使用率的最大值。 { "datapoints": [ { "max": 0.13, "timestamp": 1442341200000, "unit": "%" } ], "metric_name": "cpu_util" }
  • 原始加密函数 原始加密函数仅仅会对数据运行一次加密,不支持PGP加密的任何高级功能,因此存在以下问题: 直接将用户密钥作为加密密钥。 不提供任何完整性检查来校验加密后的数据是否被修改。 需要用户自己关联所有加密参数,包括初始值(IV)。 不支持处理文本数据。 因此,在引入了PGP加密后,不建议使用这些原始加密函数。 encrypt(data bytea, key bytea, type text) returns bytea decrypt(data bytea, key bytea, type text) returns bytea encrypt_iv(data bytea, key bytea, iv bytea, type text) returns bytea decrypt_iv(data bytea, key bytea, iv bytea, type text) returns bytea 其中,data是需要加密的数据;type用于指定加密/解密方法。type参数的语法如下: algorithm [ - mode ] [ /pad: padding ]
  • 通用哈希函数 digest() digest()函数可以根据不同的算法生成数据的二进制哈希值,语法如下: digest(data text, type text) returns bytea digest(data bytea, type text) returns bytea 其中,data是原始数据,type是加密算法包括md5、sha1、sha224、sha256、sha384、sha512和sm3;函数的返回结果为二进制字符串。 示例: 使用digest() 函数对字符串GaussDB(DWS)进行sha256加密存储: select digest('GaussDB(DWS)', 'sha256'); digest -------------------------------------------------------------------- \xcc2d1b97c6adfba44bbce7386516f63f16fc6e6a10bd938861d3aba501ac8aab (1 row)
  • 密码哈希函数 crypt()和gen_salt()函数专用于哈希密码。crypt()执行哈希用于加密数据,gen_salt()用于生成加盐哈希。 crypt()中的算法和普通的MD5或者SHA1哈希算法存在以下不同之处: crypt()中算法很慢。由于密码包含的数据量很小,这是增加暴力破解难度的唯一方法。 它们使用一个随机值(称为salt,即盐值),因此这样具有相同口令的用户将得到不同的密文口令。这也是针对破解算法提供一种额外的安全保护。 它们的结果中包括了算法类型,因此可以针对不同用户使用不同的算法对密码进行加密。 其中一些算法具有自适应性,意味着当计算机性能变得更快时,可以调整该算法使其变得更慢,而不会产生与已有密码的不兼容性。 crypt()函数所支持的算法如下表: 表1 crypt()支持的算法 算法 密码最大长度 自适应性 Salt位数 输出结果长度 描述 bf 72 √ 128 60 基于Blowfish的2a变种算法 md5 unlimited × 48 34 基于MD5的加密算法 xdes 8 √ 24 20 扩展DES des 8 × 12 13 原生UNIX加密算法
  • 随机数据函数 gen_random_bytes()函数用于生成具有强加密性的随机字节。 gen_random_bytes(count integer) returns bytea 其中,count表示返回的字节数,取值为1到1024。 示例: SELECT gen_random_bytes(16); gen_random_bytes ------------------------------------ \x1f1eddc11153afdde0f9e1229f8f4caf (1 row) gen_random_uuid()函数用于返回一个version 4的随机UUID。 SELECT gen_random_uuid(); gen_random_uuid -------------------------------------- 2bd664a2-b760-4859-8af6-8d09ccc5b830
  • 行级访问控制设置 行级访问控制的目的是控制表中行级数据可见性,通过在数据表上预定义Filter,在查询优化阶段将满足条件的表达式应用到执行计划上,影响最终的执行结果。当前受影响的SQL语句包括SELECT,UPDATE,DELETE。 用户可以使用CREATE ROW LEVEL SECURITY POLICY语句在表上创建行访问控制策略(Row Level Security)。 该策略针对特定数据库用户、特定SQL操作生效的表达式。当数据库用户对数据表访问时,若SQL满足数据表特定的Row Level Security策略,在查询优化阶段将满足条件的表达式,按照属性(PERMISSIVE | RESTRICTIVE)类型,通过AND或OR方式拼接,应用到执行计划上。 对表创建了行级访问控制策略后,只有打开该表的行访问控制开关(ALTER TABLE ... ENABLE ROW LEVEL SECURITY),策略才能生效。
  • 使用须知 仅支持MySQL InnoDB引擎。 仅支持select/insert/update/delete语句诊断,其中insert必须带select子句。 暂不支持查询information_schema、test、mysql。 暂不支持使用视图的语句。 SQL诊断功能会获取相关表结构和数据分布信息(非原始数据),该信息仅用于诊断逻辑,不会存储到DAS服务器。 获取表结构和数据分布信息的过程中,可能会对实例带来额外负载,但对性能影响甚微。 SQL诊断历史是唯一存储在DAS服务器上的数据,如果执行删除操作后,也将彻底从服务器上删除。 格式化用于提高SQL语句易读性,只是转换SQL语句的显示形式,不会修改SQL的执行逻辑和语义。 格式化是对整个SQL窗口内所有SQL语句进行格式化,暂不支持选中多条语句中的某一条进行格式化。
  • 库表大小统计 可查看物理文件大小Top50库表,结合磁盘空间的分布情况,识别占用较高的库表并进行优化。 图6 查看TOP 50库表 单击“查看趋势”,可以查看近7天、近30天、自定义时间段(时间跨度在30天内)的数据量变化情况。 数据管理服务每天凌晨4点左右会进行一次数据采集。 物理文件大小为精确采集数据,其余指标为预估值(存在误差),如差距较大建议对目标表执行ANALYZA TABLE。 库名或表名中包含保留特殊字符时无法正常统计,包括“/”和“#p#p”。 实例总计表数量超过5万时,为了不影响实例,不会采集数据。 由于Top库表可能存在波动,趋势数据可能存在部分缺失。
  • 查看磁盘空间分布 支持查看实例磁盘空间的分布情况及磁盘空间的变化趋势。 图5 查看磁盘空间分布 如果磁盘空间(包括数据空间、Binlog、Slowlog、Relaylog、Audit log、临时空间、其他空间)对应的文件总数超过1万个,界面上不会展示磁盘空间分布数据和空间变化趋势,避免采集大量文件信息消耗性能,请联系技术支持处理。 数据空间:存放用户数据的磁盘空间。 Binlog:存放Binlog日志的磁盘空间。 Slowlog:存放慢日志的磁盘空间。 Relaylog:存放Relaylog日志的磁盘空间。 Audit log:存放审计日志的磁盘空间。 临时空间:存放临时文件的磁盘空间。 其他空间:操作系统预留空间,Linux操作系统会给系统用户预留一部分磁盘空间,系统预留大小预计是磁盘5%左右。
  • 表智能诊断 表智能诊断可以帮助您诊断“单表空间增长异常表”、“无主键表”、“无索引表”的异常情况。 表智能诊断支持自动诊断和手动诊断两种方式。 免费实例暂不支持表智能诊断功能,您可以在设置付费实例或者升级高级智能运维包后,使用该功能。 当表的数量超过5000张时,无法使用手动诊断功能。 当CPU利用率超过90%时,无法使用手动诊断功能。 自动诊断范围为:容量预估页面下方展示的表列表中Top50内的表,手动诊断无范围限制。 在“表智能诊断”区域,查看表智能诊断信息。 图3 表智能诊断 自动诊断 自动诊断将在每天凌晨4点左右自动进行一次。 您可以在表智能诊断左侧区域查看到近一天磁盘容量空间增长异常的表数量,单击具体的数字可以查看诊断详情。 近一天空间增长默认超过10240MB(即10GB)时,会报告异常。您也可以单击自动诊断右侧的,自定义诊断阈值。 手动诊断 单击“重新诊断”,手动触发诊断任务。该操作每5分钟可执行一次。 待诊断成功后,可以查看到无主键表和无索引表的数量,单击具体数字可以查看诊断详情。 图4 查看诊断详情