• 【第38课】GaussDB如何进行SQL调优
    数据库使用过程中,SQL调优是提升数据库性能的重点。SQL调优的唯一目的是“资源利用最大化”,即CPU、内存、磁盘IO、网络IO四种资源利用最大化。所有调优手段都是围绕资源使用开展的。所谓资源利用最大化是指SQL语句尽量高效,节省资源开销,以最小的代价实现最大的效益。本章介绍典型的SQL调优的方法和案例。调优流程对慢SQL语句进行分析,通常包括以下步骤:1. 收集SQL中涉及到的所有表的统计信息。在数据库中,统计信息是规划器生成计划的源数据。没有收集统计信息或者统计信息陈旧往往会造成执行计划严重劣化,从而导致性能问题。从经验数据来看,10%左右性能问题是因为没有收集统计信息。具体请参见更新统计信息。通过查看执行计划来查找原因。如果SQL长时间运行未结束,通过EXPLAIN命令查看执行计划,进行初步定位。如果SQL可以运行出来,则推荐使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看执行计划及实际运行情况,以便更精准地定位问题原因。有关执行计划的详细介绍请参见SQL执行计划介绍。3. 审视和修改表定义。4. 针对EXPLAIN或EXPLAIN PERFORMANCE信息,定位SQL慢的具体原因以及改进措施,具体参见典型SQL调优点。5. 通常情况下,有些SQL语句可以通过查询重写转换成等价的,或特定场景下等价的语句。重写后的语句比原语句更简单,且可以简化某些执行步骤达到提升性能的目的。查询重写方法在各个数据库中基本是通用的。经验总结:SQL语句改写规则介绍了几种常用的通过改写SQL进行调优的方法。典型调优案例选择合适的分布列现象描述:表定义如下:CREATE TABLE t1 (a int, b int);CREATE TABLE t2 (a int, b int);执行如下查询:SELECT * FROM t1, t2 WHERE t1.a = t2.b;优化分析:如果将a作为t1和t2的分布列:CREATE TABLE t1 (a int, b int) DISTRIBUTE BY HASH (a);CREATE TABLE t2 (a int, b int) DISTRIBUTE BY HASH (a);则执行计划将存在“Streaming”,导致DN之间存在较大通信数据量。如果将a作为t1的分布列,将b作为t2的分布列:CREATE TABLE t1 (a int, b int) DISTRIBUTE BY HASH (a);CREATE TABLE t2 (a int, b int) DISTRIBUTE BY HASH (b);则执行计划将不包含“Streaming”,减少DN之间存在的通信数据量,从而提升查询性能。建立合适的索引。现象描述:查询与销售部所有员工的信息:SELECT staff_id,first_name,last_name,employment_id,state_name,city FROM staffs,sections,states,places WHERE sections.section_name='Sales' AND staffs.section_id = sections.section_id AND sections.place_id = places.place_id AND places.state_id = states.state_id ORDER BY staff_id;优化分析:建议在places.place_id和states.state_id列上建立2个索引。更多其他调优案例请参考调优案例。
  • 【第37课】Oracle同步至GaussDB的最佳实践方案
    本实践使用DRS的实时同步功能将本地Oracle数据库实时迁移至华为云GaussDB。通过全量+增量同步,实现源数据库Oracle和目标数据库GaussDB的数据长期同步。业务架构图操作流程创建GaussDB实例创建GaussDB实例,作为迁移任务目标库。具体请参考创建实例。迁移前构造数据迁移前需要在源库构造一些数据类型,供迁移完成后验证数据。具体请参考这里。创建迁移任务创建DRS实例,将本地Oracle上的test_info数据库迁移到GaussDB实例中test_database_info数据库中。1.  登录华为云控制台。2.  单击管理控制台左上角的图标,选择区域。选择目标实例所在的区域。3. 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4. 左侧导航栏选择“实时同步管理”,单击“创建迁移任务”。5. 配置同步实例信息。选择区域,项目,填写任务名称。配置迁移任务的类型,选择目标实例和子网。单击“下一步”。6. 配置源库及目标库信息。填写源库的IP、端口、用户、密码等信息。填写完成后,需要单击“测试连接”,测试连接信息是否正确。填写目标库的账户和密码。填写完成后,需要单击“测试连接”,测试连接信息是否正确。单击“下一步”,仔细阅读提示内容后,单击“同意,并继续”。7. 设置同步。在源库选择需要迁移的数据库和表。本次实践中选择“test_info”中的“DATATYPELIST”表。​​​​​​​选择完成后,可以设置迁移后是否重新命名库名和表名。​​​​​​​本次实践将表名重新命名为“DATATYPELIST_After”。注意重新命名时不要使用特殊符号,否则会导致迁移后执行SQL语句报错。​​​​​​​确认重命名设置内容,单击“下一步”。​​​​​​​8. 高级设置。本页面内容仅做确认,无法修改,确认完成后单击“下一步”。9. 数据加工。在该页面可以对迁移的表进行加工。包括选择迁移的列,重新命名迁移后的列名,本次实践将“COL_01_CHAR______E”重新命名为“new-line”。选择需要加工的表。      编辑“COL_01_CHAR______E”列。      将“COL_01_CHAR______E”重新命名为“new-line”,单击“确定”。      单击“下一步”。10. 预检查。所有配置完成后,进行预检查,确保迁移成功。对于未通过的项目,根据检查结果中的提示信息修复,修复完成后,单击“重新校验”,直到预检查通过率为100%。​​​​​​​预检查全部通过后,单击“下一步”。11. 任务确定。检查所有配置项是否正确。单击“启动任务”,仔细阅读提示后,勾选“我已阅读启动前须知”。单击“启动任务”,完成任务创建。      12. 任务创建成功。任务创建成功后,返回任务列表查看创建的任务状态。
  • [数据库] 【第36课】如何在DRS上搭建MySQL异地单主灾备
    当某一地区故障而导致业务不可用,可以使用数据复制服务DRS推出的灾备场景,为业务连续性提供数据库的同步保障。本节小课为您介绍RDS for MySQL实例通过DRS服务搭建异地单主灾备的过程。实现原理RDS跨Region容灾实现原理说明:在两个数据中心独立部署RDS for MySQL实例,通过DRS服务将生产中心MySQL库中的数据同步到灾备中心MySQL库中,实现RDS for MySQL主实例和跨Region灾备实例之间的实时同步。更多关于MySQL实例灾备须知请单击这里了解。一、生产中心RDS for MySQL实例准备创建MySQL业务实例,选择已规划的业务实例所属VPC,并为实例绑定EIP。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华北-北京一”。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   单击“购买数据库实例”。5.   填选实例信息后,单击“立即购买”。 选择引擎版本信息。选择规格信息。选择已规划的网络信息。设置管理员密码。6.   为创建的RDS实例绑定弹性公网IP。二、灾备中心RDS for MySQL实例准备创建MySQL灾备实例,选择已规划的灾备实例所属VPC。1.   单击管理控制台左上角的,选择区域“华北-北京四”。2.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。3.   单击“购买数据库实例”。4.   填选实例信息后,单击“立即购买”。选择灾备实例引擎版本信息选择灾备实例规格信息选择灾备实例已规划的网络信息设置灾备实例管理员密码三、搭建容灾关系创建DRS灾备实例,创建时选择灾备中心创建的RDS for MySQL实例。1.   在“华北-北京四”区域,单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。2.   选择左侧“实时灾备管理”,单击右上角“创建灾备任务”。3.   灾备类型选择“单主灾备”,灾备关系选择“本云为备”,灾备数据库实例选择在“华北-北京四”新创建的MySQL灾备实例,单击“下一步”,开始创建灾备实例。设置基本信息设置灾备实例信息4.   返回“实时灾备管理”页面,可以看到新创建的灾备实例。创建完成5.   在灾备实例上,单击“编辑”。6.   根据界面提示,将灾备实例的弹性公网IP加入生产中心MySQL实例所属安全组的入方向规则,选择TCP协议,端口为生产中心MySQL实例的端口号。添加安全组规则      源库信息中的“IP地址或域名”填写生产中心MySQL实例绑定的EIP,“端口”填写生产中心MySQL实例的端口号。测试通过后,单击“下一步”,直到任务启动,任务状态为“灾备中”。编辑灾备任务灾备中四、容灾切换生产中心数据库故障时,需要手动将灾备数据库实例切换为可读写状态。切换后,将通过灾备实例写入数据,并同步到源库。1.   生产中心源库发生故障,例如:源库无法连接、源库执行缓慢、CPU占比高。2.   收到SMN邮件通知。邮件通知3.   查看灾备任务时延异常。时延异常4.   用户自行判断业务已经停止。具体请参考如何确保业务数据库的全部业务已经停止。5.   选择“批量操作 > 主备倒换”,将灾备实例由只读状态更改为读写状态。主备倒换倒换完成6.   在应用端修改数据库连接地址后,可正常连接数据库,进行数据读写。
  • [数据库] 【第35课】其他云MySQL迁移到RDS for MySQL实例
    数据复制服务(Data Replication Service,简称DRS)支持将其他云MySQL数据库的数据迁移到本云云数据库MySQL。通过DRS提供的实时迁移任务,实现在数据库迁移过程中业务和数据库不停机,业务中断时间最小化。本节小课为您介绍将其他云MySQL迁移到RDS for MySQL实例。部署架构更多关于MySQL数据迁移须知请单击这里了解。一.  创建RDS for MySQL实例创建MySQL业务实例,选择已规划的业务实例所属VPC和安全组。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华南-广州”。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   单击“购买数据库实例”。5.   配置实例名称和实例基本信息。      6.   选择实例规格。      7.   选择实例所属的VPC和安全组、配置数据库端口。      8.   配置实例密码。      9.   单击“立即购买”。10.   返回云数据库实例列表。当RDS实例运行状态为“正常”时,表示实例创建完成。二、其他云MySQL实例准备帐号权限要求当使用DRS将其他云MySQL数据库的数据迁移到本云云数据库MySQL实例时,帐号权限要求如下表所示,授权的具体操作请参考授权操作。迁移帐号权限迁移类型全量迁移全量+增量迁移源数据库(MySQL)SELECT、SHOW VIEW、EVENT。SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。网络设置源数据库MySQL实例需要开放外网域名的访问。白名单设置其他云MySQL实例需要将目标端DRS迁移实例的弹性公网IP添加到其网络白名单中,目标端DRS迁移实例的弹性公网IP在创建完DRS迁移实例后可以获取到,确保源数据库可以与DRS实例互通,各厂商云数据库添加白名单的方法不同,请参考各厂商云数据库官方文档进行操作。三、创建DRS迁移任务1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域,即为目标实例所在的区域。3.   单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4.   单击“创建迁移任务”。5.   填写迁移任务参数。      配置迁移任务名称。            填写迁移数据并选择模板库。这里的目标库选择创建的RDS实例。      6.   单击“下一步”。      迁移实例创建中,大约需要5-10分钟。迁移实例创建完成后可获取弹性公网IP信息。      7.   配置源库信息和目标库数据库密码。      8.   单击“下一步”。9.   在“迁移设置”页面,设置流速模式、迁移用户和迁移对象。流速模式:不限速迁移对象:全部迁移10.   单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。预检查完成后,且所有检查项结果均成功时,单击“下一步”。11.   参数对比。若您选择不进行参数对比,可跳过该步骤,单击页面右下角“下一步”按钮,继续执行后续操作。若您选择进行参数对比,对于常规参数,如果源库和目标库存在不一致的情况,建议将目标数据库的参数值通过“一键修改”按钮修改为和源库对应参数相同的值。12.   单击“提交任务”。      返回DRS实时迁移管理,查看迁移任务状态。      启动中状态一般需要几分钟,请耐心等待。            当状态变更为“已结束”,表示迁移任务完成。四、确认迁移结果确认迁移结果可参考如下两种方式:DRS会针对迁移对象、用户、数据等维度进行对比,从而给出迁移结果,详情参见在DRS管理控制台查看迁移结果。直接登录数据库查看库、表、数据是否迁移完成。手工确认数据迁移情况,详情参见在RDS管理控制台查看迁移结果。在DRS管理控制台查看迁移结果1.   登录华为云控制台。2.   单击管理控制台左上角的,选择目标区域。3.   单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4.   单击DRS实例名称。5.   单击“迁移对比”,选择“对象级对比”,单击“开始对比”,校验数据库对象是否缺失。6.   选择“数据级对比”,单击“创建对比任务”,查看迁移的数据库和表内容是否一致。7.   选择“用户对比”,查看迁移的源库和目标库的账号和权限是否一致。在RDS管理控制台查看迁移结果1.    登录华为云控制台。2.   单击管理控制台左上角的,选择目标区域。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   单击迁移的目标实例的操作列的“更多 > 登录”。      5.   在弹出的对话框中输入密码单击“测试连接”检查。6.   连接成功后单击“登录”。7.   输入实例密码,登录RDS实例。8.   查看并确认目标库名和表名等。确认相关数据是否迁移完成。
  • [数据库] 【第34课】如何将自建MySQL迁移到RDS for MySQL
    数据复制服务DRS支持将本地MySQL数据库的数据迁移至RDS for MySQL。通过DRS提供的实时迁移任务,实现在数据库迁移过程中业务和数据库不停机,业务中断时间最小化。本节小课为您介绍将自建MySQL迁移到RDS for MySQL的过程。部署架构本示例中,数据库源端为ECS自建MySQL,目的端为RDS实例,同时假设ECS和RDS实例在同一个VPC中。更多关于MySQL数据迁移须知请单击这里了解。一.  创建ECS(MySQL服务器)并安装MySQL社区版购买并登录弹性云服务器,用于安装MySQL社区版。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华东-上海一”。3.   单击左侧的服务列表图标,选择“计算 > 弹性云服务器 ECS”。4.   单击“购买云服务器”。5.   配置弹性云服务器参数,填选信息后,单击“立即购买”。            选择镜像和磁盘规格。      6.   在创建的ECS上单击“远程登录”。选择“CloudShell登录”。7.   输入root用户密码,完成登录。8.   执行如下命令,创建mysql文件夹。      mkdir /mysql9.   执行如下命令,查看数据盘信息。      fdisk -l10.   执行如下命令,初始化数据盘。      mkfs.ext4 /dev/vdb11.   执行如下命令,挂载磁盘。      mount /dev/vdb /mysql12.   执行如下命令,查看磁盘是否挂在成功。      df -h      当回显出现 /dev/vdb的数据时,表示挂载成功。13.   依次执行如下命令,创建文件夹并切换至install文件夹。      mkdir -p /mysql/install/data      mkdir -p /mysql/install/tmp      mkdir -p /mysql/install/file      mkdir -p /mysql/install/log      cd /mysql/install14.   下载依赖包并上传到/mysql/install/file命令。15.   下载并安装社区版MySQL。二. 创建ECS并安装MySQL客户端1.   创建MySQL客户端的弹性云服务器。确保和MySQL服务器所在ECS配置成相同Region、相同可用区、相同VPC、相同安全组。不用购买数据盘。云服务器名配置为:ecs-client。其他参数同MySQL服务器的ECS配置。2.   下载并安装MySQL客户,请参考安装MySQL客户端。三.  创建RDS实例本章节介绍创建RDS实例,该实例选择和自建MySQL服务器相同的VPC和安全组。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华东-上海一”。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   填选信息后,单击“购买数据库实例”。            选择实例规格。            选择实例所属的VPC和安全组、配置数据库端口。            配置实例密码。      四. 创建DRS迁移任务介绍自建MySQL服务器上的loadtest数据库迁移到RDS MySQL实例的详细操作过程。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华东-上海一”。3.   单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4.   单击“创建迁移任务”。5.   填写迁移任务参数,直到任务创建完成。      配置迁移任务名称。            填写迁移数据并选择模板库。这里的目标库选择创建的RDS实例。      6.   配置源库信息和目标库数据库密码。      7.   单击“下一步”,直到迁移任务提交成功,数据迁移完成。
  • [安全] 【云小课】安全第13课 CBH:通过云堡垒机管理资产时出现异常,怎么办?
    关键词:华为云 云堡垒机 登录异常在使用云堡垒机管理您的资产时,您是否会遇到以下这些问题呢?云堡垒机系统登录不上资源登录不上文件不能上传/下载......遇上这些问题,我们先通过一张图来了解一下CBH的网络访问限制吧。现在让我们跟随小课的脚步自查,购买云堡垒机实例时,是否做好了以下这些操作呢?检查CBH实例的可用区。根据资源选择可用区,即待管理的ECS、RDS等服务器上资源在哪个可用区(区域),就选择哪个可用区(区域),以此可以降低网络时延、提高访问速度。选择的区域和可用区必须是云堡垒机支持的区域。目前云堡垒机已开通区域和可用区如下表:区域名称区域可用分区名称可用分区华北-北京一cn-north-1cn-north-1a可用区1cn-north-1b可用区2华北-北京四cn-north-4cn-north-4a可用区1cn-north-4c可用区3华东-上海一cn-east-3cn-east-3a可用区1cn-east-3b可用区2cn-east-3c可用区3华东-上海二cn-east-2cn-east-2a可用区1cn-east-2b可用区2cn-east-2c可用区3cn-east-2d可用区4华南-广州cn-south-1cn-south-1a可用区1cn-south-1b可用区2cn-south-1c可用区3cn-south-1e可用区5华南-深圳cn-south-2cn-south-2a可用区1西南-贵阳一cn-southwest-2cn-southwest-2a可用区1cn-southwest-2d可用区4西北-克拉玛依cn-northwest-1cn-northwest-1a可用区1确认CBH规格是否满足用户运维的资源需求。根据运维用户量和资源数,选择合理规格配置。受限于云堡垒机“数据分区”空间大小,当上传/下载的文件大小大于剩余“数据分区”空间时,会导致上传/下载失败,因此需要变更版本规格,扩大系统的数据盘大小。云堡垒机提供“标准版”和“专业版”两个功能版本。功能版本功能说明标准版基础功能:身份认证、权限控制、帐号管理、安全审计专业版基础功能:身份认证、权限控制、帐号管理、安全审计增强功能:自动化运维、数据库运维审计每个版本配备100/200/500/1000/2000/5000资产规格,不同规格配置说明如下表。资产数并发数CPU内存系统盘数据盘1001004核8GB100GB1000GB2002004核8GB100GB1000GB5005008核16GB100GB2000GB100010008核16GB100GB2000GB200015008核16GB100GB2000GB500020008核16GB100GB2000GB确认选择的虚拟私有云(Virtual Private Cloud,VPC)网络与ECS等资源在同一区域。默认情况下,不同区域的VPC之间内网不互通,同区域的不同VPC内网不互通,同一个VPC下的不同可用区之间内网互通。云堡垒机支持直接管理同一区域同一VPC网络下ECS等资源,同一区域同一VPC网络下ECS等资源可以直接访问。若需管理同一区域不同VPC网络下ECS等资源,要通过对等连接、VPN等打通两个VPC间的网络;不建议跨区域管理ECS等资源。确认选择的是当前区域下的安全组,系统默认安全组Sys-default。一个安全组为同一个VPC网络内具有相同安全保护需求,并相互信任的CBH与资源提供访问策略。当云堡垒机加入安全组后,即受到该安全组中访问规则的保护。建议为云堡垒机单独创建安全组,与主机资源互不影响。确认选择的是当前VPC内的子网。子网选择必须在VPC的网段内。确认选择的是当前区域下EIP,且EIP的带宽在5M以上。一个弹性公网IP只能绑定一个云资源使用,云堡垒机绑定弹性IP不能与其他云资源共用。实例创建成功后,弹性IP作为云堡垒机系统登录IP使用。故为正常使用云堡垒机,用户帐号至少需要创建一个弹性IP。为满足CBH系统使用需求,建议配置EIP带宽为5M以上。实例创建成功后,可根据需要“解绑”和“绑定”操作,更换云堡垒机系统登录EIP地址。更多关于CBH使用故障类的问题,戳这里进行了解吧~~。
  • [安全] 【云小课】安全第11课 SA基线检查---给云服务的一次全面“体检”
    关键词:华为云 态势感知 基线检查 全面体检 上云合规摘要:华为云态势感知(Situation Awareness,SA)是华为云安全管理与态势分析平台,能够检测出超过20大类的云上安全风险,利用大数据分析技术,为用户呈现出全局安全攻击态势。随着企业上云进程的加快,由于云服务配置不合理、不合规等引发的安全风险与日俱增。如果没有加以重视并做及时的诊断处置,将会对企业云上业务带来巨大的安全隐患。近期,华为云SA的云服务基线检查功能全面升级。它支持检测云服务(如IAM、OBS、ELB等)的身份认证、访问控制、日志审计等安全配置,可对云服务进行全面“体检”,第一时间了解云服务风险配置的所在范围和风险数目,并提供检测结果,针对存在的风险配置给出加固建议和帮助指导。帮助用户提前排除安全风险,保障云上业务的安全。Tips:云服务基线检查是指对云服务关键配置项进行检测,通过执行扫描任务,检查基线配置的风险状态,对存在安全隐患的配置进行处置。如同人体必要的健康检查一般,云服务基线检查是企业上云的关键环节。那么,如何判断云服务配置是否合规?怎样处理不合理配置?怎么开启云上风险全面“体检”呢?接下来,就跟随小课的脚步,三步教您通过华为云基线检查发现云服务风险配置项,对检查结果做响应处置,轻松满足安全合规~~~温馨提示:使用SA前,您需要购买SA戳这里步骤一:设置检查计划默认检查计划是每隔3天检查一次,每次在00:00~06:00进行检查。如果不使用默认计划,可以根据业务需求进行设置。1. 在基线检查页面,单击页面右上角的“设置检查计划”,进入检查计划设置页面。2. 单击“创建计划”,系统右侧弹出新建检查计划页面。3. 在弹出的新建检查计划页面,配置检查计划并单击“确定”。   SA会在指定的时间执行云服务基线扫描,扫描结果可以在“基线检查”中查看。----结束步骤二:执行检查计划检查计划设置后,系统将根据指定检查时间进行检测。同时,还支持立即执行检查计划。立即检查所有检查规范SA可根据您设置的检查规范,立即执行已配置的检查规范。提醒:“立即检查”任务在10分钟内仅能执行一次。在基线检查页面,单击页面右上角“立即检查”。     2.刷新页面,查看“最近检查时间”,即可确认是否为最新的扫描结果。立即执行某个检查计划SA可立即手动执行您设置的某个检查计划。配置后,系统将立即执行已选择的基线检查计划。提醒:手动立即执行“定期自动检查计划”在10分钟内仅能执行一次。在左侧导航栏选择“设置 > 检测设置”,进入检测设置页面。在待执行立即手动检查的检查计划所在栏的上方单击“立即检查”。系统将立即执行已选择的基线检查计划。步骤三:查看检查结果检查计划执行后,稍等片刻,即可在基线检查页面查看当前区域检测到的基线检查结果汇总数据。表1 检查结果总览参数名称参数说明检查规范数最近一次执行基线检查的检查规范数/检查规范总数。检查项最近一次执行基线检查中所有的检查项数目。检查项合格率最近一次执行基线检查的基线合格率。整体合格率=合格检查项数量/检查项总数。合格率的统计范围为全部规范的全部检查项目。检查项结果分为合格、不合格、检查失败和待检查几种。当检查为不合格和检查失败时,可在•查看“检查规范”详情、•查看“检查资源”详情、或•查看“检查结果”详情中查看具体情况以及处理方法。风险资源分布最近一次执行基线检查的风险资源分布情况以及风险资源的数量。风险等级分为:致命、高危、中危、低危、提示几个级别。可在•查看“检查规范”详情、•查看“检查资源”详情、或•查看“检查结果”详情中查看具体情况以及处理方法。 查看“检查规范”详情在基线检查页面,默认进入“检查规范”列表页面。检查规范页面会展示所有基线检查规范,包括检查项、检查状态、风险资源、描述,以及最近检查时间等信息。单击“查看详情”,可以跳转至对应检查项的详情页面。基线检查提供风险项检查的详情查询能力,对某个的检查项执行了检查动作后,检查状态、时间、风险等级、描述、检查过程一目了然,并且支持查看这一检查项所覆盖的资源名称、类型,检查结果等。云服务基线检查的全貌信息和细节展现都一览无余。查看“检查资源”详情在基线检查页面,选择“检查资源”页签。检查资源以列表形式聚合呈现所有的风险资源结果,并按照风险等级做降级排序,高优展示风险数目多,风险等级高的云上资源,便于您查看详情,根据指导建议做及时的响应处置。单击“查看详情”,可以跳转至对应资源的详情页面。针对某一检查资源,呈现该资源下所有检查项的列表明细,您可以根据聚合后的检查项,全面查看风险检查状态,再做对应的检查或者详情查看操作。查看“检查结果”详情在基线检查页面,选择“检查结果”页签。单击“查看详情”,可以跳转至对应检查项的检查结果详情页面。您可查看该检查项的检查状态、最近检查时间、检查方式、风险等级、检查描述及检查过程,还有相关资料为您提供响应处置的指导建议,还可以查看这一检查项所覆盖的资源名称、资源类型等聚合明细,可针对某一资源再进行对应的检查操作。正视云上配置不合规、不合理导致的“病情”,通过云服务基线检查“安全体检”及时排查隐患,防患于未然,治患于根本,才能轻松满足安全合规,为云上业务保驾护航!更多关于SA的功能,戳这里
  • [进阶宝典] 【云小课】运筹帷幄-GaussDB(DWS)教你分析阻塞SQL的几个妙招
    在开发过程中,开发者常遇到SQL连接数超限、SQL查询时间过长、SQL查询阻塞等问题,您可以通过PG_STAT_ACTIVITY视图来分析和定位SQL问题,以下展示常用的一些定位思路。表1 部分PG_STAT_ACTIVITY字段名称类型描述usenamename登录该后端的用户名。client_addrinet连接到该后端的客户端的IP地址。 如果此字段是null,则表示通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。application_nametext连接到该后端的应用名。statetext后端当前总体状态。可能值是:active:后台正在执行查询。idle:后台正在等待新的客户端命令。idle in transaction:后端在事务中,但事务中没有语句在执行。idle in transaction (aborted):后端在事务中,但事务中有语句执行失败。fastpath function call:后端正在执行一个fast-path函数。disabled:如果后端禁用track_activities,则报告此状态。普通用户只能查看到自己帐户所对应的会话状态。即其他帐户的state信息为空。waitingboolean如果后端当前正等待锁则为true。enqueuetext语句当前排队状态。可能值是:waiting in queue:表示语句在排队中。waiting in global queue:表示语句在全局排队中。waiting in respool queue:表示语句在资源池排队中。waiting in ccn queue:表示作业在CCN排队中。空:表示语句正在运行。pidbigint后端线程ID。查看连接信息通过以下SQL就能确认当前的连接用户、连接地址、连接应用、状态、是否等待锁、排队状态以及线程id。SELECT usename,client_addr,application_name,state,waiting,enqueue,pid FROM PG_STAT_ACTIVITY WHERE DATNAME='数据库名称';回显如下usename | client_addr | application_name | state | waiting | enqueue | pid ---------+---------------+------------------+--------+---------+---------+----------------- leo | 192.168.0.133 | gsql | idle | f | | 139666091022080 dbadmin | 192.168.0.133 | gsql | active | f | | 139666212681472 joe | 192.168.0.133 | | idle | f | | 139665671489280 (3 rows)中止某个会话连接(仅系统管理员有权限)SELECT PG_TERMINATE_BACKEND(pid);查看SQL运行信息获取当前用户执行SQL信息:SELECT usename,state,query FROM PG_STAT_ACTIVITY WHERE DATNAME='数据库名称';回显如下,如果state为active,则query列表示当前执行的SQL语句,其他情况则表示为上一个查询语句。usename | state | query ---------+--------+--------------------------------------------------------------------------- leo | idle | select * from joe.mytable; dbadmin | active | SELECT usename,state,query FROM PG_STAT_ACTIVITY WHERE DATNAME='gaussdb'; joe | idle | GRANT SELECT ON TABLE mytable to leo; (3 rows)查看当前正在运行(非idle)的SQL信息:SELECT datname,usename,query FROM PG_STAT_ACTIVITY WHERE state != 'idle' ;查看耗时较长的语句查看当前运行中的耗时较长的SQL语句SELECT current_timestamp - query_start as runtime, datname, usename, query FROM PG_STAT_ACTIVITY WHERE state != 'idle' order by 1 desc;查询会返回按执行时间长短从大到小排列的查询语句列表。第一条结果就是当前系统中执行时间最长的查询语句。runtime | datname | usename | query -----------------+----------+---------+----------------------------------------------------------------------------------------------------------------------------------------- 00:04:47.054958 | gaussdb | leo | insert into mytable1 select generate_series(1, 10000000); 00:00:01.72789 | gaussdb | dbadmin | SELECT current_timestamp - query_start as runtime, datname, usename, query FROM PG_STAT_ACTIVITY WHERE state != 'idle' order by 1 desc; (2 rows)若当前系统较为繁忙,可以通过限制current_timestamp - query_start大于某一阈值来查看执行时间超过此阈值的查询语句。SELECT query from PG_STAT_ACTIVITY WHERE current_timestamp - query_start > 2;查看处于阻塞状态的语句查看当前处于阻塞状态的查询语句:SELECT pid, datname, usename, state, query FROM PG_STAT_ACTIVITY WHERE state <> 'idle' and waiting=true;执行以下语句结束到阻塞的SQL会话。SELECT PG_TERMINATE_BACKEND(pid);大部分场景下,阻塞是因为系统内部锁而导致的,waiting字段才显示为true,此阻塞可在视图pg_stat_activity中体现。在一些少数场景下,例如写文件、定时器等情况的查询阻塞,不会在视图pg_stat_activity中体现。查看阻塞的查询语句及阻塞查询的表、模式信息SELECT w.query as waiting_query, w.pid as w_pid, w.usename as w_user, l.query as locking_query, l.pid as l_pid, l.usename as l_user, t.schemaname || '.' || t.relname as tablename from pg_stat_activity w join pg_locks l1 on w.pid = l1.pid and not l1.granted join pg_locks l2 on l1.relation = l2.relation and l2.granted join pg_stat_activity l on l2.pid = l.pid join pg_stat_user_tables t on l1.relation = t.relid where w.waiting;该查询返回会话ID、用户信息、查询状态,以及导致阻塞的表、模式信息。查询到阻塞的表及模式信息后请根据会话ID结束会话。SELECT PG_TERMINATE_BACKEND(pid);想要了解更多华为云数据仓库GaussDB(DWS),请猛戳!!!
  • 【第31课】如何初步定位GaussDB慢SQL
    数据库在日常使用的过程中会产生很多SQL语句,而如果有些SQL语句运行了很长时间还没有结束,这些语句会消耗很多的系统性能。那么如何查询到有哪些SQL语句影响了系统的运行呢?学了本节课程后,您就将会掌握初步定位GaussDB慢SQL的方法。操作场景数据库执行SQL语句长时间无响应。数据库CPU/内存压力一直很大。操作步骤1.   使用DAS或者gsql连接实例。2.   查询系统中长时间运行的查询语句。SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity where state != 'idle' ORDER BY 1 desc;查询后会按执行时间从长到短顺序返回查询语句列表,第一条结果就是当前系统中执行时间最长的查询语句。返回结果中包含了系统调用的SQL语句和用户执行SQL语句,请根据实际找到用户执行时间长的语句。若当前系统较为繁忙,可以通过限制current_timestamp - query_start大于某一阈值来查看执行时间超过此阈值的查询语句。SELECT query FROM pg_stat_activity WHERE current_timestamp - query_start > interval '1 days';3.   设置参数track_activities为on。SET track_activities = on;当此参数为on时,数据库系统才会收集当前活动查询的运行信息。4.   从当前活动会话视图查找问题会话的线程ID。SELECT datid, pid, state, query FROM pg_stat_activity;显示类似如下信息,其中pid的值即为该会话的线程ID。 datid | pid | state | query -------+-----------------+--------+------- 13205 | 139834762094352 | active | 13205 | 139834759993104 | idle | (2 rows)如果state字段显示为idle,则表明此连接处于空闲,等待用户输入命令。如果仅需要查看非空闲的查询语句,则使用如下命令查看:SELECT datid, pid, state, query FROM pg_stat_activity WHERE state != 'idle';5.   分析长时间运行的查询语句状态。若查询语句处于正常状态,则等待其执行完毕。         如果是因为SQL执行效率低,建议参考官方文档优化SQL语句。若查询语句不正常执行,则参考步骤6结束异常会话。6.   根据线程ID结束会话。SELECT pg_terminate_backend(139834762094352);显示类似如下信息,表示结束会话成功。pg_terminate_backend ---------------------- t (1 row)显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded.          gsql客户端使用pg_terminate_backend函数终止本会话后台线程时,客户端不会退出而是自动重连。
  • [进阶宝典] 【云小课】打造企业数据“高内聚,低耦合”--试试GaussDB(DWS)逻辑集群,实现数据物理隔离
    逻辑集群是什么?传统的企业数仓数据,往往是各种业务数据集成到同一个数据仓库集群中,不同业务数据根据集群中的数据库或表中进行区分,实际上所有业务数据还是在同一个数仓中,会存在以下问题,具体表现在:数仓的数据规模越来越大,表越来越多。不同业务访问数仓过程中会带来资源的竞争,比如CPU、内存、磁盘IO、网络的竞争。虽然通过配置资源池可以一定程度解决资源竞争,但所有业务执行逻辑仍然同时在每个节点上执行,无法做到资源完全隔离。事实上,同一业务的不同作业总是倾向访问本业务相关的表,对其他业务的表访问较少,如果能做到业务内数据“高内聚”,业务间“低耦合”无疑是更好的选择。数据库表无论大小都被切分到所有节点,对小表来说,数据过于分散。当节点规模达到一定程度后,通过增加更多节点,提高查询并行度的方式可能就无法带来理想的扩展性了。如果为了避免集群变大,将不同业务数据拆分成独立集群,集群间数据互访就需要从应用层解决,或者需要跨集群导数。   逻辑集群实现了一个大集群按节点拆分,将大集群中所有节点分组,每个节点组构建一个逻辑集群,可以很好的解决上面所述的问题。逻辑集群是基于Node Group机制来划分物理节点的一种集群模式,从节点层次将大集群进行划分,和数据库形成交叉。一个数据库中的表可以按逻辑集群来分配到不同的物理节点,而一个逻辑集群也可以包含多个数据库的表。在划分逻辑集群后,整个数据库中对象间的层次关系如下图所示:在实际业务场景中,建议用户尽可能将同一个数据库的表创建到同一个逻辑集群中。                     该功能受限商用,如需使用,请在技术人员指导下进行。弹性集群弹性集群是指在逻辑集群模式下,非逻辑集群节点组成的集群并且总是存在。弹性集群的名称为elastic_group,是一个特殊的Node Group,可以包含多个或不包含任何DN节点。弹性集群不能用户手动创建,在物理集群下第一次创建逻辑集群时自动创建弹性集群,物理集群中所有不属于逻辑集群的物理节点都会加入弹性集群。后续逻辑集群创建所需的DN节点都是来自弹性集群中。因此,为了能够创建新的逻辑集群,需要保证弹性集群中有DN节点存在(在物理集群模式下第一次创建逻辑集群时不需要)。           用户可以通过扩容向弹性集群添加新的物理节点。权限说明逻辑集群创建权限(CREATE ON NODE GROUP)允许授予任何用户/角色,创建权限后可在对应的逻辑集群上进行创建表等相关操作。     允许修改表的owner为任何用户,但对表进行操作时,需要检查对应的schema和nodegroup权限。系统管理员可以关联到特定逻辑集群,并在多个逻辑集群中创建表。        允许将系统管理员权限授予关联了逻辑集群的用户,但同样遵循建表规则。非表对象(schema/sequence/function/trigger等)的访问不再检查逻辑集群权限。逻辑集群用户如果有创建数据库权限也可创建数据库。系统中的资源池必须关联到特定逻辑集群。               逻辑集群删除时只删除表、外表,资源池对象,其他对象不会删除。         逻辑集群有哪些注意事项?如何进入逻辑集群页面?登录GaussDB(DWS) 管理控制台。在集群列表中单击指定集群名称。进入集群“基本信息”页面,打开“逻辑集群开关”,出现“逻辑集群管理”页签。    4. 切换至逻辑集群页面,用户可进行相关操作。逻辑管理相关操作    想要了解更多华为云数据仓库GaussDB(DWS),请猛戳!!!
  • [专家秘籍] 【云小课】不可不知的调优技巧-GaussDB(DWS)表结构优化
    合理的表结构可以带来稳定和高效的性能,但是反过来说,如果表结构不合理,就可能会引起比较大的性能问题或者额外的工作成本。如何设计和优化一张表呢?GaussDB(DWS)带你一起来学习调优表的关键技巧。了解GaussDB(DWS)表设计的六个关键要素,就能很快发现调优表的技巧。选择存储方式表的存储方式分为行存储和列存储。                   左图直观的展示了存储方式的差异,但是建表时怎么决定用行存储还是列存储呢?      用户业务类型是决定表的存储类型的主要因素,可以根据以下业务场景选择:创建列存表示例:创建表warehouse_t1,存储方式为列存通过ORIENTATION参数指定。CREATE TABLE warehouse_t1 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) , W_GMT_OFFSET DECIMAL(5,2) ) WITH (ORIENTATION = COLUMN);选择压缩比对于数据库,IO 相对于CPU通常都是系统的性能瓶颈,合理的压缩手段不仅能节省空间,也能减少IO,提高读取性能。针对行存和列存,在数据入库的时候有不同的压缩比,进而入库的性能也会不同。对于I/O读写量大,CPU富足(计算相对小)的场景,选择高压缩比;反之选择低压缩比。依据此原则进行不同压缩下的测试和对比,以选择符合自身业务情况的最优压缩比。压缩比通过COMPRESSION参数指定,其中列存表取值为:YES/NO/LOW/MIDDLE/HIGH,默认值为LOW。选择压缩比可根据以下业务场景选择:创建使用压缩比的表示例:创建列存表warehouse_t2,压缩比通过COMPRESSION参数指定。CREATE TABLE warehouse_t2 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) , W_GMT_OFFSET DECIMAL(5,2) ) WITH (ORIENTATION = COLUMN, COMPRESSION=MIDDLE);选择分布方式和分布列GaussDB(DWS)支持REPLICATION和HASH分布。---复制表(Replication)将表中的全量数据在集群的每一个DN实例上保留一份,即每个数据节点都有完整的表数据。---哈希(Hash)表将表中某一个或几个字段进行hash运算后,生成对应的hash值,通过映射,把数据分布到指定DN。对于Hash分布表,在读/写数据时可以利用各个节点的IO资源,大大提升表的读/写速度。选择分布方式可根据以下业务场景选择:Hash分布表的分布列选取至关重要,需要满足以下原则:列值应比较离散,以便数据能够均匀分布到各个DN。例如,考虑选择表的主键为分布列,如在人员信息表中选择身份证号码为分布列。在满足第一条原则的情况下尽量不要选取存在常量filter的列。例如,表dwcjk相关的部分查询中出现dwcjk的列zqdh存在常量的约束(例如zqdh=’000001’),那么就应当尽量不用zqdh做分布列。在满足前两条原则的情况,考虑选择查询中的连接条件为分布列,以便Join任务能够下推到DN中执行,且减少DN之间的通信数据量。对于Hash分表策略,如果分布列选择不当,可能导致数据倾斜,查询时出现部分DN的I/O短板,从而影响整体查询性能。因此在采用Hash分表策略之后需对表的数据进行数据倾斜性检查,以确保数据在各个DN上是均匀分布的。可以使用以下SQL检查数据倾斜性:select xc_node_id, count(1) from tablename group by xc_node_id order by xc_node_id desc;其中xc_node_id对应DN,一般来说,不同DN的数据量相差5%以上即可视为倾斜,如果相差10%以上就必须要调整分布列。创建Replication/Hash分布表示例:创建行存表warehouse_t3,Replication分布方式通过DISTRIBUTE BY参数指定。CREATE TABLE warehouse_t3 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) , W_GMT_OFFSET DECIMAL(5,2) ) DISTRIBUTE BY REPLICATION;示例:创建列存表warehouse_t4,Hash分布方式通过DISTRIBUTE BY参数指定,分区键为W_WAREHOUSE_SK。CREATE TABLE warehouse_t4 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) , W_GMT_OFFSET DECIMAL(5,2) ) WITH (ORIENTATION = COLUMN, COMPRESSION=MIDDLE) DISTRIBUTE BY HASH (W_WAREHOUSE_SK);分区的设计分区表是把逻辑上的一张表根据某种方案分成几张物理块进行存储。这张逻辑上的表称之为分区表,物理块称之为分区。分区表是一张逻辑表,不存储数据,数据实际是存储在分区上的。分区表和普通表相比具有以下优点:---改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。---增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。---方便维护:如果分区表的某个分区出现故障,需要修复数据,只修复该分区即可。GaussDB(DWS)支持的分区表为范围分区表:将数据基于范围映射到每一个分区。这个范围是由创建分区表时指定的分区键决定的。分区键经常采用日期,例如将销售数据按照月份进行分区。分区使用示例:---创建分区表 CREATE TABLE demo_partition( id varchar(50), start_time timestamp without time zone ) with (orientation=column, compression=low) distribute by hash(id)Partition by range (start_time) ( partition p1 values less than ('2019-04-11 00:00:00'), partition p2 values less than ('2019-04-12 00:00:00'), partition p3 values less than ('2019-04-19 00:00:00'), partition p4 values less than (MAXVALUE) ); ---删除最大分区pmx ALTER TABLE demo_partition DROP partition pmx; ---增加分区 ALTER TABLE demo_partition add partition p4 values less than('2019-04-20 00:00:00'); ---删除某个分区中的数据 ALTER TABLE demo_partition truncate partition p1; ---查询某个分区的行数 SELECT count(1) FROM demo_partition partition(p1); ---分割某个分区(目前只有行存支持,列存不支持此功能) ALTER TABLE demo_partition split partition p3 at('2019-04-15 00:00:00') into( partition p31, partition p32 ); ---合并分区 ALTER TABLE demo_partition merge partitions p1,p2 into partition p12;选择索引索引可以用来提高数据查询性能,但是不恰当的使用将导致数据性能下降。建议仅在匹配如下某条原则时创建索引:经常执行查询的字段在连接条件上创建索引Where子句的过滤条件上经常出现在order by,group by和distinct字段DWS索引支持:Btree索引:使用一种类似B+树的结构来存储数据的键值,通过这种结构能够快速的查找索引。Btree适合支持比较查询和查询范围。但因为其本身的数据结构,当数据量非常大的时候,每条数据的入库速度会变得越来越慢,占用的内存也会越来越大,严重的影响了入库性能。GIN索引是倒排索引,可以处理包含多个键的值(比如数组)。Gist适用于几何和地理等多维数据类型和集合数据类型。Psort:针对列存表进行局部排序索引。行存表支持的索引类型:btree(行存表缺省值)、gin、gist;列存表支持的索引类型:Psort(列存表缺省值)、btree、gin。索引使用示例:---在表上创建一个索引 CREATE INDEX test-index on test using btree(vid); ---在分区表上创建分区索引 CREATE INDEX test-index on test using btree(vid) local; ---重建索引 ALTER INDEX test-index rebuild; ---设置索引不可用 ALTER INDEX test-index unusable; ---删除索引 DROP INDEX test-index;选择局部聚簇局部聚簇(Partial Cluster Key)是列存下的一种技术。该技术可以通过min/max稀疏索引较快的事先基表扫描的filter过滤。局部聚簇可以指定多列,但是不建议超过2列,选择原则如下:---受基表的简单表达式约束。这种约束一般形如col op const,其中col为列名,op为操作符=,<,>,<=,>=,const为常量值。---尽量采用选择度比较高(过滤更多数据)的简单表达式的列。---尽量把选择度比较低的约束列放在局部聚簇中的前面。---尽量把枚举类型的列放在局部聚簇的前面。局部聚簇使用示例:---创建一个带局部聚簇列的表 CREATE TABLE test(id int,volume text,partial cluster key (volume)) with (orientation=column, compression=low) distribute by hash (id); ---为普通表创建一个PCK,并使其生效 ALTER TABLE table_name add partial cluster key (column_name); VACUUM FULL table_name; ---删除表中的局部聚簇列: ALTER TABLE table_name drop constraint partial_cluster_key_name;基于这些关键要素的掌握,您可以改进表的分配,以达到您所期望的数据加载、存储和查询方面的效果。了解更多华为云数据仓库GaussDB(DWS),请点击这里。
  • [安全] 云小课 | 安全第10课 网站接入WAF失败怎么办?看这里就够了
    关键词:华为云 Web应用防火墙 接入WAF失败 故障排查网站成功接入WAF后,WAF才能检测并过滤网站的恶意攻击流量,确保网站安全、稳定、可用。如果网站接入WAF失败了,即WAF管理控制台上网站“接入状态”为“未接入”,该怎么办呢?不要着急,小课贴心为您奉上WAF接入失败排查宝典,三大步助您快速解决问题,接入WAF不用愁。第一步:刷新网站“接入状态”WAF每隔一小时自动检测防护网站的 “接入状态”。“接入状态”可能刷新不及时,建议您在网站所在行的“接入状态”栏单击,刷新状态。如果“接入状态”为“已接入”,说明网站已成功接入WAF。如果“接入状态”仍为“未接入”,请执行第二步:访问网站,使网站访问次数达到5分钟内20次以上。第二步:访问网站,使网站访问次数达到5分钟内20次以上当WAF统计到网站在5分钟内达到20次访问请求时,才会认定该网站已接入WAF。如果您的网站访问请求次数未达到该统计要求,请执行以下操作步骤:在1分钟内多次访问网站。在网站所在行的“接入状态”栏,单击刷新状态。如果“接入状态”为“已接入”,说明网站已成功接入WAF。如果“接入状态”仍为“未接入”,请执行第三步:检查网站配置是否正确。第三步:检查网站配置是否正确在WAF管理控制台上,查看网站的“部署模式”。根据网站“部署模式”,全面排查网站配置是否正确。云模式图1 云模式排查思路和处理建议可能原因处理建议域名参数配置错误进入“网站设置”界面,单击防护域名名称,在防护域名详情页面,检查域名参数配置是否正确。如果域名配置错误,删除该域名后重新添加。如果服务器配置错误,请单击,修改域名的服务器信息。建议您参照以下步骤,在本地验证域名是否配置正确。进入“网站设置”界面,在目标网站所在行的“接入状态”栏,单击,复制域名的CNAME值。在Windows操作系统中,选择“开始 > 运行”,在弹出框中输入“cmd”,按“Enter”,进入命令提示符窗口。运行ping 步骤1中获取的CNAME值,例如,ping e59e684e2278043ae98a5423aef8ee329.vip.huaweicloudwaf.com,获取WAF的回源IP。用记事本或notepad++等文本编辑器打开hosts文件,hosts文件一般位于“C:\Windows\System32\drivers\etc\”路径下。在hosts文件添加记录:防护域名 域名对应的WAF回源IP。修改hosts文件后保存,在命令提示符窗口中运行ping 防护域名(例如ping www.example.com)。如果回显信息中的IP地址为步骤3中的WAF回源IP地址,说明域名参数配置正确。未配置域名解析或代理回源地址确认接入WAF的网站是否使用DDoS高防、CDN、云加速等代理。是:确保网站的“是否已使用代理”已配置为“是”。将DDoS高防、CDN等代理回源地址修改为WAF的“CNAME”。(可选)在DNS服务商处添加一条WAF的“子域名”和“TXT记录”。否:到该域名的DNS服务商处,配置防护域名的别名解析。域名解析或代理回源地址配置错误请参照以下步骤验证域名的CNAME是否配置成功。在Windows操作系统中,选择“开始 > 运行”,在弹出框中输入“cmd”,按“Enter”,进入命令提示符窗口。执行nslookup命令,查询CNAME。如果回显信息的域名在WAF上的CNAME,则表示配置成功。以域名www.example.com为例。nslookup www.example.com如果CNAME配置失败,请重新修改DNS解析或回源地址。独享模式图1 独享模式排查思路和处理建议可能原因处理建议域名/IP参数配置错误进入“网站设置”界面,单击防护网站名称,在防护网站详情页面,检查域名/IP参数配置是否正确。如果域名/IP配置错误,删除该域名/IP后重新添加。如果服务器配置错误,请单击,修改域名/IP的服务器信息。未配置负载均衡,或负载均衡未配置EIP负载均衡配置错误或负载均衡绑定EIP错误未配置负载均衡,或负载均衡未配置EIP为独享引擎实例配置负载均衡。为弹性负载均衡绑定弹性公网IP。负载均衡配置错误或负载均衡绑定弹性公网IP错误配置负载均衡后,当WAF独享引擎实例的“健康检查结果”为“正常”时,说明弹性负载均衡配置成功。为弹性负载均衡绑定弹性公网IP后,可以查看绑定的弹性公网IP,说明绑定成功。域名/IP未在工信部备案参照备案流程在工信部备案后,再重新添加防护网站。更多关于WAF问题解决方法,戳这里进行了解吧~~安全无小事,时刻需警惕。2021,华为云普惠云安全,为您的网站、主机、数据提供免费云体检,还有一站式过等保贴心指导,赶紧戳这里,了解详情吧!
  • [技术干货] 第221期 玩转华为HiLens之端云协同AI开发
    华为HiLens是端云协同多模态AI开发应用平台,提供简单易用的开发框架、开箱即用的开发环境。本期云图说向您介绍如何在华为HiLens实现端云协同AI开发,实现多场景的智能化解决方案~想了解更多华为HiLens,请点击链接!
  • 【第28课】云数据库GaussDB语法入门
    之前我们讲了如何连接数据库实例,那连接数据库后如何使用数据库呢?那么我们今天就带大家了解一下GaussDB,以下简称GaussDB的基本语法。关于如何连接数据库,请戳这里。学习本节课程之后,您将可以完成创建数据库、创建表及向表中插入数据和查询表中数据等操作。前提条件•   GaussDB实例正常运行。•   已通过DAS或gsql连接数据库实例。操作步骤1.   通过DAS或gsql连接数据库实例。2.   创建数据库用户。      默认只有创建实例时的管理员用户可以访问初始数据库,您还可以手动创建其他数据库用户帐号。postgres=# CREATE USER joe WITH PASSWORD "xxxxxxxx";      xxxxxxxx需要替换为指定的密码,当结果显示为如下信息,则表示创建成功。CREATE ROLE      如上创建了一个用户名为joe,密码为xxxxxxxxx的用户。      如下命令为设置joe用户为系统管理员。postgres=# GRANT ALL PRIVILEGES TO joe;      使用GRANT命令进行相关权限设置,具体操作请参考GRANT。      引申信息:GaussDB对于用户可以进行灵活的权限控制,想要了解请戳管理用户及权限。3.   创建数据库。postgres=# CREATE DATABASE db_tpcds;      当结果显示为如下信息,则表示创建成功。CREATE DATABASE      创建完db_tpcds数据库后,就可以按如下方法退出postgres数据库,使用新用户连接到此数据库执行接下来的创建表等操作。当然,也可以选择继续在默认的postgres数据库下做后续的体验。postgres=# \q gsql -d db_tpcds -p 8000 -U joe Password for user joe: gsql compiled at 2020-05-08 02:59:43 commit 2143 last mr 131) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. db_tpcds=> 4.   创建表。   •   创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。db_tpcds=> CREATE TABLE mytable (firstcol int);       未使用“DISTRIBUTE BY”指定分布列时,系统默认会指定第一列为哈希分布列,且给出提示。系统返回信息以“CREATE TABLE”结束,表示创建表成功。NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'firstcol' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE   •   向表中插入数据:db_tpcds=> INSERT INTO mytable values (100);       当结果显示为如下信息,则表示插入数据成功。INSERT 0 1   •  查看表中数据:db_tpcds=> SELECT * from mytable; firstcol ---------- 100 (1 row)      引申信息:默认情况下,新的数据库对象是创建在“$user”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema。关于创建表的更多信息请参见创建和管理表。除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及GaussDB上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。----结束
  • [技术干货] 【云小课】EI第30课 玩转HiLens Studio之远程连接HiLens Kit
    华为HiLens是端云协同多模态AI开发应用平台,提供给开发者的多语言类集成开发环境HiLens Studio,开发者可以在HiLens Studio 中编写和调试技能代码。针对调试好的技能代码,开发者也可以在HiLens Studio中发布技能、部署并运行技能到端侧设备上。HiLens Kit是华为HiLens为您提供的一款端云协同多模态AI开发套件,支持图像、视频、语音等多种数据分析与推理计算。在HiLens Studio里您可以远程连接HiLens Kit系统,支持操作HiLens Kit的系统文件等配置,支持查看日志和实例进程。还等什么,今天就带大家揭秘如何通过HiLens Studio远程连接HiLens Kit!准备工作已购买并注册HiLens Kit设备至控制台。智能边缘系统注册设备SSH注册设备戳这里,一键订购HiLens Kit!戳这里,快速注册HiLens Kit!上电HiLens Kit通过电源按钮上电。1、将电源适配器一端插入Atlas 200 HiLens Kit后面板的电源接口。      此时电源适配器未上电,设备处于完全断电状态。2、将电源适配器接通外部电源。3、短按后面板上的电源按钮,将Atlas 200 HiLens Kit上电。      当健康指示灯绿色常亮时,表示Atlas 200 HiLens Kit上电成功。远程连接HiLens Kit1、登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>HiLens Studio”。     进入HiLens Studio 页面。2、单击右上角的,在右侧“Skill Installation” 区,在“Device Name”列选择您要安装技能的设备,单击“Operation”列的“Terminal”。      打开对应设备的Terminal窗口,您可以通过Linux命令对设备进行信息查看、文件操作等。      在编辑技能项目过程中,如果打开连接HiLens Kit的Terminal10分钟及以上时间,且没输入任何命令,Terminal会与设备自动断开。3、查看日志,当前仅支持1.2.0及以上的固件版本查看技能日志。      tail -f /home/log/alog/hilens/skills/开发者.技能名.技能ID/开发者.技能名.技能ID.logHiLens Kit更多操作HiLens Kit出厂预装华为自研的Euler操作系统,用户无需安装操作系统。如果需要操作HiLens Kit的系统文件等配置,可以使用Linux指令进行操作。如何在HiLens Kit安装软件包?如何使用root登录设备,并关闭连接超时?HiLens Kit不能显示中文怎么办?如何把HiLens Kit恢复出厂设置?
总条数:138 到第
上滑加载中