• [技术解读] GaussDB数据库逻辑结构图
    集群的每个DN负责存储数据,其存储介质是磁盘,本节主要从逻辑视角介绍每个DN上有哪些对象,以及这些对象之间的关系。另外介绍数据在不同节点的分布方式。数据库逻辑结构如图1所示。   说明:Tablespace,即表空间,表空间是一个目录,集群中可以存在多个表空间,其中存储的是它所包含的数据库的各种物理文件。每个表空间可以对应多个Database。Database,即数据库,用于管理各类数据对象,各数据库间相互隔离。数据库管理的对象可分布在多个Tablespace上。Datafile Segment,即数据文件,通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会分为多个数据文件存储。Table,即表,每张表只能属于一个数据库,也只能对应到一个Tablespace。每张表对应的数据文件必须在同一个Tablespace中。Block,即数据块,是数据库管理的基本单位,默认大小为8KB。 数据在不同的DN上有四种分布方式,可以在建表的时候指定:REPLICATION、HASH、RANGE、LIST。
  • [技术干货] 【DTSE Tech Talk 精选问答】NO.75丨GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
    数据库的复杂运维,是否让你感到头疼不已?华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。本文精选直播期间开发者的提问并由DTSE技术布道师一一解答。欢迎观看直播回顾:cid:link_0Q:GaussDB的智能优化器支持哪些机器学习模型?如何提高基数估计的准确性,减少Cost估计误差,提升TPS平均值?A:使用聚类、梯度提升决策树等机器学习模型,GaussDB支持智能基数估计技术,提高数据库查询执行效率Q:如何防止SQL注入攻击?A:通过使用存储过程、最小权限原则(连接数据库的用户分配最小必要的权限)、定期维护和更新数据库软件等操作防止SQL注入攻击Q:TPOPS如何确保数据库实例的高可用性?A:TPOPS提供容灾管理功能,可搭建灾备实例提高数据库可用性Q:一键式部署安装过程中,对于企业现有的包含多种操作系统版本、不同硬件架构以及复杂网络拓扑的基础设施环境,GaussDB 管理平台如何进行深度的兼容性检测和自适应配置,以确保安装过程零错误并且能与原有系统无缝集成,同时满足企业对于特定数据库参数、存储配置和安全策略的个性化需求?A:TPOPS提供了主机上线管理的能力,主机经过操作系统安装、网络初始化、磁盘初始化后,可将该主机纳管为可发放实例的主机。对于特定数据库参数,可以通过参数管理创建自定义参数模板,在发放实例的时候选择自定义模板Q:如何防止数据丢失,保护热点数据?A:可通过高可靠技术(容灾集群)、备份恢复、访问控制和权限管理等措施防止数据丢失Q:GaussDB轻量化部署形态支持单平面、两平面或三平面网络配置。这些配置有什么区别,它们如何影响数据库的管理和业务通信?A:单平面配置:管理、业务和数据网络使用同一个IP,这种配置简化了网络管理,但可能无法提供最佳的业务安全和网络性能隔离,高并发情况下可能会增加网络拥堵的风险。两平面配置:管理和业务平面分开,数据平面与其中一个共用,这种配置提供了更好的网络隔离,可以提高安全性和网络性能,有助于减少网络攻击的风险,并且可以针对不同的平面优化网络性能。三平面配置:管理平面、业务平面和数据平面各自使用独立的IP地址,是最推荐的配置,提供了最高级别的网络隔离。每个平面都可以独立配置和优化,以满足特定的安全和性能要求。管理平面负责TPOPS与数据库节点的通信以及数据库实例管理;业务平面负责业务访问数据库实例通信;数据平面负责DN主备间通信、CN与DN间通信、备份恢复等Q:如何结合慢SQL诊断与自动化运维工具,实现数据库性能的持续优化和监控?A:可通过定期的巡检及慢SQL诊断,持续监控和优化数据库性能Q:老师您好,请问对于数据库的迁移、升级和架构变更,GaussDB 管理平台如何实现无缝衔接,确保业务连续性不受影响?A:迁移:GaussDB支持使用DRS进行数据迁移;升级:GaussDB升级支持滚动升级,在升级过程中会有秒级的业务中断Q:GaussDB管理平台的TPOPS支持命令行吗?A:目前暂不支持Q:TPOPS是否支持慢SQL的并发执行分析?A:目前暂不支持Q:智能化运维管理中,GaussDB 管理平台怎样精准预测并有效应对各类潜在的数据库安全风险?A:TPOPS提供告警监控及巡检功能,可通过这些能力提前预测数据库潜在风险Q:GaussDB管理平台TPOPS支持管理运维他云或线下IDC的数据库吗A:目前暂不支持Q: GaussDB管理平台TPOPS最多支持多少个集群?A:取决于部署TPOPS服务器的规格。8U64G:支持纳管60个节点>=16U128G:支持纳管500个节点Q:TPOPS是否支持数据库自动扩展?如何处理数据库的锁争用问题?A:目前还不支持,处理锁争用问题可已从优化事务大小(将大事务拆分成小事务)、避免使用表锁(尽量使用行锁)、设置适当的锁超时时间等多个方面开展Q:如何避免误终止系统级会话?‌ GaussDB中 如何终止一个阻塞其他会话的会话?A:TPOPS平台查询会话支持过滤系统用户,通知支持会话查杀功能直接kill会话Q:在实际运维中,如何通过慢SQL诊断提供的根因分析和优化建议来提升数据库性能?A:可以根据SQL诊断给出的根因建议修改sql语句,修改后的语句再进行诊断Q:GaussDB管理平台TPOPS支持异地容灾吗A:TPOPS自身没有容灾部署的概念,GaussDB支持跨Region容灾部署Q:请问GaussDB 管理平台的 TPOPS 功能在处理大规模、高并发和复杂数据场景时,其性能优化和稳定性保障的核心机制是什么?A:GaussDB提供多副本、多集群、NUMAaware等多维度能力保障性能和稳定性Q:DBA 从熟悉传统运维方式过渡到使用 GaussDB 管理平台 TPOPS 进行高效运维,学习成本高不高,平台的操作界面是否友好便捷呢?A:TPOPS提供可视化界面操作,对比传统运维方式在使用上会更友好Q:智能化运维管理中,GaussDB 管理平台如何处理数据库中的异常数据和错误日志?A:如慢SQL会记录到系统视图,供后续分析,错误日志可以单独采集和下载Q:tpops现在已经集成在gaussdb里了吗,只能单独部署吗A:TPOPS作为运维GaussDB的平台,底层通过Agent代理接入GaussDB内核采集信息,只能单独部署Q:TPOPS是否提供慢SQL的查询优化历史记录?如何做慢SQL的数据库版本升级影响分析?A:可以通过执行计划部分记录优化历史,慢SQL一般单独调优Q:TPOPS服务什么时候能够支持GaussDB数据库服务共用节点服务器?A:后续版本规划支持Q:GaussDB管理平台TPOPS有什么竞品A:OceanBaseQ:如何利用慢SQL采集和诊断功能,结合可视化统计和关键指标趋势分析,提供详细的根因分析和优化建议,以全面提升数据库的性能和运维效率?A:慢SQL诊断功能本身即可提供针对慢SQL语句的根因分析和优化建议,同时提供可视化视图,可使用此功能进行数据库性能优化Q:在应对外部网络安全威胁时,GaussDB 管理平台 TPOPS 具备哪些安全防护机制,来辅助 DBA 安心开展运维工作?A:TPOPS提供角色管理功能,可针对不同用户给予不同的角色进行细粒度权限管控,实现分权分域管理Q:如何区分系统级会话和用户级会话? ‌会话查杀是否会影响数据库的正常运行A:系统级会话通常是由数据库系统自身发起的如备份任务、日志记录等操作,用户级会话是由用户的数据库操作请求创建的如用户通过客户端连接数据库并执行查询、更新、等操作,会话查杀支持基于节点+组件查询所有实时会话,可指定会话进行查杀Q:慢SQL采集的配置项如何影响数据库性能监控的准确性?A:慢SQL采集支持数据源、SQL执行时长、数据库名、SQL语句类型等多项配置,配置项不同采集到的SQL数据范围就不同Q:在处理复杂的数据库事务和一致性要求时,GaussDB 管理平台的保障机制是什么?A:GaussDB事务遵循ACID特性,提供了会话一致性和全局一致性两种模式保证数据的一致性Q:智能化运维管理中,GaussDB 管理平台如何实现对数据库性能瓶颈的精准定位和快速解决?A:TPOPS提供监控大盘及慢SQL诊断功能,可通过二者结合使用快速定位数据库性能问题Q:如何对SQL诊断,优化SQL执行效率?A:慢SQL诊断提供根因分析及优化建议能力Q:当数据库出现故障时,GaussDB 管理平台的自动恢复机制的可靠性如何保障?A:数据库集群内发生故障时,可自动进行主备倒换保证业务可用性,集群间发生故障,可通过TPOPS进行容灾切换保证业务正常运行Q:GaussDB 管理平台 TPOPS 是否支持对不同规模的数据库集群进行高效运维管理,其功能的可扩展性如何体现?A:TPOPS提供节点扩容能力提升实例的性能及存储能力Q:请问一键式部署安装是否支持多种操作系统和硬件架构?A:支持多种操作系统,如麒麟、统信、HCE等,CPU架构支持X86和ARMQ:如何处理数据库高并发情况下的会话问题?A:可通过设置会话超时时间及优化连接池配置实现,同时TPOPS也提供会话查杀功能,可以kill异常及空闲会话Q:对于具有严格合规要求的行业(如金融、医疗),GaussDB 管理平台如何满足审计和监管需求?A:TPOPS提供审计日志功能,可以记录管理平台对数据库的所有操作Q:对于跨地域的数据库部署,GaussDB 管理平台如何保障运维的一致性和高效性?A:TPOPS提供容灾管理功能,可管理跨Region部署的GaussDB实例Q:TPOPS是否有提供数据库的查询优化建议?A:TPOPS提供慢SQL诊断功能,可针对慢SQL语句提供优化建议Q:当主节点出现故障时,系统如何检测并自动将流量切换到备用节点?此外,这种切换对应用层的影响有多大?A:GaussDB通过监控主节点的健康状况来检测故障。一旦检测到主节点服务不可用,系统会自动触发故障切换流程,切换过程中会有10s以内的闪断Q:该平台 TPOPS 在处理大量并发运维任务时,性能是否稳定,是通过什么机制来确保的呢?A:TPOPS采用异步处理将耗时较长的操作放到后台执行,避免阻塞主线程,提高系统的并发能力和响应速度,保证系统的稳定性,同时提供监控告警能力,在系统出现异常时及时发出警告,提醒运维人员进行处理Q:对于需要在不同云环境之间管理数据库的企业,GaussDB管理平台提供了哪些支持?A:TPOPS目前暂不支持跨云管理数据库的能力Q:TPOPS功能是否支持跨云和混合云环境的数据库管理?A:TPOPS目前暂不支持跨云管理数据库的能力Q:在数据安全方面,GaussDB 管理平台采取了哪些措施来保护敏感信息不被未授权访问?A:GaussDB支持数据脱敏、访问控制、数据加密和安全审计等功能保护敏感信息Q:老师您好请问GaussDB 管理平台的 TPOPS 功能在处理超大规模数据库时,性能优化效果如何量化和评估?A:可以通过监控查看性能数据确认优化效果Q:GaussDB TPOPS 支持与其他华为云服务或其他第三方工具的集成吗?例如,日志分析、性能监控、CI/CD流水线等。如果有,具体是如何实现的?A:目前暂不支持Q:GaussDB管理平台在数据备份和恢复方面有哪些独特的功能或优势?A:TPOPS提供实例级备份、表级备份,同时支持全量备份和差量备份,恢复支持全量恢复以及恢复到指定时间点等多种备份恢复能力Q:老系统迁移到GaussDB分布式时,所有表的分布列时需要重新梳理一下吗,是否建议用系统默认生成的,如果带不上分布键每次所有节点都扫,对性能影响大吗A:可以参考DRS使用指南,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22728949&resTab=PD&sVR=PBI1-261715998&sC=PBI1-261716001Q:GaussDB 管理平台如何协助企业进行成本优化,降低数据库运维的总体拥有成本(TCO)?A:TPOPS提供丰富的基础运维和智能运维能力,同时提供可视化界面及视图,可以帮助企业降低DBA运维成本Q:华为GaussDB(DWS)与PostgreSQL有哪些区别?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:华为GaussDB(DWS)支持哪些类型数据库迁移?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:华为GaussDB(DWS)在实时数据分析方面有哪些优势?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:华为GaussDB(DWS)在大数据融合分析有哪些优势?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:TPOPS如何实现业务连续性和灾难恢复?A:数据库集群内发生故障时,可自动进行主备倒换保证业务可用性,集群间发生故障,可通过TPOPS进行容灾切换保证业务正常运行Q:如何防止因会话超时导致的问题? ‌如何识别死锁的会话?A:可通过设置会话超时时间避免因会话超时导致的问题。当多个会话同时请求同一个资源,可能会出现死锁的情况。Q:如何配置慢SQL采集的SQL执行时间范围?可视化慢SQL统计的关键指标趋势有哪些?A:TPOPS慢SQL采集页面支持配置SQL执行时间范围,统计的关键指标趋势包括CPU使用率和不同时间慢SQL数量Q:慢SQL诊断界面中展示的关键指标有哪些?A:主要有SQL耗时区间分布,不同时间慢SQL数量和具体慢SQL列表Q:老师您好,请问对于企业的大数据分析需求,GaussDB 管理平台如何支持快速的数据提取和转换?A:可通过DRS完成,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22728949&resTab=PD&sVR=PBI1-261715998&sC=PBI1-261716001Q:GaussDB管理平台TPOPS如何帮助DBA识别和解决性能瓶颈?A:TPOPS提供SQL诊断和调优的功能,可使用此功能帮助DBA识别和解决性能瓶颈Q:自定义SQL诊断的具体应用场景是什么?A:可针对开发过程中具体的某条SQL语句进行诊断优化Q:那GaussDB 管理平台如何对数据库性能进行深度分析,并提供具有可操作性的优化建议?A:TPOPS提供SQL诊断和调优的功能,可针对执行时间超过阈值的SQL提供优化建议Q:如何利用慢SQL采集和诊断功能来优化数据库性能,并具体描述其在实际运维中的应用步骤?A:通过监控发现慢SQL,在慢SQL调优之后,查看相关性能数据确认是否有性能提升Q:TPOPS都支持什么类型的浏览器?A:目前已支持Google Chrome、Firefox、Microsoft Edge多种类型浏览器Q:老师您好,请问GaussDB 管理平台的用户权限管理机制如何确保数据访问的安全性和可控性?A:TPOPS提供角色管理功能,可针对不同用户给予不同的角色进行细粒度权限管控,实现分权分域管理Q:智能运维的功能如何收费?A:目前智能运维软件功能不单独收费,部署DBMind节点后即可使用Q:客户的机器具有安全防护,主机和管理平台之间需要开放哪些端口?A:TPOPS产品资料->通信矩阵中会详细列明需开放的端口Q:在维护时间窗内不想触发告警,是否支持设置告警静默期,应该怎么设置?A:在TPOPS平台"实例-> 配置管理 -> 告警配置 -> 具体告警 -> 设置"界面中,提供了告警有效期和告警有效时间的配置项,将维护窗口设置在告警有效期和有效时间之外即可Q:告警对接配置是否支持多实例同时配置?A:TPOPS界面目前暂不支持批量配置,但开放了API可以支持批量配置(目前支持HTTPS协议)Q:解除容灾的时候,灾备集群会自动升主吗?原因是什么?A:解除容灾关系后,灾备集群即可作为单独的集群对外提供服务,因此会自动升主,Q:华为GaussDB(DWS)在数据库迁移方面有哪些优势?A:数据迁移为DRS能力,可参考https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22728949&resTab=PD&sVR=PBI1-261715998&sC=PBI1-261716001Q:SNMPv2与SNMPv3在告警对接中的区别及适用场景分别是什么?A:SNMPv3数据传输过程中增添了数据加密与用户认证,相比SNMPv2协议更安全,用户可根据对自身对安全级别的需求选择合适的协议进行告警对接Q:TPOPS功能是否支持自动化的数据库升级和迁移?A:支持升级,不支持迁移(迁移为DRS功能,可参考https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22728949&resTab=PD&sVR=PBI1-261715998&sC=PBI1-261716001)Q:华为GaussDB(DWS)与普通数据库有什么区别?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:华为GaussDB(DWS)支持哪些类型数据库迁移?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:TPOPS在数据治理和合规性方面提供了哪些工具和功能?A:提供了用户管理、审计日志、数据中心管理和备份管理等功能Q:TPOPS功能是否支持自定义运维脚本A:目前暂不支持Q:如何解决GaussDB(DWS)数仓之间不能互相访问的问题?A:可以参考DWS产品文档,https://support.huawei.com/carrier/productNewOffering?col=product&path=PBI1-253383977/PBI1-23710112/PBI1-23710137/PBI1-22396161Q:角色和权限的配置看起来比较复杂,是否有一些内置的角色方便快捷地配置用户的权限?A:TPOPS平台内置了实例管理角色、系统管理角色和只读角色,用户可根据需求配置,同时可以通过平台管理 > 平台用户管理 > 角色列表管理自定义角色Q:TPOPS如何支持不同版本的数据库实例管理?A:TPOPS通过将不同版本的实例内核包上传到平台的方式实现不同版本的实例安装和纳管Q:TPOPS功能是否支持数据库自动化性能压测?A:目前暂不支持Q:GaussDB 管理平台的智能化运维管理是如何实现对潜在故障的精准预测和提前防范的?A:TPOPS提供告警监控及巡检功能,可通过这些能力提前预测数据库潜在风险Q:随着业务增长,GaussDB管理平台TPOPS如何帮助DBA进行性能优化?A:可通过慢SQL诊断功能进行慢SQL的优化Q:纳管实例和取消纳管实例有什么区别?A:纳管是将数据库实例能够呈现在TPOPS上并进行管理,取消纳管是将数据库实例从TPOPS上移除,纳管和取消纳管均不影响数据库实例本身功能Q:与其他数据库管理平台相比,GaussDB 管理平台的一键式部署安装在安全性和兼容性方面有何独特优势?A:安全性:TPOPS平台安装部署前会进行前置检查,包括系统环境、系统文件、用户配置文件等多维度检查,确保后续安装过程顺利兼容性:TPOPS部署不依赖华为云底座,支持多种操作系统如麒麟、统信、HCE等,同时也支持多版本数据库实例的部署Q:“自监控、自诊断、自调优、自恢复和自安全”是如何实现的?A:通过定期采集监控数据,巡检,自动主备切换等能力组合实现Q:如果数据库端口被占用,如何解决?A:TPOPS平台创建实例时数据库端口支持自定义,避开占用端口即可Q:安装后置检查一般有哪些检查项?A:TPOPS提供产品资料《用户指南》中附录->主机管理标准化检查项可以查看详细检查项Q:主机上线后,如果发现存储类型不适合当前需求,能否在线变更?A:后续版本规划支持重置主机的功能来变更存储类型Q:TPOPS功能在安全性方面有哪些保障措施?A:TPOPS提供审计日志功能,可以记录管理平台对数据库的所有操作Q:TPOPS功能支持哪些数据库类型?A:TPOPS目前仅支持GaussDB的管理
  • [技术解读] 重置GaussDB实例管理员密码
    操作场景在使用GaussDB过程中,如果忘记数据库root账号密码,可以重新设置密码。注意事项如果您提供的密码被系统视为弱密码,您将收到错误提示,请提供更高强度的密码。如果数据库实例处于“异常”状态,则无法重置管理员密码。重置密码生效时间取决于该实例当前执行的业务数据量。请定期修改用户密码,以提高系统安全性,防止出现密码被暴力破解等安全风险。账号被冻结时不可重置密码。若使用root账号登录数据库,重置密码可能会导致业务中断,请谨慎操作。操作步骤登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,选择指定的实例,单击“更多 > 重置密码”。您也可以在“基本信息”页签,在“基础信息”模块的“管理员账户名”处,单击“重置密码”。在“重置密码”弹框,输入新密码及确认密码。须知:重置的密码需满足以下几个条件:8到32个字符。至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为~!@#%^*-_=+?,)四类字符中的三类字符。新密码不能与旧密码相同或相反。若您已开启高危操作保护,在弹出框单击“去验证”,跳转至验证页面,单击“免费获取验证码”,正确输入验证码并单击“认证”,页面自动关闭。通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《统一身份认证服务用户指南》的内容。
  • [技术解读] GaussDB标签管理
    操作场景标签管理服务(Tag Management Service,TMS)用于用户在云平台通过统一的标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。建议您先在TMS系统中设置预定义标签。标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。每个实例最多支持20个标签配额。编辑标签登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,选择指定的实例,单击实例名称,进入实例的“基本信息”页签。在左侧导航栏,单击“标签”,单击“编辑标签”,在弹出框中,单击“添加新标签”,输入标签的键和值,单击“确定”。输入标签的键和值时,系统会自动联想当前用户的所有实例(除当前实例外)的所有关联的预定义标签。标签的键允许包含任意语种字母、数字、空格和_ . : = + - @特殊字符,但首尾不能含有空格,不能以_sys_开头,限制长度最长128。标签的值允许包含任意语种字母、数字、空格和_ . : / = + - @特殊字符,限制长度最长255。添加成功后,您可在当前实例的所有关联的标签集合中,查询并管理自己的标签。删除标签登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,选择指定的实例,单击实例名称。在左侧导航栏,单击“标签”,在标签页,单击“编辑标签”,选择需要删除的标签,单击“删除”,然后单击“确定”。删除成功后,该标签将不再显示在实例的所有关联的标签集合中。
  • [技术解读] GaussDB任务管理
    您可以通过“任务中心”查看用户在控制台上提交的任务的执行进度和状态。说明:GaussDB支持查看和管理以下任务:创建GaussDB实例手动创建备份恢复到新实例分片扩容协调节点扩容恢复到已有实例恢复到当前实例磁盘扩容规格变更删除GaussDB实例停止备份实例形态变更升级待观察提交升级升级自动提交就地升级升级回退查看任务登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“任务中心”页面,选择目标任务,查看任务信息。通过任务名称/任务ID、实例名称/ID确定目标任务,或通过上方搜索框选择任务名称确定目标任务。支持查看某一时间段内的任务执行进度和状态,默认时长为7天。任务保留时长最多为30天。系统支持查看以下状态的任务:执行中完成失败查看任务创建时间和结束时间。删除任务对于不再需要展示的任务,您可以通过“任务中心”进行任务记录的删除。删除任务仅删除记录,不会删除数据库实例或者停止正在执行中的任务。须知:删除任务将无法恢复,请谨慎操作。登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“任务中心”页面,选择目标任务,单击操作列的“删除”,在弹出框中单击“确定”,删除任务。GaussDB服务支持删除以下状态的任务:完成失败
  • [技术解读] GaussDB任务管理
    您可以通过“任务中心”查看用户在控制台上提交的任务的执行进度和状态。说明:GaussDB支持查看和管理以下任务:创建GaussDB实例手动创建备份恢复到新实例分片扩容协调节点扩容恢复到已有实例恢复到当前实例磁盘扩容规格变更删除GaussDB实例停止备份实例形态变更升级待观察提交升级升级自动提交就地升级升级回退查看任务登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“任务中心”页面,选择目标任务,查看任务信息。通过任务名称/任务ID、实例名称/ID确定目标任务,或通过上方搜索框选择任务名称确定目标任务。支持查看某一时间段内的任务执行进度和状态,默认时长为7天。任务保留时长最多为30天。系统支持查看以下状态的任务:执行中完成失败查看任务创建时间和结束时间。删除任务对于不再需要展示的任务,您可以通过“任务中心”进行任务记录的删除。删除任务仅删除记录,不会删除数据库实例或者停止正在执行中的任务。须知:删除任务将无法恢复,请谨慎操作。登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“任务中心”页面,选择目标任务,单击操作列的“删除”,在弹出框中单击“确定”,删除任务。GaussDB服务支持删除以下状态的任务:完成失败
  • [问题求助] gaussdb数据库使用gs_loader导入数据时,文件字段长度大于数据库字段长度时报错,在ctl文件中截取长度对超长字段不起作用,表字段范围内的字段截取正常,怎么办
    gaussdb数据库使用gs_loader导入数据时,文件字段长度大于数据库字段长度时报错,在ctl文件中截取长度对超长字段不起作用,表字段范围内的字段截取正常,怎么办 filed to long
  • [技术解读] GaussDB安全配置建议
    最大连接数配置如果GaussDB连接数过高,会消耗服务器大量资源,导致操作响应变慢,可以修改max_connections参数进行优化,具体内容请参见连接设置。max_connections:允许和数据库连接的最大并发连接数,此参数会影响集群的并发能力。安全认证配置为了保证用户体验,同时为了防止账户被人通过暴力破解,GaussDB设置了账户登录重试次数及失败后自动解锁时间的保护措施,GaussDB针对账户提供了以下能力:failed_login_attempts:允许用户设置最大登录失败次数。password_lock_time:此参数允许用户修改账户被锁定后自动解锁时间,单位为天。若管理员发现某账户被盗、非法访问等异常情况,可手动锁定该账户。当管理员认为账户恢复正常后,可手动解锁该账户。以手动锁定和解锁用户joe为例,命令格式如下:手动锁定gaussdb=# ALTER USER joe ACCOUNT LOCK;ALTER ROLE手动解锁gaussdb=# ALTER USER joe ACCOUNT UNLOCK;ALTER ROLE用户密码的安全策略GaussDB为了客户账号的安全,GaussDB对用户密码进行了以下设置:用户密码存储在系统表pg_authid中,为防止用户密码泄露,GaussDB对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。GaussDB数据库用户的密码都有密码有效期,如果需要修改密码有效期,可以通过修改password_effect_time来更改。权限管理虚拟私有云可以为GaussDB实例构建隔离的、用户自主配置和管理的虚拟网络环境。子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性,可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。具体内容请参见权限管理。保障数据库的安全性和稳定性在使用数据库实例之前务必先设置安全组,具体内容请参见设置安全组规则。为防止PUBLIC拥有CREATE权限,导致数据库任何账户都可以在PUBLIC模式下创建表或者其他数据库对象,其他用户也可以修改这些数据,可以如下SQL语句来查询:SELECT CAST(has_schema_privilege(‘public’,‘public’,‘CREATE’) AS TEXT);如果返回为TRUE,执行如下SQL语句进行修复:REVOKE CREATE ON SCHEMA public FROM PUBLIC;PUBLIC角色属于任何用户,如果将对象的所有权限授予PUBLIC角色,则任意用户都会继承此对象的所有权限,违背权限最小化原则,为了保障数据库数据的安全,此角色应该拥有尽可能少的权限。通过执行如下SQL语句来确定所有权限是否授权PUBLIC角色:SELECT relname,relacl FROM pg_class WHERE (CAST(relacl AS TEXT) LIKE ‘%,=arwdDxt/%}’ OR CAST(relacl AS TEXT) LIKE ‘{=arwdDxt/%}’) AND (CAST(relacl AS TEXT) LIKE ‘%,=APmiv/%}’ OR CAST(relacl AS TEXT) LIKE ‘{=APmiv/%}’);为空则说明已授权,如果已授权,可通过执行如下SQL语句来修复:REVOKE ALL ON <OBJECT_NAME> FROM PUBLIC;pg_catalog模式下的pg_authid系统表中包含了数据库中所有的角色信息。由于所有用户会继承PUBLIC角色的权限,为了防止敏感信息泄露或被更改,PUBLIC角色不允许拥有pg_authid系统表的任何权限,执行如下SQL语句,如果查询结果显示不为空,则已经被授权:SELECT relname,relacl FROM pg_class WHERE relname = ‘pg_authid’ AND CAST(relacl AS TEXT) LIKE ‘%,=%}’;如果已授权,通过执行如下SQL语句进行修复:REVOKE ALL ON pg_authid FROM PUBLIC;普通用户指用于执行普通业务操作的非管理员用户。作为普通用户,不应该拥有超出其正常权限范围的管理权限,例如创建角色权限,创建数据库权限,审计权限,监控权限,运维权限,安全策略权限等,在满足正常业务需求的前提下,为了确保普通用户权限最小化,应撤销普通用户非必须的管理权限。在创建函数时声明SECURITY DEFINER表示函数以创建它的用户权限执行,如果使用不当会导致函数执行者借助创建者的权限执行越权操作,所以一定确保这样的函数不被滥用。为了安全考虑,禁止PUBLIC角色执行SECURITY DEFINER类型的函数,执行如下SQL语句查询pubilc角色是否有SECURITY DEFINER类型的函数:SELECT a.proname, b.nspname FROM pg_proc a, pg_namespace b where a.pronamespace=b.oid and b.nspname <> ‘pg_catalog’ and a.prosecdef=‘t’;如果返回非空,执行如下SQL语句检查是否有执行权限:SELECT CAST(has_function_privilege(‘public’, ‘function_name([arg_type][, …])’, ‘EXECUTE’) AS TEXT);返回TRUE,则代表拥有,执行下面的SQL语句进行修复:REVOKE EXECUTE ON FUNCTION function_name([arg_type][, …]) FROM PUBLIC;SECURITY INVOKER函数是以调用它的用户的权限来执行,使用不当会导致函数创建者借助执行者的权限执行越权操作,所以在调用非自身创建的这类函数时,一定要先检查函数执行内容,避免造成函数创建者借助执行者的权限执行了越权的操作。数据库审计GaussDB可以记录实例相关的操作,但是仅针对支持的审计操作,请在操作前查询操作列表,具体内容请参见支持审计的关键操作列表。确保配置开启数据库对象的添加、删除、修改审计,具体内容请参见数据库审计。支持审计日志可视化查看,可开启LTS的能力,具体内容可参见LTS日志。WAL 归档配置WAL(Write Ahead Log)即预写式日志,也称为Xlog。wal_level决定了写入WAL的信息量。为了在备机上开启只读查询,wal_level需要在主机上设置成hot_standby,并且备机设置hot_standby参数为on。备份管理GaussDB支持数据库实例的备份和恢复,以保证数据可靠性。备份目前将以未加密的方式存储,防止客户误操作或者服务异常的情况下,因没有开启备份而造成数据丢失的情况,GaussDB针对备份提供了以下能力:提供了自动和手动的备份功能,具体内容请参见备份概述,在创建GaussDB实例时,系统默认开启实例级自动备份策略。实例创建成功后,您可根据业务需要修改实例级自动备份策略。提供了自动备份策略,定时定期对数据库进行备份。具体内容请参见设置自动备份策略。提供了导出备份文件的能力,具体内容请参见导出备份信息。
  • [技术干货] GaussDB支持的IOPS取决于云硬盘(Elastic Volume Service,简称EVS)的IO性能
    GaussDB支持的IOPS取决于云硬盘(Elastic Volume Service,简称EVS)的IO性能,具体请参见《云硬盘产品介绍》中“磁盘类型及性能介绍”的内容。测试数据实例类型:分布式版,集中式版。实例规格:16U128GB和32U256GB等。集群规模:分布式版:3CN,3分片,3副本;集中式版:1主2备。数据量:1000wh。压测时长:30min(预热5min)。指标测试  流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。
  • [技术干货] 【FAQ】2025年1月,数据库问答集合
    当前读和快照读有什么区别?https://bbs.huaweicloud.com/forum/thread-02108171696949107018-1-1.htmlMySQL 如何处理外键约束?https://bbs.huaweicloud.com/forum/thread-0248173013396474055-1-1.htmlMySQL 的复制(Replication)如何配置?https://bbs.huaweicloud.com/forum/thread-0296173013417361044-1-1.htmlGAUSSDB中,如何根据实际业务负载动态优化数据分片策略?https://bbs.huaweicloud.com/forum/thread-0296173113227095048-1-1.htmlInnoDB支持哪几种行格式?https://bbs.huaweicloud.com/forum/thread-0271172124311540006-1-1.html数据库如果发生了死锁,该如何解决?https://bbs.huaweicloud.com/forum/thread-02127172388806893016-1-1.htmlMySQL的行级锁锁的到底是什么?https://bbs.huaweicloud.com/forum/thread-0233171697074647018-1-1.html走了索引,但是还是很慢是什么原因?https://bbs.huaweicloud.com/forum/thread-02127172388751194015-1-1.html如何使用 MySQL 的全文索引(Full-text Index)?https://bbs.huaweicloud.com/forum/thread-0271173112993205041-1-1.html如何设计高效的数据库索引策略?https://bbs.huaweicloud.com/forum/thread-02127173013357231039-1-1.htmlmysql中操作同一条记录会发生死锁吗?https://bbs.huaweicloud.com/forum/thread-0272172388784686024-1-1.htmlMySQL 的查询缓存(Query Cache)如何工作?https://bbs.huaweicloud.com/forum/thread-02109173013451897048-1-1.htmlInnoDB的聚簇索引是按照表的主键创建一个B+树,但是如果我们在表结构中没有定义主键怎么办?https://bbs.huaweicloud.com/forum/thread-0251172210751495011-1-1.htmlInnoDB的一次更新事务是怎么实现的?https://bbs.huaweicloud.com/forum/thread-0272172124372272009-1-1.htmlmysql在InnoDB引擎下加索引,这个时候会锁表吗?https://bbs.huaweicloud.com/forum/thread-0251172210713869010-1-1.htmlmysql中如何减少回表,增加查询的性能?https://bbs.huaweicloud.com/forum/thread-0248172388725943017-1-1.html如何实现 MySQL 的多主复制?https://bbs.huaweicloud.com/forum/thread-0271173112973510040-1-1.htmlGaussDB分布式环境下,如何保证分布式事务的ACID属性?https://bbs.huaweicloud.com/forum/thread-02127173113185518041-1-1.htmlMySQL 数据库如何实现数据备份与恢复?https://bbs.huaweicloud.com/forum/thread-0251173013438331049-1-1.html如何避免 MySQL 中的死锁?https://bbs.huaweicloud.com/forum/thread-0296173013382284043-1-1.html
  • [问题求助] GAUSSDB中,如何根据实际业务负载动态优化数据分片策略?
    GAUSSDB中,如何根据实际业务负载动态优化数据分片策略?
  • [问题求助] GaussDB分布式环境下,如何保证分布式事务的ACID属性?
    GaussDB分布式环境下,如何保证分布式事务的ACID属性?
  • [技术解读] GaussDB模式匹配操作符详细介绍
    GaussDB模式匹配操作符详细介绍GaussDB数据库目前提供了三种独立的实现模式匹配的方法,分别为LIKE操作符、SIMILAR TO操作符和POSIX-风格的正则表达式 。除了这些基本的操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。1、likelike应该是我们经常使用的方式,判断字符串是否能匹配上LIKE后的模式字符串,如果匹配,则LIKE表达式返回为真(NOT LIKE表达式返回假),否则返回为假(NOT LIKE表达式返回真)。如果不添加%或_,即全部字符串匹配相当于=;如果要匹配在字符串内的任何位置,该模式必须以%开头和结尾。规则说明%任意字符串的通配符_(匹配)任何单个字符\\ 、%、\_转义字符,查询的内容中需要匹配%、_、\,需要在前面添加\like大小写敏感即区分大小写ilike大小写不敏感即不区分大小写通配符openGauss=# SELECT 'abc' LIKE 'abc' AS RESULT; result -------- t (1 row) openGauss=# SELECT 'abc' LIKE 'a%' AS RESULT; result -------- t (1 row) openGauss=# SELECT 'abc' LIKE '%b%' AS RESULT; result -------- t (1 row) openGauss=# SELECT 'abc' LIKE '_b_' AS RESULT; result -------- t (1 row) openGauss=# SELECT 'abc' LIKE 'c' AS RESULT; result -------- f (1 row) 是否区分大小写openGauss=# select 'abc' like 'A%' as result; result -------- f (1 row) openGauss=# select 'abc' ilike 'A%' as result; result -------- t (1 row) ESCAPE子句指定其他逃逸字符下面案例中的模式字符串’abc%%',第一个%由于自定义了逃逸字符,因此$%作为一个普通字符存在,只需要匹配查询的内容中包含有%;最后一个%则是通配符作用openGauss=# with tmp as (select 'abc%def' as result union all select 'abcdef' as result) openGauss-# select * from tmp where result like 'abc$%%' escape '$'; result --------- abc%def (1 row) 2、SIMILAR TOSIMILAR TO的用法和LIK非常类似,其结果也是根据匹配结果返回真假。另外比较特殊的就是支持使用SQL标准定义的正则表达式理解模式,支持的规则除了%和_之外,也支持下面这些从POSIX正则表达式借用的模式匹配元字符。元字符含义|表示选择(两个候选之一)*表示重复前面的项零次或更多次,可以理解为任意次+表示重复前面的项一次或更多次?表示重复前面的项零次或一次{m}表示重复前面的项刚好m次。{m,}表示重复前面的项m次或更多次{m,n}表示重复前面的项至少m次并且不超过n次()把多个项组合成一个逻辑项,就相当于把整个()内的内容作为匹配项[…]声明一个字符类,就像POSIX正则表达式一样针对上述描述重复的次数,是指元字符修饰的字符或者字符组重复多少次,不要理解为该字符或字符组可以和源字符串可以匹配多少次常见元字符使用--|元字符 openGauss=# SELECT 'abc' SIMILAR TO '%(af|bc)%' AS RESULT; result -------- t (1 row) --*元字符 --当前的*时,即使没有可匹配的内容,也返回的是true openGauss=# SELECT 'abc' SIMILAR TO '%(o)*%' AS RESULT; result -------- t (1 row) openGauss=# SELECT 'abcdefosp' SIMILAR TO '%(o)*%' AS RESULT; result -------- t (1 row) --+元字符,该示例由于一次也未匹配到,所以返回false openGauss=# SELECT 'abc' SIMILAR TO '%(o)+%' AS RESULT; result -------- f (1 row) --+元字符,该示例匹配到多次o,所以返回true openGauss=# SELECT 'abcdefooosp' SIMILAR TO '%(o)+%' AS RESULT; result -------- t (1 row) --?元字符,,该示例未匹配,返回结果也是true openGauss=# SELECT 'abc' SIMILAR TO '%(o)?%' AS RESULT; result -------- t (1 row) --{m,n}元字符,对于字符组oo,需要至少匹配2次,即为oooo,可知原字符串不符合结果,返回结果为false。 openGauss=# SELECT 'abcoodefoooosp' SIMILAR TO '%(oo){2,3}%' AS RESULT; result -------- f (1 row) SELECT 'abcoodefoooosp' SIMILAR TO '%(oo){2,3}%' AS RESULT; 3、POSIX正则表达式正则表达式是一个字符序列,它是定义一个串集合(一个正则集)的缩写。 如果一个串是正则表达式描述的正则集中的一员时, 我们就说这个串匹配该正则表达式。 POSIX正则表达式提供了比LIKE和SIMILAR TO操作符更强大的含义。列出了所有可用于POSIX正则表达式模式匹配的操作符。正则表达式匹配操作符操作符描述例子~匹配正则表达式,大小写敏感,等价与like‘thomas’ ~ ‘.thomas.’~*匹配正则表达式,大小写不敏感,等价与ilike‘thomas’ ~* ‘.Thomas.’!~不匹配正则表达式,大小写敏感,等价与not like‘thomas’ !~ ‘.Thomas.’!~*不匹配正则表达式,大小写不敏感,等价与not ilike‘thomas’ !~* ‘.vadim.’--匹配正则表达式,大小写敏感 openGauss=# SELECT 'abc' ~ 'Abc' AS RESULT; result -------- f (1 row) --匹配正则表达式,大小写不敏感 openGauss=# SELECT 'abc' ~* 'Abc' AS RESULT; result -------- t (1 row) --不匹配正则表达式,大小写敏感 openGauss=# SELECT 'abc' !~ 'Abc' AS RESULT; result -------- t (1 row) --不匹配正则表达式,大小写不敏感 openGauss=# SELECT 'abc'!~* 'Abc' AS RESULT; result -------- f (1 row) 匹配规则与LIKE不同,正则表达式允许匹配串里的任何位置,除非该正则表达式显式地挂接在串的开头或者结尾。除了上文提到的元字符外, POSIX正则表达式还支持下列模式匹配元字符。元字符含义\转义字符^表示串开头的匹配$表示串末尾的匹配.匹配任意单个字符(abc)把多个字符组合成一个匹配原子,就相当于把整个()内的内容作为匹配项[abc]匹配abc中的任何一个字符,内部可以嵌套(abc),然后这个做一个原子,比如:[abc(de)][^abc]负值字符集合。匹配未包含的任意字符。例如,[^abc]可以匹配“plain”中的“plin”任一字符。|表示选择(两个候选之一)例如: a|b\d匹配任何数字,就像 [[:digit:]]\s匹配任何空白字符,就像 [[:space:]] ,包括空格、制表符和换行\w匹配任何单词字符,就像 [[:word:]]\D匹配任何非数字,就像 [^[:digit:]]\S匹配任何非空白字符,就像 [^[:space:]]\W匹配任何非单词字符,就像 [^[:word:]]\A只在串开头匹配(与^的不同)\m只在一个词的开头匹配\M只在一个词的末尾匹配\y只在一个词的开头或末尾匹配\Y只在一个词的不是开头或末尾的点上匹配\Z只在串的末尾匹配(与$的不同)\r回车常见元字符使用--()匹配规则 openGauss=# select 'abc' ~ '(ab|ac)' as result; result -------- t (1 row) --[]匹配规则,其中的任何一个字符匹配到源字符串就返回true openGauss=# select 'abc' ~ '[bef]' as result; result -------- t (1 row) --[^abc],只要源字符串含有非限定范围的字符,就返回true openGauss=# select 'china' ~ '[^abc]' as result; result -------- t (1 row) --匹配空白字符 openGauss=# select 'china ' ~ '\s' as result; result -------- t (1 row) 匹配两个词组查询场景下面的案例主要就是查询数据库会话中使用is not null或者is null语法的场景--如果两个词组中间只包含空格,可以直接添加\s,另外还需要考虑有多个空白的时候,因此也需要添加量词来修饰,可以添加+ openGauss=# select 'select * from t1 where is not null' ~ '(is)\s+(not)' as result; result -------- t (1 row) --如果两个词组中间包含不固定的字符且至少有一个字符,可以添加 .+来指定任意字符; openGauss=# select 'select * from t1 where is not null' ~ '(is).*(null)' as result; result -------- t (1 row) --如果两个词组中间,可能存在not字符串且不存在其他字符串,可以适用((not)?\s+)修饰not字符串的匹配规则,外层的括号可以不需要。 --外层的括号只是为了方便区分匹配的分组 openGauss=# select 'select * from t1 where is not null' ~ '(is)\s+((not)?\s+)(null)' as result; result -------- t (1 row) --去掉括号后的结果和之前是一致的 openGauss=# select 'select * from t1 where is not null' ~ '(is)\s+(not)?\s+(null)' as result; result -------- t (1 row) 匹配规则,是否需要考虑换行匹配多个词组的时候,目前验证,对于空格、制表符、换行,都按照匹配任何空白字符处理即可。create table t1 (id int,context varchar(1000)); insert into t1 values(1,'select * from t1 where is not null'); insert into t1 values(2,'select * from t1 where is null'); insert into t1 values(3,'select * from t1 where 1=2'); insert into t1 values(4,'not else'); insert into t1 values(5,'ifnot else'); insert into t1 values(6,'notrr else'); insert into t1 values(7,'select * from t1 where is not null'); --查询 openGauss=> select * from t1 where regexp_like(context,'(is)\s+(not)?\s?(null)','i'); id | context ----+------------------------------------ 1 | select * from t1 \r + | where is \r + | not null 2 | select * from t1 where is \r + | null 7 | select * from t1 where is not null (3 rows) --插入 insert into t1 values(8,'where group by '); insert into t1 values(9,'where group by '); --匹配换行\r openGauss=> select * from t1 where regexp_like(context,'(group)\r+','i'); id | context ----+--------------- 8 | where group\r+ | by (1 row) --匹配任何空白字符\s,根据结果可知,\s是包含换行信息的 openGauss=> select * from t1 where regexp_like(context,'(group)\s+','i'); id | context ----+----------------- 8 | where group\r + | by 9 | where group by (2 rows) 按照词组匹配,精确查找我们在查询匹配关键字的时候,一般需要精确查找匹配,而不需要那些包含有查询关键字的数据行--通过正则表达式约束\m和\M来限定一个词的开头和结尾匹配 openGauss=> select * from t1 where regexp_like(context,'\mnot\M','i'); id | context ----+------------------------------------ 1 | select * from t1 \r + | where is \r + | not null 4 | not else 7 | select * from t1 where is not null (3 rows) --\m一个词的开头匹配 openGauss=> select * from t1 where regexp_like(context,'\mnot','i'); id | context ----+------------------------------------ 1 | select * from t1 \r + | where is \r + | not null 4 | not else 6 | notrr else 7 | select * from t1 where is not null (4 rows) --\M一个词的末尾匹配 openGauss=> select * from t1 where regexp_like(context,'not\M','i'); id | context ----+------------------------------------ 1 | select * from t1 \r + | where is \r + | not null 4 | not else 5 | ifnot else 7 | select * from t1 where is not null (4 rows) ?和*量词的区别在查询匹配场景下,我个人理解应该是一致的,但是对于一些替换场景则是有区别的--?是匹配0或1次,所以(o)?b匹配的子串为ob,替换为了foearbaz openGauss=> SELECT regexp_replace('foobarobaz', '(o)?b', 'e'); regexp_replace ---------------- foearobaz (1 row) --*是匹配0或更多次,所以(o)?b匹配的子串为oob,替换为了e,结果为fearbaz openGauss=> SELECT regexp_replace('foobarobaz', '(o)*b', 'e'); regexp_replace ---------------- fearobaz (1 row) --对于flat参数,i表示进行大小写无关的匹配,g表示替换每一个匹配的子字符串而不仅仅是第一个 openGauss=> SELECT regexp_replace('foobarobaz', '(o)*b', 'e','g'); regexp_replace ---------------- feareaz (1 row) 正则表达式支持的函数对于具体的正则函数的使用,本文不做详细介绍,后续再写文章详细介绍。正则表达式支持的函数如下,substring(string from pattern) 描述:截取匹配POSIX正则表达式的子字符串。如果没有匹配它返回空值,否则返回文本中匹配模式的那部分。 regexp_count(string text, pattern text [, position int [, flags text]]) 描述:获取满足匹配的子串个数 regexp_instr(string text, pattern text [, position int [, occurrence int [, return_opt int [, flags text]]]]) 描述:获取满足匹配条件的子串位置(从1开始)。如果没有匹配的子串,则返回0。 regexp_substr(string text, pattern text [, position int [, occurrence int [, flags text]]]) 描述:正则表达式的抽取子串函数。与substr功能相似,正则表达式出现多个并列的括号时,也全部处理 regexp_replace(string, pattern, replacement [,flags ]) 描述:替换匹配POSIX正则表达式的子字符串。如果没有匹配pattern,那么返回不加修改的string串。如果有匹配,则返回的string串里面的匹配子串将被replacement串替换掉。 replacement串可以包含\n,其中\n是1到9,表明string串里匹配模式里第n个圆括号子表达式的子串应该被插入,并且它可以包含\&表示应该插入匹配整个模式的子串。 可选的flags参数包含零个或多个改变函数行为的单字母标记。flags 支持的选项值及含义描述如表1 flags 支持的选项值所示。返回值类型:varchar regexp_matches(string text, pattern text [, flags text]) 描述:返回string中所有匹配POSIX正则表达式的子字符串。如果pattern不匹配,该函数不返回行。如果模式不包含圆括号子表达式,则每一个被返回的行都是一个单一元素的文本数组,其中包括匹配整个模式的子串。如果模式包含圆括号子表达式,该函数返回一个文本数组,它的第n个元素是匹配模式的第n个圆括号子表达式的子串。 flags参数为可选参数,包含零个或多个改变函数行为的单字母标记。i表示进行大小写无关的匹配,g表示替换每一个匹配的子字符串而不仅仅是第一个。 regexp_split_to_array(string text, pattern text [, flags text ]) 描述:用POSIX正则表达式作为分隔符,分隔string。和regexp_split_to_table相同,不过regexp_split_to_array会把它的结果以一个text数组的形式返回。返回值类型:text[] regexp_split_to_table(string text, pattern text [, flags text]) 描述:用POSIX正则表达式作为分隔符,分隔string。如果没有与pattern的匹配,该函数返回string。如果有至少有一个匹配,对每一个匹配它都返回从上一个匹配的末尾(或者串的开头)到这次匹配开头之间的文本。当没有更多匹配时,它返回从上一次匹配的末尾到串末尾之间的文本。 flags参数包含零个或多个改变函数行为的单字母标记。i表示进行大小写无关的匹配。返回值类型:setof text regexp_like(text,text,text) 描述:正则表达式的模式匹配函数。返回值类型:bool总结本文中整理的正则匹配规则为比较常见的规则,相对来说上手还是比较容易的,这些规则对于我们的日常运维开发应该是足够使用的。另外这三种模式匹配,其实使用场景也是稍微有所不同。1、like常用于简单的模糊匹配查询2、SIMILAR TO语法可以支持正则模式匹配,适用于大部分场景3、正则表达式相比SIMILAR TO,支持一些正则函数的使用并且支持一些其他特殊的匹配规则总之,正则表达式是一种强大的工具,它在文本处理领域具有广泛的应用,并且具有灵活性、通用性和高效性等优点。通过掌握正则表达式,开发或运维人员能够更高效地处理文本数据。上述的整理,是通过查看gauss的官网文档并结合PG官网资料整理常用的正则表达式。如果个别内容有误,望各位大佬多多指正。作者:墨竹
  • [热门活动] 【话题交流】2025年了,今年准备学习什么技术,一起来讨论一下!
    【话题交流】2025年了,今年准备学习什么技术,一起来讨论一下!
  • [技术干货] [技术合集]2025年1月数据库干货合集
    内容总结主从复制与GTID模式:文章详细介绍了MySQL主从复制的多种实现方式,重点讲解了GTID模式如何简化主从同步配置和管理,提高数据库的容错性和可维护性。权限与安全管理:深入解析了MySQL的用户权限、组管理,以及行锁与表锁机制,帮助开发者更好地理解如何控制数据访问权限和并发控制。读写分离与性能优化:对比了代码层面的读写分离与使用ProxySQL工具进行自动化读写分离的优劣,强调了锁机制(临键锁、间隙锁、记录锁)对性能的影响。事务与隔离级别:讲解了MySQL的事务隔离级别,解释了不同隔离级别对并发控制和数据一致性的影响,提升了对事务管理的理解。索引与查询优化:探讨了B树和Hash索引的优缺点,并深入剖析了MySQL索引优化的技术,帮助提高查询效率。数据库引擎与数据结构:介绍了MyISAM与InnoDB引擎的区别,讨论了B+树、B树、红黑树等数据结构在数据库中的应用,提升了对数据存储和检索的理解。链接地址标题: MySQL中进行数据库备份和恢复链接: cid:link_0标题: MySQL支持哪些数据类型链接:https://bbs.huaweicloud.com/forum/thread-02104172938081589045-1-1.html标题: MySQL查询性能优化链接 https://bbs.huaweicloud.com/forum/thread-0248172938055823049-1-1.html标题: 数据库迁移至GaussDB指南链接 https://bbs.huaweicloud.com/forum/thread-0251172937817567045-1-1.html标题: GaussDB容灾能力解析链接 https://bbs.huaweicloud.com/forum/thread-0271172937788228033-1-1.html标题: GaussDB中实现数据分片链接https://bbs.huaweicloud.com/forum/thread-02104172937758944044-1-1.html标题: GaussDB如何处理事务和一致性问题链接 https://bbs.huaweicloud.com/forum/thread-0271172937723905032-1-1.html标题: GaussDB自动扩展解析链接 https://bbs.huaweicloud.com/forum/thread-02104172937620869043-1-1.html标题: GaussDB中进行SQL优化链接 https://bbs.huaweicloud.com/forum/thread-0296172937060065039-1-1.html标题: Redis中String 的底层结构链接 https://bbs.huaweicloud.com/forum/thread-02109172425407085022-1-1.html标题: Redis集群链接 https://bbs.huaweicloud.com/forum/thread-0272172424146041027-1-1.html标题: Redis 分布式锁详解链接 https://bbs.huaweicloud.com/forum/thread-0296172412268584021-1-1.html标题: 数据库怎么借助AI发展链接 https://bbs.huaweicloud.com/forum/thread-0271172338884574011-1-1.html标题: 关系型数据库和非关系型数据库的区别链接 https://bbs.huaweicloud.com/forum/thread-02127172329773130013-1-1.html标题: 高斯数据库与MySQL数据库的区别https://bbs.huaweicloud.com/forum/thread-0272172329359040020-1-1.html链接 https://bbs.huaweicloud.com/forum/thread-0272172329359040020-1-1.html
总条数:1539 到第
上滑加载中