• [活动公告] 【获奖名单已公布】【云咖问答】第9期 数仓调优专家坐阵,与您畅聊GaussDB(DWS)运维工具TopSQL,提问互动赢开发者定制礼品~
    数仓在使用过程中,难免会面临查询语句出现异常中断、阻塞时间长等突发问题,如果没能及时记录信息,事后就需要投入更多的人力及时间成本进行问题的定位和解决,有时还无法定位到错误出现的地方。为了解决这种场景,GaussDB(DWS)提供了强大的运维工具TopSQL,对运行中和运行完成的语句全方面记录,帮助用户定位性能问题。TopSQL被誉为性能定位、劣化分析等的重要基石,为用户提供覆盖内存、耗时、IO、网络、空间等多方面的信息记录。在线体验性能调优沙箱实验,点击预约直播听专家详解TopSQL工具。本期我们邀请了华为云数仓GaussDB(DWS)调优专家刘老师坐阵,和大家一起探讨关于运维利刃—TopSQL的话题。【本期云咖】【问题参考】(包括不限于)1. GaussDB(DWS)在开启全部的topsql情况下,会影响查询性能吗2. GaussDB(DWS)中topsql会占用多大空间,是否需要手动清理3. 如果根据topsql指导日常的业务优化4. topsql能否统计到存储倾斜的场景……对于GaussDB(DWS)运维工具TopSQL,你有哪些疑问呢? 【活动时间】2024年2月19日-3月3日【参与方式】直接在此活动帖下方回帖提问即可。【获奖规则】参与云咖问答的提问我们会整理在问答专题中,你的提问将会帮助更多的开发者~欢迎大家踊跃提问,积极互动~【活动规则】1、开发者用户发布的提问,必须与本期产品相关,其他产品求助帖不参与此次活动,将视为无效内容,否则取消该用户获奖资格。(其他产品求助可发帖到相应的版块进行提问);2、本次活动不限用户的总提问数及连续提问数,但需保证提问质量,如华为云社区小编认定参与用户有恶意灌水嫌疑,则取消该用户获奖资格;3、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定; 4、每期活动预计于结束后10天内完成奖项公示,并于结束后20个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [维护宝典] GaussDB(DWS)查询视图报错:ERROR: The view "xxx" is invalid! Hint: Please turn on GUC parameter "view_independ
    【问题背景】:执行查询抛出报错:ERROR: The view "xxx" is invalid! Hint: Please turn on GUC parameter "view_independ问:抛出该报错的问题原因为?答:参数view_independent打开的时候执行ddl操作,让视图无效,后续关闭参数,这个时候再查询抛出该报错,问:view_independent这个参数默认为关闭,打开后再关闭,对数据库中的视图是否有什么潜在的影响答:打开后再关闭,中间若进行过删除视图操作,可能会存在很多无效视图。当参数view_independent开启时,存在视图依赖的表、函数、同义词及其他视图可以单独删除(临时表及临时视图除外),关联视图保留但不可用。当参数view_independent关闭时,存在视图依赖的表、函数、同义词及其他视图不可以单独删除,仅可使用cascade级联删除。
  • [账号/权限/数据库密...] GaussDB(DWS) 无法回收用户的权限,revoke成功后仍有权限
    【问题现象】:对某个用户revoke某项权限后,用权限查询函数查询,发现该用户仍有该权限【根因】:用户权限来源不是直接赋予,而是通过role(角色)或者SYSADMIN(系统管理员)获得的。【排查方法】:1. 查询 pg_authid 表,通过 rolsystemadmin 字段判断是否是系统管理员,系统管可以管理所有普通用户和数据库。2. 可以通过下列语句查询role的赋予情况,role为角色,member为被赋权用户。然后再排查role所拥有的权限。select r1.rolname as role, r2.rolname as member, r3.rolname as grantor, admin_option from pg_auth_members a,pg_roles r1,pg_roles r2,pg_roles r3 where a.roleid = r1.oid and a.member = r2.oid and a.grantor = r3.oid;【解决方法】:回收用户的role(角色)或者SYSADMIN(系统管理员),但这会影响用户的其他权限,如有需要,请将权限更细粒度划分。revoke role_name from user_name;revoke all privileges from user_name; --回收系统管理员权限【复现示例】:将test_schema_user的权限赋予test_schema_user2,用revoke回收test_schema_user2的test_schema的create权限,利用has_schema_privilege查询test_schema_user2的权限情况,发现其仍有test_schema的create权限。参考:访问权限查询函数_数据仓库服务 GaussDB(DWS)_8.1.3推荐版_函数和操作符_系统信息函数 (huaweicloud.com)
  • [其他] GaussDB(DWS)8.1.3-ESL支持的麒麟操作系统信息
    GaussDB(DWS)8.1.3-ESL支持的麒麟操作系统如下:服务器类型操作系统软件支持的版本号对应操作系统内核版本通用X86服务器银河麒麟银河麒麟V10SP1(基于OpenEuler开发的银河麒麟V10SP1,目前仅支持20210518版本)Linux localhost.localdomain 4.19.90-23.8.v2101.ky10.x86_64 #1 SMP Mon May 17 17:08:34 CST 2021 x86_64 x86_64 x86_64 GNU/LinuxTaiShan服务器银河麒麟银河麒麟V10SP1(基于OpenEuler开发的银河麒麟V10SP1,目前仅支持20200711版本)Linux localhost.localdomain 4.19.90-17.ky10.aarch64 #1 SMP Sun Jun 28 14:27:40 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
  • [集群&DWS] 【变更】解除单cn实例白名单注释方法
    1、解除单cn实例方法,去对应cn实例目录下执行如下命令sed -i '/^#@#@#.*/s/#@#@#\(.*\)/\1/g' /srv/BigData/mppdb/data1/coordinator/pg_hba.conf2、批量注释关闭白名单方案参考:https://bbs.huaweicloud.com/forum/thread-145788-1-1.html
  • [集群&DWS] gs_replace修复cn注意事项
    1、gs_replace标准方案请参考:https://bbs.huaweicloud.com/forum/thread-145788-1-1.html2、gs_replace -t config -h 节点名称之后,还需要gs_replace -t start -h 节点名称之后实例才会正常。注意coordinator_heartbeat_timeoutcn自动剔除的时间,如果未及时start,可能cn会delete状态需要重新执行config,在及时执行start,或者调大coordinator_heartbeat_timeout时间(gs_guc set -Z cm -N all -I all -c "coordinator_heartbeat_timeout=600")单位是秒
  • [SQL] pg_get_viewdef函数介绍
    1、只传入视图名,查询结果不易杜,但用于转储时尽可能使用此方法。会有一些多余的括号。select * from pg_get_viewdef('schema_name.view_name');2、传入视图名,指定pretty属性为true。显示的格式易读适合打印。select * from pg_get_viewdef('schema_name.view_name',true);3、传入视图名,指定fullflag属性为true。显示全部视图定义。select * from pg_get_viewdef('schema_name.view_name',false,true);
  • [集群购买/创建] GaussDB(DWS)管控面安装扩容之ECF创建Region master CMDB三层服务数工步失败
    【问题描述】       扩容ECF工步失败:创建Region master CMDB三层服务数失败,报:can not find the cluster ei-dbs-region【问题版本】       HCS830【问题根因】        cdk提供的方法get_new_cluster_flag,用于查询当前集群的版本是1.9.7还是1.15.11版本,代码问题导致判断失误【定位过程】1、部署扩容ECF工步子工步EICommon Region:创建Region master CMDB三层服务数失败,报:can not find the cluster ei-dbs-region;2、导出工步日志,发现是"/opt/cloud/hcci/src/HCCI/utils/business/CDK/cdk_api_internal.py"脚本 line 135行,get_new_cluster_flag方法报的;3、调用CDK方法get_new_cluster_flag用于获取集群版本,从而根据版本获取节点密码,此报错影响高阶纳管节点;4、给CDK建关联单,确认是否有影响,修改cdk_api_internal.py脚本135行代码进行规避,规避后重试工步执行成功;【规避措施】1、登录HCC Turnkey后台,执行命令查询文件cdk_api_internal.py,找到对应turnkey版本的文件路径find /opt/cloud -name cdk_api_internal.py2. 打开文件,找到该方法get_new_cluster_flag,并修改135行代码修改前:    raise Exception(f'can not find the cluster {self.cluster_name}')修改后:    return True3.  修改完成后,确认前台无正在运行的工步再重启框架sh /opt/rootscripts/restart.sh
  • GaussDB(DWS) 全节点CPU高且无异常SQL排查方法
    【版本信息】800【问题描述】全节点CPU高【处理方法】首先是按照cpu高的标准处理流程进行:https://bbs.huaweicloud.com/blogs/419012先查看集群基本情况:1.活跃语句100左右2.Stream数最大103.Cpuwatcher脚本占CPU的语句都在40以下4.抓进程也抓不到高CPU的进程ps H -eo pid,tid,pcpu|sort -n -k 3 |grep master5.语句最长执行时间1hr;有线程等待和cpu倾斜:6.并发数60无改动由此可以看出,长SQL,占CPU高的SQL语句都抓不到,但是全节点CPU均超过90%;定位不出具体SQL,则重新回到业务侧确认业务情况(若确认是资源不够导致cpu高的问题则此时可进行资源管控)。7.确认实时业务为短查询高并发语句,且在CPU高时期出现大量超时告警;查询dws的超时告警设置,发现数值为0,说明告警为客户外部程序设置,执行超过时间4s触发告警,与dws无关。因此告警后语句仍然正常执行。8.当前业务影响为实时业务查询感知慢,因此找到与实时业务一起执行的并发业务。活跃语句查询结果只找到一个非实时业务的语句,优化该语句后CPU无变化,且该语句执行时间在20分钟内。9.此时怀疑是短查询语句自身占用的CPU高,需要做优化处理。此时让客户明确提供了实时查询并发语句,优化该表后仍然无明显变化。查询表大小:select count(1) from 表名;查询表数量:select count(1) from pg_class;10. 查询实时查询的业务库的表数量,900+,全部做ANAYLZE后CPU降至20%以下:本问题中导致CPU高的根因为业务库中的900多个表中有个别或者部分表的统计信息不完整,导致执行计划选择了更消耗CPU的执行方式,导致了CPU高;但是由于都是快查询高并发语句(执行4s即为慢语句);因此抓不到异常SQL。【根因分析】实时查询中有部分表统计信息不完整导致执行计划对资源占用更大,由于900+表排查困难,对业务库做统计信息收集后CPU立即恢复。本案例中对于CPU高的现象用常规的查杀语句,资源管控的方式无法解决,因为占用CPU的语句都是短查询语句,活跃数量基本在100以内,一个语句几秒钟就执行完成,这种情况下是无法抓到单独占CPU高的SQL语句的。这种情况下需要从另一个角度解决问题,就是SQL执行慢,SQL慢的常规解决方法就是查询执行计划,收集统计信息,优化语句。本案例中,SQL慢的表象结果仅为CPU高;内存,磁盘等其他指标均正常。
  • [其他] GaussDB(DWS)管控面升级后ServiceOM报集群告警列表接口异常
    【问题描述】     管控面升级后serviceOM数仓服务监控告警模块不显示,报集群告警列表接口异常【问题版本】     HCS820、821、830【问题根因】     dms_endpoint为域名 service om无法解析【分析过程】1、管控面升级后检查发现serviceOM数仓服务监控告警模块不显示,且弹框提示集群告警列表接口异常、请求失败,请稍后重试或联系技术人员;2、界面F12发现/dws/rest/maintain/v1.0/dms/cluster接口报500 Internal Server Error;3、检查发现serviceOM配置管理{region_id}.dms.dms_endpoint的值配置的是域名加端口,导致无法解析,需要配置成IP;【解决方法】     把serviceOM配置管理{region_id}.dms.dms_endpoint域名加端口改成IP加端口即可;     注:(IP可以到节点ping一下域名ping出来,正常是和{region_id}.dws.controller_endpoint、{region_id}.dws.insight_endpoint配置的IP一致)
  • [生态工具] datax慢,急救阿。
    客户反馈问题,datax从dws往外导数据,速度恒定在10mb/s,从gp导可以达到40mb/s,这个是不是dws有什么限制?给出来详细的处理意见好伐,要不要让客户提交case 工单好了
  • [运维管理] job定时任务介绍
    【使用场景】当客户在使用数据库过程中,如果白天执行一些耗时比较长的任务(例如:统计数据汇总之类或从其他数据库同步数据的任务),会对正常的业务有性能影响,所以客户经常选择在晚上执行,无形中增加了客户的工作量。因此数据库兼容Orcale数据库中定时任务的功能,可以由客户创建定时任务,当任务时间点到达后可以自动触发任务的执行,从而可以减少客户运维的工作量。同时当我们执行一些SQL的实时性不是很高,集群资源又比较紧张的情况下,可以使用定时任务的方式下发SQL。【常用视图介绍】811之后的版本,PG_JOB视图用于代替之前版本的PG_JOB系统表,提供对之前版本的前向兼容。原PG_JOB系统表已经变更为PG_JOBS系统表。pg_job中的字段如下:job_id:作业ID。current_postgres_pid:如果当前任务正在执行,那么此处记录运行此任务的postgres线程ID。默认为-1,表示此任务未被执行或已经执行结束。log_user:创建者的UserName。priv_user:作业执行者的UserName。dbname:标识作业执行的数据库名。node_name:标识当前作业是在哪个CN上创建和执行。job_status:当前任务的执行状态,取值范围:('r', 's', 'f', 'd'),默认为's',取值含义:r=runnings=successfully finishedf=job failedd=disableps:当job连续执行失败16次,会将job_status自动设置为失效状态'd',后续不再执行该job。start_date:作业第一次开始执行时间,时间精确到毫秒。next_run_date:下次定时执行任务的时间,时间精确到毫秒。failure_count:失败计数,作业连续执行失败16次,不再继续执行。interval:作业执行的重复时间间隔。last_start_date:上次运行开始时间,时间精确到毫秒。last_end_date:上次运行的结束时间,时间精确到毫秒。last_suc_date:上次成功运行的开始时间,时间精确到毫秒。this_run_date:正在运行任务的开始时间,时间精确到毫秒。nspname:作业运行时所在的命名空间的名称。what:作业内容。【定时任务的创建及管理】可以参考官方文档进行操作:https://support.huaweicloud.com/devg-dws/dws_04_0041.html【任务状态判断】1.当时间到达job任务的next_run_date时间,job任务会进入任务队列,单个cn的job并发上限受到job_queue_processes的 限制,默认为10,超出该限制的任务会进行排队,此时job_status即任务的状态为f,start_date为创建job时传入的开始时间参数,start_date和next_run_date的值都为空,this_run_date的值也为空(当开始执行时该字段会进行刷新),2.当job排到队开始执行时,job_status即任务的状态会刷新为r,current_postgres_pid刷新为运行此任务的postgres线程ID,start_date和this_run_date会刷新为当前时间,若下次不执行next_run_date刷新为'4000-01-01 00:00:00',若下次继续执行则next_run_date刷新为下一次执行的时间。3.当前作业执行成功后若下一次继续执行则,job_status即任务的状态会刷新为s,failure_count连续失败次数置0,this_run_date会刷新为当前时间,若下次不执行next_run_date刷新为'4000-01-01 00:00:00',若下次继续执行则next_run_date刷新为下一次执行的时间。4.当前作业执行失败后后若下一次继续执行则,job_status即任务的状态会刷新为f,failure_count连续失败次数比之前加1,this_run_date会刷新为当前时间,若下次不执行next_run_date刷新为'4000-01-01 00:00:00',若下次继续执行则next_run_date刷新为下一次执行的时间。5.若作业上一次执行完后不继续执行,job_status即任务的状态会刷新为d,next_run_date刷新为'4000-01-01 00:00:00';总体流程如下:【执行定时任务的常见场景】1.若出现如下场景,job_status为f 且last_end_date和last_suc_date为空的情况,可能为该job线程丢失,我们可以登录后台,搜索对应cn日志,zgrep 'job_id: xxx',在该日志文件中若找到如job worker with job id:xxx took too long time to start ,so canceled it,原因:进程启动慢被清理,规避措施:该场景中线程启动慢与集群各种资源都有关,重新调度该定时任务,在821新版本中添加1. 增加超时后重新调度逻辑 2. 增加参数 job_queue_naptime 设置触发任务的时间间隔及超时时间2.若根据job id查看对应cn日志出现如下报错:error msg: canceling statement due to workload manager exception.DETAIL: except rule [except_spill] is meet condition:rule [spillsize] is over limit, current value is:10517.原因:该场景为下盘超过异常规则导致规避措施:需要修改异规则:ALTER EXCEPT RULE 异常规则名 with (spollsize=xxx);3.在客户端设置完任务,使用当前时间后job任务没有立即执行:原因:当定时任务的执行时间设置为当前时间或者过去时间时,任务都会立即执行,这种场景可能是任务在排队等待,或者客户端和后台存在8小时时差,按照当前时间下发的任务需要等8小时后才会执行。判断方法:针对上述场景我们可以通过select * from pg_job进行判断看该任务下次执行时间,和select now();数据库当前时间做比较判断是否在排队还是因为时差导致还没有到执行时间。规避措施:1.若为排队,我们可以根据集群资源使用情况判断是否调大job_queue_processes(需要重启集群)2.若为客户端和后台存在时差,可以调整定时任务开始时间进行规避4.定时任务执行报错:all 32768 jobids have alloc, and there is no free jobid原因:定时任务当前规格为最大32768个,当前已达到上限从而触发报错规避措施:建议客户手动清理部分d状态的作业select * from pg_job where job_status = 'd' and last_start_date < 'xxxxx' and interval = 'null';  --xxx为 清理最后一次执行为某天前的定时任务call dbms_job.remove(xxx);   --xxx 为定时任务的jobid
  • 资讯|【云享问答】第6期:如何筑造数据安全边界?
    当前AI技术的快速发展,大模型、大数据正在加速对海量多样化数据的应用。数据已经成为核心资产,而数据安全和隐私保护的重要性也日益凸显。数据脱敏作为数据安全管控体系的关键环节,能够有效地保护敏感数据的安全。为了满足开发者对于数据脱敏的需求,GaussDB(DWS) 动态脱敏功能应运而生。本期【云享问答】通过这10个问题,带你全方位了解GaussDB(DWS) 动态脱敏功能及效果。什么是数据脱敏?数据脱敏是通过屏蔽敏感数据来保护数据安全的一种方法。它可以将敏感数据变形,例如身份证号、手机号、客户姓名、邮箱地址等。数据脱敏分为静态数据脱敏和动态数据脱敏两种。GaussDB(DWS)提供列级别的数据脱敏(Dynamic Data Masking)功能,GaussDB (DWS)数据脱敏功能,基于SQL引擎既有的实现框架,在受限用户执行查询语句过程中,实现外部不感知的实时脱敏处理。数据脱敏能解决什么问题?数据脱敏能力对于用户具有多重重要价值。它不仅能够消除暴露个人敏感数据的风险,确保个人隐私安全,还能助力企业遵守CPRA、GDPR、HIPAA等隐私法规,避免因违规而引发的法律风险。同时,数据脱敏技术在处理数据时能够保持数据的一致性和可用性,确保脱敏后的数据依然能够支持业务运营和决策分析。此外,通过脱敏处理,还可以降低数据在高效共享过程中的风险,防止敏感信息被恶意利用,从而保护企业免受网络攻击和数据泄露的威胁。脱敏策略是什么?脱敏策略(Redaction Policy)在数据安全管理中扮演着至关重要的角色。脱敏策略是与数据库中表对象是一一对应的。一个完整的脱敏策略通常由三个关键部分组成:表对象、生效条件以及脱敏列与脱敏函数的对应关系。表对象指定了策略应用的数据库表。生效条件则是一个布尔表达式,它决定了何时应用脱敏规则。脱敏列与脱敏函数的对应是脱敏策略的核心。不同的字段根据其存储数据的特性和敏感性可以采用不同的脱敏函数。当且仅当生效条件为真时,查询语句才会触发敏感数据的脱敏,而脱敏过程是内置在SQL引擎内部实现的,对生成环境用户是透明不可见的,既保障了数据安全,又不干扰用户的数据访问。在实际开发过程中,数据脱敏怎么用?以DWS为例,在创建脱敏策略时,需要先确定受限制的用户角色,识别和梳理具体业务场景的敏感字段,然后确定脱敏列需要绑定的脱敏函数,最后构造策略创建的语句并执行,从而预制好脱敏策略。数据脱敏应用过程中,如何做到数据库内可算仅库外不可见?数据库内要求原始的敏感数据能够参与加工计算,仅在出库的时刻敏感数据才会被脱敏处理。例如投影列表达式、投影列函数、聚集函数、过滤条件、分组条件、子查询位置投影列表达式等,需要原敏感数据直接参与加工计算。在表查询、视图查询、COPY查询、GDS外表导出等场景触发时会进行数据脱敏。可算不可见功能有一个前置的条件,需要打开开关enable_redactcol_computable=on!。GaussDB(DWS)的动态脱敏功能是如何进行数据保护的?GaussDB(DWS)的动态脱敏引擎与底层系统紧密配合,高效、安全、可靠地处理数据。其直观的DDL语法界面,使用户能轻松配置、调整脱敏策略,灵活应对不同场景。系统不仅内置多种常见脱敏方法,还支持用户自定义脱敏函数,满足个性化需求。在保障数据安全的基础上,该引擎确保脱敏数据的高可用性,维持业务价值。同时,通过严格的权限和访问控制,仅授权用户可访问敏感数据,全面守护数据的安全与隐私。第三方脱敏工具多为外挂式,仅支持静态脱敏,无法实现实时动态处理。相比之下,GaussDB(DWS)的内置脱敏功能更加透明、高效。在GaussDB(DWS)中,如何快速配置和使用动态脱敏功能,并支持非固定格式的数据脱敏?GaussDB(DWS)提供DDL语法支持用户快速配置脱敏策略,使用无特殊要求,原SELECT语句即可触发。GaussDB(DWS)对于常规数据类型均支持,且提供用户自定义脱敏函数,可以对更多场景支持更灵活脱敏效果。GaussDB(DWS)是否支持跨数据表传递脱敏数据,传递过程中是否继承原脱敏策略?在GaussDB(DWS)的库内可算库外不可见场景下,由于参与数据运算的是原始数据,故DML语句执行过程,写入更新目标表都是原始数据去更新的,故需要引入脱敏策略继承机制,分析语句中子查询的脱敏信息,并继承到目标表中,此场景即涉及脱敏策略的继承。在应用GaussDB(DWS)过程中,如何保证数据脱敏的实时性?为了确保实时性,GaussDB(DWS)采用动态数据脱敏方式。动态数据脱敏,是指数据查询过程边输出边脱敏,策略定制的脱敏函数发生变化,查询的脱敏效果也实时更新。这就意味着DWS在数据查询过程中,数据会边输出边脱敏。这种并行交互的方式最大限度地减少了性能损失,使得实时性得以保证。根据提供的信息,性能劣化在10%以内是可以接受的。因此,各种场景下的实时性需求都能得到满足。针对不同的用户或角色,GaussDB(DWS)能否有不同的脱敏策略?GaussDB(DWS)数据脱敏含有三要素:脱敏策略应用的表对象、脱敏字段-脱敏函数对、脱敏生效条件,此三部分信息通过REDACTION POLICY语法承载。WHEN表达式子句可以传递生效条件,针对不同的用户或角色去判断。转自华为云开发者联盟
  • [其他] GaussDB(DWS)管控面之DWS_10000告警(rms数据库性能慢)
    【问题现象】         OC可见告警ID为DWS_10000的操作告警,定位信息包含HealthController.getLivenessHealth【问题版本】        HCS811、820、821【问题根因】 MySQL rms数据库性能慢【问题分析】1、OC告警DWS_10000系统内部异常操作异常告警,定位信息包含HealthController.getLivenessHealth;2、查controller日志,搜DWS_10000,往上找日志发现报eJobMonitorThread or DBMonitorThread is not working;3、两个线程池检查controller容器状态会连接数据库但是连接慢,怀疑是性能问题;(若无频繁上报,可以先清除告警,观察一段时间无再上报就是偶现;此线程只是探活controller容器状态,告警可以屏蔽);4、在DWS-DB01/02节点手动使用MySQL命令测试连接发现连接数据库也很慢;5、给cloudDB建关联单排查MySQL连接慢:      1)定位到是审计日志较多导致IO持续较高,导致数据库连接慢,cloudDB建议关闭审计日志,关闭后重试连接恢复,不再慢;      2)vdb数据盘读写的IO相比政务区的始终都比较高,怀疑是底层磁盘规格有区别;iostat -x 1 -p vdb6、拉IAAS同时定位,发现是管理节点所在存储池底层CPU资源耗尽(主根因),建议扩容去解决;【处理方法】1、关闭MySQL审计日志;       1)登MySQL数据库:mysql --defaults-file=/data/mysql/etc/my.cnf -uroot -hlocalhost -P7306 -pXXXXXXXXXXXX       2)查询是否开启:show variables like '%audit_log_policy%';       3)执行修改语句(主备节点):set global audit_log_policy = NONE;       4)修改vi /data/mysql/etc/my.cnf文件(主备节点):audit_log_policy = ALL改成NONE;2、扩容管理节点所在存储池底层CPU资源;
  • 【云享问答】第6期:如何筑造数据安全边界
    当前AI技术的快速发展,大模型、大数据正在加速对海量多样化数据的应用。数据已经成为核心资产,而数据安全和隐私保护的重要性也日益凸显。数据脱敏作为数据安全管控体系的关键环节,能够有效地保护敏感数据的安全。为了满足开发者对于数据脱敏的需求,GaussDB(DWS) 动态脱敏功能应运而生。本期【云享问答】通过这10个问题,带你全方位了解GaussDB(DWS) 动态脱敏功能及效果。💬 1、什么是数据脱敏?数据脱敏是通过屏蔽敏感数据来保护数据安全的一种方法。它可以将敏感数据变形,例如身份证号、手机号、客户姓名、邮箱地址等。数据脱敏分为静态数据脱敏和动态数据脱敏两种。GaussDB(DWS)提供列级别的数据脱敏(Dynamic Data Masking)功能,GaussDB (DWS)数据脱敏功能,基于SQL引擎既有的实现框架,在受限用户执行查询语句过程中,实现外部不感知的实时脱敏处理。💬 2、数据脱敏能解决什么问题?数据脱敏能力对于用户具有多重重要价值。它不仅能够消除暴露个人敏感数据的风险,确保个人隐私安全,还能助力企业遵守CPRA、GDPR、HIPAA等隐私法规,避免因违规而引发的法律风险。同时,数据脱敏技术在处理数据时能够保持数据的一致性和可用性,确保脱敏后的数据依然能够支持业务运营和决策分析。此外,通过脱敏处理,还可以降低数据在高效共享过程中的风险,防止敏感信息被恶意利用,从而保护企业免受网络攻击和数据泄露的威胁。💬 3、脱敏策略是什么?脱敏策略(Redaction Policy)在数据安全管理中扮演着至关重要的角色。脱敏策略是与数据库中表对象是一一对应的。一个完整的脱敏策略通常由三个关键部分组成:表对象、生效条件以及脱敏列与脱敏函数的对应关系。表对象指定了策略应用的数据库表。生效条件则是一个布尔表达式,它决定了何时应用脱敏规则。脱敏列与脱敏函数的对应是脱敏策略的核心。不同的字段根据其存储数据的特性和敏感性可以采用不同的脱敏函数。当且仅当生效条件为真时,查询语句才会触发敏感数据的脱敏,而脱敏过程是内置在SQL引擎内部实现的,对生成环境用户是透明不可见的,既保障了数据安全,又不干扰用户的数据访问。💬 4、在实际开发过程中,数据脱敏怎么用?以DWS为例,在创建脱敏策略时,需要先确定受限制的用户角色,识别和梳理具体业务场景的敏感字段,然后确定脱敏列需要绑定的脱敏函数,最后构造策略创建的语句并执行,从而预制好脱敏策略。常见的使用函数语句实现脱敏效果💬 5、数据脱敏应用过程中,如何做到数据库内可算仅库外不可见?数据库内要求原始的敏感数据能够参与加工计算,仅在出库的时刻敏感数据才会被脱敏处理。例如投影列表达式、投影列函数、聚集函数、过滤条件、分组条件、子查询位置投影列表达式等,需要原敏感数据直接参与加工计算。在表查询、视图查询、COPY查询、GDS外表导出等场景触发时会进行数据脱敏。可算不可见功能有一个前置的条件,需要打开开关enable_redactcol_computable=on!。💬 6、GaussDB(DWS)的动态脱敏功能是如何进行数据保护的?GaussDB(DWS)的动态脱敏引擎与底层系统紧密配合,高效、安全、可靠地处理数据。其直观的DDL语法界面,使用户能轻松配置、调整脱敏策略,灵活应对不同场景。系统不仅内置多种常见脱敏方法,还支持用户自定义脱敏函数,满足个性化需求。在保障数据安全的基础上,该引擎确保脱敏数据的高可用性,维持业务价值。同时,通过严格的权限和访问控制,仅授权用户可访问敏感数据,全面守护数据的安全与隐私。第三方脱敏工具多为外挂式,仅支持静态脱敏,无法实现实时动态处理。相比之下,GaussDB(DWS)的内置脱敏功能更加透明、高效。💬 7、在GaussDB(DWS)中,如何快速配置和使用动态脱敏功能,并支持非固定格式的数据脱敏?GaussDB(DWS)提供DDL语法支持用户快速配置脱敏策略,使用无特殊要求,原SELECT语句即可触发。GaussDB(DWS)对于常规数据类型均支持,且提供用户自定义脱敏函数,可以对更多场景支持更灵活脱敏效果。💬 8、GaussDB(DWS)是否支持跨数据表传递脱敏数据,传递过程中是否继承原脱敏策略?在GaussDB(DWS)的库内可算库外不可见场景下,由于参与数据运算的是原始数据,故DML语句执行过程,写入/更新目标表都是原始数据去更新的,故需要引入脱敏策略继承机制,分析语句中子查询的脱敏信息,并继承到目标表中,此场景即涉及脱敏策略的继承。💬 9、在应用GaussDB(DWS)过程中,如何保证数据脱敏的实时性?为了确保实时性,GaussDB(DWS)采用动态数据脱敏方式。动态数据脱敏,是指数据查询过程边输出边脱敏,策略定制的脱敏函数发生变化,查询的脱敏效果也实时更新。这就意味着DWS在数据查询过程中,数据会边输出边脱敏。这种并行交互的方式最大限度地减少了性能损失,使得实时性得以保证。根据提供的信息,性能劣化在10%以内是可以接受的。因此,各种场景下的实时性需求都能得到满足。💬 10、针对不同的用户或角色,GaussDB(DWS)能否有不同的脱敏策略?GaussDB(DWS)数据脱敏含有三要素:脱敏策略应用的表对象、脱敏字段-脱敏函数对、脱敏生效条件,此三部分信息通过REDACTION POLICY语法承载。WHEN表达式子句可以传递生效条件,针对不同的用户或角色去判断。更多关于GaussDB(DWS)产品技术解析、数仓产品新特性的介绍,请关注GaussDB(DWS)论坛,技术博文分享、直播安排将第一时间发布在:GaussDB(DWS)论坛 。
总条数:2065 到第
上滑加载中