-
GaussDB 备份与恢复技术详解一、备份与恢复的核心目标数据安全性:防止数据丢失(硬件故障、人为误删、勒索软件攻击等)。业务连续性:在灾难发生时快速恢复服务,减少停机时间。合规性:满足行业监管对数据保留和恢复的要求(如金融、医疗领域)。二、GaussDB 备份机制分类GaussDB 提供多种备份策略,适用于不同场景:1. 物理备份(Physical Backup)原理:直接复制数据库文件(如数据页、日志文件、配置文件)。适用场景:全量备份(完整复制数据库状态)。快速恢复大规模数据损坏(如磁盘物理故障)。实现方式:命令行工具:gs_basebackup(类似 PostgreSQL 的基础备份工具)。云存储集成:备份文件自动上传至华为云对象存储(COS)、OBS 等。优点:备份速度快,恢复时数据一致性高。支持增量备份(仅备份自上次备份后的变化)。缺点:需要存储足够的空间存放物理文件。恢复时需严格依赖备份文件的完整性。2. 逻辑备份(Logical Backup)原理:通过 SQL 语句导出数据(如 SELECT * INTO OUTFILE 或工具生成的脚本)。适用场景:小规模数据迁移或部分表备份。非结构化数据导出(如 JSON/Blob 类型)。实现方式:内置工具:gsql 命令行导出数据。第三方工具:DataStage、Informatica 等 ETL 工具。优点:跨数据库兼容性强(支持导出为通用格式)。灵活筛选数据(按条件导出部分记录)。缺点:备份效率较低(需逐行处理数据)。恢复时需重建索引和约束,可能影响性能。3. 分布式备份(Distributed Backup)原理:利用 GaussDB 的分布式架构,将备份任务分发到各节点并行执行。适用场景:TB/PB 级海量数据的快速备份。跨可用区(AZ)容灾备份。实现方式:基于存储引擎特性:GaussDB 的存储节点自动分片备份。华为云服务集成:通过云备份服务(CBR)实现自动化全量/增量备份。优点:备份速度随节点数线性增长。支持无中断备份(热备份)。缺点:需要配置复杂的备份策略和网络规划。三、恢复策略设计1. 全量恢复步骤:停止数据库服务(避免写入冲突)。恢复物理备份文件到原始路径。初始化数据库实例(./initdb 或云服务提供的恢复工具)。应用日志文件(WAL)至恢复点。适用场景:数据库完全崩溃或全量数据丢失。2. 增量恢复原理:基于物理备份的差异数据(增量备份文件)恢复。步骤:恢复全量备份。按顺序应用所有增量备份包。验证数据一致性。适用场景:部分数据损坏或日志丢失。3. 逻辑恢复步骤:创建空目标表结构(通过备份的 CREATE TABLE 脚本)。导入数据文件(如 CSV、SQL 脚本)。重建索引和触发器。适用场景:误删表或需要恢复特定业务数据。4. 分布式恢复原理:从各节点的备份副本中并行恢复数据。实现方式:主备集群切换:故障时自动切换到备用节点,从备份库同步数据。基于云存储的恢复:从 CBR 下载备份包并恢复至新集群。优点:缩短恢复时间(RTO)。四、最佳实践建议备份频率规划:全量备份:每周至少一次。增量备份:每天或实时日志备份(WAL)。关键业务数据:实时同步到异地灾备中心。多副本策略:启用 GaussDB 的多副本存储功能(默认 3 副本),避免单点故障。结合云存储的跨区域复制(CRR)增强数据冗余。监控与告警:配置备份任务失败通知(如邮件、短信)。定期验证备份文件的完整性(md5sum 或数据库校验工具)。恢复演练:每季度模拟灾难场景进行恢复测试。记录恢复耗时(RTO)和数据丢失量(RPO)。安全防护:加密备份文件(GaussDB 支持 AES-256 加密)。限制备份文件的访问权限(如使用IAM角色控制)。五、常见故障处理备份失败:检查网络连接和存储空间。查看日志文件(gaussdb_log)定位错误原因。恢复数据不一致:确保备份文件版本与数据库实例兼容。应用所有增量备份包并按顺序执行。性能下降:分析备份期间的资源占用(CPU/IO)。调整备份窗口(避开业务高峰期)。六、总结GaussDB 的备份与恢复能力依托其分布式架构和云原生特性,提供了灵活多样的策略。企业应根据业务需求选择物理备份保障数据完整性和逻辑备份满足灵活迁移需求,同时结合自动化工具(如华为云 CBR)降低运维复杂度。最终目标是实现 数据零丢失 和 业务分钟级恢复 的目标。作者:hhh1218
-
高安全GaussDB拥有TOP级的商业数据库安全特性,能够满足政企和金融级客户的核心安全诉求。安全特性包括:数据动态脱敏,行级访问控制,密态计算。健全的工具与服务化能力GaussDB已经拥有华为云,商用服务化部署能力,同时支持DAS、DRS等生态工具。有效保障用户开发、运维、优化、监控、迁移等日常工作需要。全栈自研GaussDB基于鲲鹏生态,是当前国内唯一能够做到全栈自主可控的国产品牌。同时GaussDB能够基于硬件优势在底层不断进行优化,提升产品综合性能。开源生态GaussDB已经支持开源社区,并提供集中式版本下载。
-
在企业核心业务支撑的数据库系统使用场景中,开发人员必须全方位监控数据库的运行状况。对于存储资源利用率的挑战,一个直观的解决方案是提升存储系统压缩率,以实现存储空间的节省,或在有限的资源下存储更多的业务数据。然而,数据的压缩和解压过程可能会导致访问延迟、内存膨胀或磁盘占用率的剧烈波动,从而增加系统运行的风险。非压缩方案与压缩方案性能对比。比如,压缩和解压操作会消耗CPU资源,进而对系统性能产生影响。而数据在压缩前后硬盘和内存中的大小差异,也可能给数据库内存管理带来风险。因此,从业务系统和数据库的整体角度出发,如何平衡压缩率和系统性能,成为应对业务快速增长带来的存储问题的关键难点之一。在面对需要分布式改造的超大单表,或需要频繁扩容的分布式系统中的重量级数据库表时,不仅需要关注上述性能指标和系统稳定性,还需要考虑提高资源利用率的方案是否会带来额外的业务改造成本。此外,考虑到数据的生命周期,业务系统中提高资源利用率的方案不应因数据的新旧而产生交叉影响。由于不同库表的生命周期特点各异,压缩策略也应相应地采取差异化的处理。
-
从topsql查找内存报错信息select queryid,estimate_memory,min_peak_memory,max_peak_memory,average_peak_memory,status,abort_info,start_time,finish_time,duration from PGXC_WLM_SESSION_INFO where start_time > '2025-02-05 00:00:00' and abort_info ilike '%memory is temporarily unavailable%' order by start_time desc limit 100;到DN上查看报错详细信息,查看DN日志,查找常用关键词abnormal,可以看到内存信息,总的估算内存是11965MB,总的使用内存是12634MB,异常sql使用了内存135MB,并没有很大。报错语句是analyze xxx;DN日志中关键词stream_start_time,看到BuildStreamFlow用了6秒客户并发高导致调整DN参数max_stream_pool 1024->2048
-
在运维阶段,我们同样积极探索将已有的智能运维工具以及当前的大模型技术相结合,建立更加智能化、自治化的数据库故障分析与自愈框架。GaussDB当前的故障运维智能体框架,主要依托大模型的多步对话、规划、反思以及工具调用的能力,形成能够自治并完成复杂故障分析任务的智能体应用。GaussDB以LLM为决策大脑,按照案例知识召回、故障分析计划编排、故障分析执行、故障根因总结等步骤,结合运维工具集进行工作。工具能力构建GaussDB当前通过AI算法构建了系列异常检测、慢SQL诊断、集群故障根因诊断等关键运维能力。通过restful/Dubbo 接口与智能体无缝对接,确保了高效的数据交互与调用。通过构建运维工具API集合,在智能体分析故障流程中,实现不同故障运维场景下大模型能够调用合适的工具。运维案例记忆通过资深运维专家总结标准作业流程SOP,记录特定故障场景下需要检测的事项信息步骤以及故障判断准则,为智能体引入专家经验,构建故障运维案例库。此部分知识可以储存在数据库当中,留待智能体检索使用,而且在实践过程中,会对现网运维常见的CPU使用率、长事务、集群状态等TOP场景优先进行了支持。故障分析计划编排根据故障现象,通过相似度搜索,故障智能体在运维案例记忆中召回相关运维案例,组装成提示词,输入到大模型进行分析流程编排。对于不在预设TOP场景的故障类型,则通过大模型会根据现有案例以及运维知识,推理生成规划,形成对未知故障的学习能力。故障分析执行在计划编排步骤得到的故障分析计划下,重新组装提示词输入到大模型进行工具调用执行的任务,可以利用LLM的工具调用Function call能力,从工具集当中选择各个步骤的所需的工具参数,以及对应的工具接口API,生成的结果可以通过restful/Dubbo等接口协议进行执行,并且获取接口调用结果。对于需要多步执行的流程,上一步接口调用的结果,有可能需要拼接到LLM的下一步输入。故障定位总结与报告生成经过完整的计划编排以及分析执行后,这些步骤的结果将会汇总输入到LLM输出根因定位总结报告。在用户界面上,展示完整的分析流程以及对应的根因定位总结报告。通过以上流程,运维智能体可以减少运维人员分析故障的复杂度,节省故障定位时间,同时能够直观展示分析流程以及总结报告。
-
随着数据库产品的功能增强,技术能力的加深,不仅拓展了技术资料的广度和深度,相应地提高了学习成本,也提升了对数据库用户(DBA、开发人员、运维人员)使用数据库的门槛。GaussDB基于RAG(Retrieval-Augmented Generation,检索增强生成)和LLM技术构建的智能知识问答能力,通过整合产品文档、社区资料、使用手册和运维手册等私域资料,运用自然语言处理和知识检索技术,GaussDB智能问答助手能理解并解答用户关于GaussDB的各类问题,帮助用户快速找到解决方案,在安装配置、性能优化、操作使用以及故障排查方面,提供精确有效、交互式的回答。在技术实现上,RAG框架通过结合传统的信息检索方法与先进的生成模型,在用户提问时,先从私域部署的知识库中检索相关资料,再通过LLM生成流畅、准确的回答。这种设计既结合了LLM的通用性、灵活性以及对用户意图的理解力,又能将知识库作为大模型的“外脑”,解决了LLM存在的幻觉、信息过时、可解释性不足、专业知识缺乏的问题,确保用户获得的信息既准确又符合实际的操作需求。 GaussDB智能问答主要关键特性如下:文档知识提取通过NLP(Natural Language Processing,自然语言处理)技术构建一系列文档处理工具,针对Markdown数据进行分块切分,以实现高效的知识管理。此外,还支持用户文档处理成向量知识以及文本知识。知识召回当用户提出问题时,智能问答系统首先会进行向量检索以及文本检索,在向量检索环节,使用一个重排模型对召回的结果进行排序,来确保与用户问题语义最为相关的知识,汇总到大模型后完成总结输出。数据库领域知识微调从技术文档、开发文档构建GaussDB专用语料库,并对底座LLM进行SFT微调训练,实现对GaussDB专有名词和场景的知识注入。为了避免训练过程中模型的遗忘,也适量加入通用语料知识进行混合训练微调,可以提高模型在回答数据库专业的准确率。
-
引言在数据库管理过程中,高效、准确的数据导入是保障业务连续性的关键环节。GaussDB作为华为自主研发的企业级分布式数据库,提供了多种数据迁移工具,其中 gs_loader 以其高性能和灵活性成为大批量数据导入的首选方案。本文深入解析gs_loader的核心功能,通过实例演示其操作流程,并分享优化技巧与避坑指南。一、gs_loader工具概述1.1 工具定位gs_loader是GaussDB专用的命令行数据导入工具,专为高速批量数据加载设计。其优势体现在:多格式支持:兼容CSV、TEXT、FIXED格式,适配不同数据源。并行处理:通过多线程机制提升吞吐量,尤其适合TB级数据迁移。事务控制:支持批量提交,避免大事务导致的性能瓶颈。容错机制:可配置错误容忍阈值,确保部分数据错误不中断整体任务。1.2 适用场景初始数据迁移:从传统数据库导出文件快速入库。定期数据同步:与业务系统定时对接,更新增量数据。大数据集成:与Hadoop、Spark等系统结合,实现离线分析数据落地。二、实战:从CSV文件导入数据2.1 环境准备数据文件示例 (sales_data.csv):order_id,customer_id,amount,order_date 1001,C-2001,899.50,2023-01-15 1002,C-1983,450.00,2023-01-16目标表结构:CREATE TABLE sales ( order_id INT PRIMARY KEY, customer_id VARCHAR(20), amount DECIMAL(10,2), order_date DATE ); 2.2 执行导入命令gs_loader -h 192.168.1.100 -p 8000 -d mydb -U admin -W 'YourPassword123!' \ --table sales \ --format csv \ --fields-terminated-by ',' \ --skip-header \ --errors 100 \ --workers 4 \ /data/sales_data.csv参数解析:连接配置:-h主机、-p端口、-d数据库、-U用户、-W密码(生产环境建议使用–pwdfile隐藏密码)。数据格式:–format指定格式,–fields-terminated-by定义分隔符。文件处理:–skip-header跳过CSV标题行。容错与性能:–errors 100允许最多100行错误,–workers 4启用4个并行线程。三、高级优化技巧3.1 性能调优并行度设置:根据CPU核数调整–workers,通常设置为vCPU数的2倍。批量提交:–batch-size 50000每5万行提交一次,减少事务开销。本地模式:若数据文件在数据库服务器,使用–local避免网络传输损耗。3.2 数据转换处理日期、数值等特殊格式:--date-format 'YYYY-MM-DD' \ --decimal-separator '.' \3.3 错误排查日志分析:默认日志位于~/gs_loader.log,关注ERROR级别信息。错误文件:通过–error-table error_log将错误记录存入专用表,便于事后修复。断点续传:结合–where条件实现增量重试,例如"order_id > 1000"。四、常见问题与解决方案权限不足现象:ERROR: Permission denied for table sales解决:授予用户表权限:GRANT INSERT ON sales TO admin;字符集冲突现象:中文字符乱码解决:添加–encoding UTF8参数,确保文件与数据库编码一致。磁盘空间不足现象:导入中途终止预防:提前使用–temp-dir指定大容量临时目录。五、替代方案对比工具 适用场景 性能 复杂度gs_loader 大批量批导入 ⭐⭐⭐⭐ 中INSERT语句 小数据量插入 ⭐ 低ETL工具 复杂数据转换 ⭐⭐ 高gs_basebackup 全库物理备份 ⭐⭐⭐ 高结语掌握gs_loader的使用能显著提升GaussDB的数据摄入效率。建议结合具体业务场景调整参数,并通过监控系统资源(CPU、IO)持续优化。随着GaussDB的版本迭代,及时关注官方文档更新以获取新特性,如对ORC、Parquet等列存格式的支持。扩展阅读:《GaussDB性能调优指南》《分布式数据库数据迁移最佳实践》通过合理运用gs_loader,企业能够构建高效可靠的数据管道,为数据分析与业务决策提供坚实的数据基石。作者:hhh1218
-
一、引言随着企业数字化转型加速,数据库迁移成为IT基础设施升级的关键环节。GaussDB(华为云分布式关系型数据库)凭借其高吞吐、强一致性、弹性扩展等特性,成为政企客户替换传统数据库或升级原有 GaussDB 集群的首选目标。本文从技术角度系统化阐述 GaussDB 迁移的典型场景、核心方案及优化策略。二、迁移场景分类与技术挑战同构迁移(GaussDB → GaussDB)典型需求:版本升级(如 GaussDB 2.0 → 3.0)、集群扩容(从单节点到分布式架构)。技术挑战:元数据兼容性(如索引类型、存储引擎参数调整)。分布式事务一致性保障(跨节点数据同步)。异构迁移(MySQL/Oracle → GaussDB)典型需求:传统数据库上云、遗留系统现代化改造。技术挑战:SQL 语法差异(如窗口函数、物化视图支持差异)。数据类型映射(如 Oracle NUMBER 到 GaussDB BIGINT)。存储引擎适配(如 MySQL InnoDB 事务日志解析)。云环境迁移(本地 GaussDB → 华为云 GaussDB)典型需求:混合云架构构建、灾备体系建设。技术挑战:网络延迟敏感型数据同步。跨地域数据一致性保障(如 GDPR 合规场景)。三、核心迁移方案详解方案 1:GaussDB 数据传输服务(DTS)(1)适用场景同构/异构数据库全量迁移及增量同步。支持 GaussDB for MySQL、GaussDB for PostgreSQL 等多版本。(2)技术实现全量迁移:基于 SELECT INTO 或并行数据导出工具(如 gsql-dump)。增量同步:通过 Binlog 解析 实现实时 CDC(Change Data Capture)。配置示例:-- 创建 DTS 任务 CREATE MIGRATION TASK task1 SOURCE DBLINK 'mysql://user:pass@src_host/db' TARGET DBLINK 'gaussdb://user:pass@tgt_host/db' TABLES (source_table1, source_table2) INCLUDE_FILTER (column1 > 100); (3)优化技巧分区表迁移:按分区并行导出,提升效率。过滤策略:通过 WHERE 子句减少数据量。方案 2:ETL 工具链集成(1)适用场景复杂数据清洗、多源数据整合(如 Oracle + HDFS → GaussDB)。支持 Flink、DataStage、Kafka Connect 等工具链。(2)技术实现Flink CDC 示例:// Flink 读取 MySQL Binlog 并写入 GaussDB FlinkJdbcSink<String> sink = new FlinkJdbcSink<>( "INSERT INTO gaussdb_table (id, name) VALUES (?, ?)", new JdbcConnectionOptions.JdbcOptionsBuilder() .withUrl("jdbc:gaussdb://tgt_host:5432/db") .withUsername("user") .withPassword("pass") .build() ); (3)优化技巧批量写入:Flink 的 BatchWriter 模式减少I/O开销。数据倾斜治理:通过 KeyBy 和窗口机制均衡负载。方案 3:零停机双写方案(1)适用场景业务无感知迁移,核心系统在线切换。技术流程:双写阶段:应用同时写入源库和目标库。一致性校验:比对两库数据哈希值(如 MD5、CRC32)。-- GaussDB 哈希校验示例 SELECT md5_agg(column) FROM source_table; SELECT md5_agg(column) FROM target_table; 流量切换:通过 GSLB 或应用网关将流量切至 GaussDB。源库清理:确认无残留写入后下线源库。(3)冲突解决方案唯一键冲突:引入全局唯一ID(如 UUID)。乐观锁机制:在应用层实现版本号控制。四、关键技术保障增量同步稳定性Binlog 解析容错:捕获并重试异常事件(如 mysql-binlog-connector-fluent 的 retries 配置)。断点续传:记录同步位置(LSN 或 Checkpoint),故障恢复后继续处理。数据一致性验证全量校验:使用 GaussDB 内置工具 dbv 进行表级对比。dbv -h src_host -u user -p pass -d db_name -t target_table增量验证:对比源库与目标库的 Binlog 位置偏移量。3. 性能调优并行导入:通过 gsql 的 IMPORT 命令启用多线程:IMPORT FROM '/data/files' INTO TABLE target_table WITH THREADS 16; 资源隔离:迁移期间为 GaussDB 分配独立 CPU/内存资源。五、风险应对策略风险类型 应对方案数据丢失 - 执行全量备份 + 事务日志备份迁移前启用 GaussDB 的预写日志(WAL)业务中断 - 使用只读实例分担查询压力灰度发布流量(如 10% → 50% → 100%)性能下降 - 限制源库查询权限(如 REVOKE SELECT ON large_table FROM PUBLIC)迁移窗口期避开业务高峰六、最佳实践总结迁移测试在沙箱环境模拟生产负载(如使用 GaussDB 的 BenchmarkSQL 工具)。监控与告警部署 Huawei Cloud 的 GaussDB 监控服务,实时跟踪迁移任务状态。文档化记录迁移脚本、配置映射关系及回滚预案(如通过 Git 管理迁移代码)。七、结语GaussDB 数据库迁移需结合业务场景、数据规模和技术工具链制定精细化方案。通过合理选择全量/增量同步策略、优化数据校验机制及风险预案设计,企业可高效完成数据库升级,实现业务的平滑过渡与持续增长。作者:hhh1218
-
1、添加无效的子查询或者or 等语句;2、 cpu_index_tuple_cost 特别大3、索引被禁用了unusable;4、不能使用优化器了enable_indexscan
-
https://lab.huaweicloud.com/experimentalStudy_db-sql-operation_1746_0_1740190734875 下载gsql客户端,并解压wget https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1642684986086/GaussDB_opengauss_client_tools.zipunzip GaussDB_opengauss_client_tools.zipcd /root/GaussDB_opengauss_client_tools/Euler2.5_X86_64cp GaussDB-Kernel-V500R001C20-EULER-64bit-gsql.tar.gz /optcd /opt/tar -zxvf GaussDB-Kernel-V500R001C20-EULER-64bit-gsql.tar.gzsource gsql_env.sh使用gsql客户端连接数据库,并创建数据库及对应用户gsql -h xxx.xx.xx.x -d postgres -p 8000 -U root -W yourpassword -r数据类型CREATE TABLE int_type_t1 ( IT_COL1 TINYINT ) ;INSERT INTO int_type_t1 VALUES(10);SELECT * FROM int_type_t1;CREATE TABLE decimal_type_t1 ( DT_COL1 DECIMAL(10,4) );INSERT INTO decimal_type_t1 VALUES(123456.122331);SELECT * FROM decimal_type_t1;CREATE TABLE smallserial_type_tab(a SMALLSERIAL);INSERT INTO smallserial_type_tab VALUES(default); INSERT INTO smallserial_type_tab VALUES(default);SELECT * FROM smallserial_type_tab;CREATE TABLE float_type_t2 ( FT_COL1 INTEGER, FT_COL2 FLOAT4, FT_COL3 FLOAT8, FT_COL4 FLOAT(3), FT_COL5 BINARY_DOUBLE, FT_COL6 DECIMAL(10,4), FT_COL7 INTEGER(6,3) ) ;数据库对象 表CREATE TABLE bank_card( b_number NCHAR(30) PRIMARY KEY, b_type NCHAR(20),b_c_id INT NOT NULL);CREATE TEMPORARY TABLE bank_card2(b_number NCHAR(30) PRIMARY KEY, b_type NCHAR(20),b_c_id INT NOT NULL);ALTER TABLE bank_card RENAME TO bank_card1;ALTER TABLE bank_card1 ADD full_masks INTEGER;ALTER TABLE bank_card1 ADD CONSTRAINT ck_bank_card CHECK(b_c_id>0); ALTER TABLE bank_card1 ADD CONSTRAINT uk_bank_card UNIQUE(full_masks);ALTER TABLE bank_card1 DROP full_masks;INSERT INTO bank_card1(b_number, b_type, b_c_id) VALUES ('6222021302020000001','Credit Card', 0);DROP TABLE IF EXISTS bank_card1;视图--创建表 CREATE TABLE bank_card( b_number NCHAR(30) PRIMARY KEY, b_type NCHAR(20),b_c_id INT NOT NULL); --基于表创建视图 CREATE VIEW v_bank_card as select b_number, b_c_id from bank_card;ALTER VIEW v_bank_card RENAME TO v_bank_card_new;DROP VIEW v_bank_card_new;索引CREATE INDEX idx_b_type ON bank_card (b_type);\di idx_b_typeALTER INDEX idx_b_type RENAME TO idx_b_type_new;DROP INDEX idx_b_type_new;五 函数与操作符步骤1 字符处理函数SELECT instr( 'abcdabcdabcd', 'bcd', 2, 2 );SELECT overlay('hello' placing 'world' FROM 2 for 3 );SELECT position('ing' in 'string');SELECT substring_inner('adcde', 2,3);SELECT replace('abcdefabcdef', 'cd', 'XXX');SELECT substring('Thomas' FROM 2 for 3); --删除表client DROP TABLE IF EXISTS client; --创建表client CREATE TABLE client ( c_id INT PRIMARY KEY, c_name NVARCHAR2(100) NOT NULL, c_mail NCHAR(30) UNIQUE, c_id_card NCHAR(20) UNIQUE NOT NULL, c_phone NCHAR(20) UNIQUE NOT NULL, c_password NCHAR(20) NOT NULL );--启动数据库后执行 gsql -h xxx.xxx.xxx.xxx -U root -d postgres -p 8000 -r\i client.sql \i bank_card.sql \i insurance.sql
-
问题章节问题描述回复上课老师GaussDB软件体系架构1. 集中式部署的时候主节点可读可写,备节点可读?是的徐宜良GaussDB软件体系架构2. PG_CLOG占用磁盘空间太大,怎么清理?怎么设置最大占用磁盘空间大小?clog非常的小,一个字节可以保存4个事务的状态,一个page可以存放32768个事务状态,有vacuum后台定时清理不需要的clog文件。不需要手工设置。徐宜良GaussDB软件体系架构3. 线程在GaussDB上怎么查看?查询pg_stat_activity视图徐宜良GaussDB软件体系架构4. 如果无锁,在高并发下怎么保证一致性?通过原子操作方式徐宜良GaussDB软件体系架构5. 为什么paxos复制效率比较高?而且在PPT没有看到他复制原理,也是基于多数派?是多数派,paxos允许并行处理,高并发时性能更好徐宜良GaussDB软件体系架构6. CN存储业务数据么?不保存徐宜良GaussDB软件体系架构7. templatem在哪个版本有的?505.1徐宜良GaussDB软件体系架构8. Paxos和quorum如何选择?推荐用哪个?新版本推荐使用paxos徐宜良GaussDB软件体系架构9. HCCDE-GaussDB基于哪个版本内核?505.1徐宜良GaussDB软件体系架构10. ALT如何实现应用SQL在故障后转发到新节点执行?在jdbc驱动里会自动判断新主,自动连接到新主执行sql徐宜良GaussDB软件体系架构11. ustore应该存在数据库默认限制?新版本中默认的存储引擎是ustore徐宜良GaussDB软件体系架构12. pg内存划分本地内存和共享内存,和GaussDB内存划分有什么关系?两者原理类似徐宜良GaussDB软件体系架构13. 不同数据压缩率是算法差异一起的么,还是可以参数控制?考虑性能和压缩比的平衡,不同类型的数据会采用不同的压缩算法。不同数据会自动采用不同的压缩算法,不需要参数控制。徐宜良GaussDB数据库规划设计10. HCS下发集中式或分布式实例是通过参数控制吗?是在部署的时候配置的吗?不是参数控制,在部署时候选好,就不能改。敖宏伟GaussDB数据库规划设计11. dorado双集群RPO=0,中间第二步有个增量日志存储同步复制,意思是需要等备集群redo日志也落盘后,主集群事务才提交吗?是的,要等备机群的日志同步过去,才会提交敖宏伟GaussDB数据库规划设计12. dorado双集群RPO=0,中间第二步有个增量日志存储同步复制,意思是需要等备集群redo日志也落盘后,主集群事务才提交吗?是的,要等备机群的日志同步过去,才会提交敖宏伟GaussDB数据库规划设计13. 集中式里面有单机版,主备版,一主一备一日志版;分布式里面有独立部署,混合部署,分别应该怎么推荐选型?这个在课程上讲了。集中式里,单机主要用于测试环境或低成本容灾站点部署。一主一备一日志,主要用于有ECS的HCS标准形态,日志节点可以节省一个副本,但是牺牲了一主两备的备机读特性。分布式,主推混部,独立部署在HCS不会使用,成本太大,性能提升不是很明显,目前只有公有云在使用,属于存量运维。敖宏伟GaussDB数据库规划设计14.云底座实际只能构建两个物理机房,请问如何保证一主两备集群在物理机房下RPO=0?云底座的业务AZ最多可以扩容到64个,他的管理面只能构建在两个物理机房。GaussDB单集群拉远部署,主要是业务az的拉远,目前要求拉远到三个逻az或物理az。如果业务az实际上只有两个物理机房,可以在其中一个机房再逻辑隔离出一个。RPO=0,是靠paxos协议保证,比如4副本,az1有两副本,az2两副本,az3部署etcd。一个sql落盘,必须多数派落盘,4副本多数派就i是3,这样保证 az1,az2都至少有一份最新数据,来实现机房级故障,数据不丢。敖宏伟GaussDB数据库规划设计金融案例3.银行有没有用公有云GaussDB的场景?一般哪些业务推荐用公有云?国内银行没有公有云,银监会不允许。郭凤鸣GaussDB数据库内核原理-SQL引擎4.如果是项目上遇到这种大量不支持下推的语法,应当如何改造。拆SQL周兆琦GaussDB数据库内核原理-SQL引擎5.多列统计信息是不是只能手动做?不是, 可以自动收集。周兆琦GaussDB数据库内核原理-SQL引擎6.如果历史上执行计划很好,然后变坏了,使用sql patch可以将执行计划指定回原来好的计划么?可以。周兆琦GaussDB数据库内核原理-SQL引擎7.没有创建位图索引,为什么会走位图索引?需要位图索引。周兆琦GaussDB数据库内核原理-SQL引擎8.GaussDB里bitmapscan和indexscan有什么区别,优化器怎么选择? 基于选择率。周兆琦GaussDB安全管理1.异常访问检测现在是做到什么程度了呢?能检查哪些异常,内核做的还是管控?当前异常访问检测通过dbmind实现,支持的异常检测类型很多,例如CPU使用率异常、内存异常、IO异常等,其中异常访问检测主要包括暴力破解、扫描攻击、越权检测。dbmind功能不内核里,是单独部署在管控面。李建峰GaussDB安全管理2.同名schema的owner可以修改为其他用户吗?修改了owner之后,原先创建的对象相关的权限会有变化吗?可以修改,修改之后对原对象没有影响,在模式下新创建的owner为当前用户了。李建峰GaussDB安全管理3.关于行级访问控制,行级控制管理员可以看到所有数据吗?没有行级控制管理员,表的属主或系统管理员可以创建行级控制策略。系统管理员是不受行级访问策略影响。李建峰GaussDB安全管理6.关于透明加密密钥管理,秘钥轮转怎么控制的,是定时任务吗?需要用户手动触发密钥轮转。用户可以通过创建定时任务实现定时轮转。李建峰
-
停止GaussDB节点操作场景GaussDB支持对节点进行手动停止操作,此功能会停止节点上所有数据库的组件进程,不会直接关闭节点所在虚拟机/物理机。约束限制停止节点可能会降低集群承受风险的能力,请谨慎操作。停止节点操作与规格变更、备份、重置密码、重启实例、删除实例等互斥,即执行停止节点时无法执行备份恢复等操作,备份恢复等操作时也无法执行停止节点操作。停止节点前会关闭节点的HA,直到执行启动节点或者手动打开HA。关闭HA后,节点的状态将不会被监控。当停止的节点中包含大于或等于对应DN分片1/2副本数时,可能导致实例异常以及单个节点启动失败。停止节点后,节点仍然能够在后台登录,但是所有数据库相关操作都无法执行。分布式实例需要保证至少有一个CN节点正常,否则会导致实例业务不可用。停止节点后,无法修改实例参数。停止节点时间过长会触发告警,可以选择启动GaussDB节点恢复实例。停止节点后,所有资源正常计费。操作步骤登录管理控制台。单击管理控制台左上角,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,选择指定的实例,单击实例的名称,进入“基本信息”页面。在“节点列表”模块,单击“操作”列的“停止节点”。图1 停止节点在“停止节点”弹框中,输入“stop”,单击“确定”,停止节点。稍后刷新实例,查看停止结果。如果节点状态为“已停止”,说明节点停止成功。
-
在数字化转型的浪潮中,数据库作为企业数据管理的核心,扮演着至关重要的角色。随着业务规模的扩大和数据量的激增,数据库运维的复杂性也随之增加。传统运维方法在确保数据高可用性、系统稳定性、性能优化及故障快速响应方面,面临着诸多挑战,往往需要投入大量人力和时间成本,且效果依赖于运维人员的个人经验和直觉。在此背景下,智能运维技术,特别是基于大模型的解决方案,为数据库运维带来了新的突破。GaussDB AI大模型能够对数据库的运行状态进行实时监控和智能分析,识别出异常状态并检测可能的故障点,克服传统运维中依赖人工经验、响应速度慢、效率低下等问题,帮助企业更好地应对日益增长的数据挑战,确保业务的连续性和数据的安全性,为数字化转型提供坚实支撑。一、GaussDB AI大模型整体设计思路大语言模型(LLM,Large Language Model)是基于海量的通用语料进行数据训练而成的超深度学习神经网络,包含数十亿甚乃至更多参数,模型规模可以达到数百GB甚至更大,通过对大规模数据集进行训练,展现出强大的表达和学习能力。大语言模型在数据库运维领域的应用,具有对运维知识理解、分析流程编排以及工具调用的能力及优势。GaussDB基于盘古大模型构建数据库从咨询、开发、优化、运维等阶段的各种AI应用,如图1所示。图1 GaussDB AI能力整体方案在咨询阶段,通过LLM与知识库的结合,构建了数据库垂域的专业知识问答系统。在运维阶段,利用大模型智能体的计划、编排、工具执行能力,实现了自动故障根因分析和定位。下面我们将围绕GaussDB智能问答和运维智能体能力展开介绍。二、GaussDB 智能问答和运维智能体GaussDB智能问答随着数据库产品的功能增强,技术能力的加深,不仅拓展了技术资料的广度和深度,相应地提高了学习成本,也提升了对数据库用户(DBA、开发人员、运维人员)使用数据库的门槛。GaussDB基于RAG(Retrieval-Augmented Generation,检索增强生成)和LLM技术构建的智能知识问答能力,通过整合产品文档、社区资料、使用手册和运维手册等私域资料,运用自然语言处理和知识检索技术,GaussDB智能问答助手能理解并解答用户关于GaussDB的各类问题,帮助用户快速找到解决方案,在安装配置、性能优化、操作使用以及故障排查方面,提供精确有效、交互式的回答。在技术实现上,RAG框架通过结合传统的信息检索方法与先进的生成模型,在用户提问时,先从私域部署的知识库中检索相关资料,再通过LLM生成流畅、准确的回答。这种设计既结合了LLM的通用性、灵活性以及对用户意图的理解力,又能将知识库作为大模型的“外脑”,解决了LLM存在的幻觉、信息过时、可解释性不足、专业知识缺乏的问题,确保用户获得的信息既准确又符合实际的操作需求。图2 GaussDB智能问答流程GaussDB智能问答主要关键特性如下:文档知识提取通过NLP(Natural Language Processing,自然语言处理)技术构建一系列文档处理工具,针对Markdown数据进行分块切分,以实现高效的知识管理。此外,还支持用户文档处理成向量知识以及文本知识。知识召回当用户提出问题时,智能问答系统首先会进行向量检索以及文本检索,在向量检索环节,使用一个重排模型对召回的结果进行排序,来确保与用户问题语义最为相关的知识,汇总到大模型后完成总结输出。数据库领域知识微调从技术文档、开发文档构建GaussDB专用语料库,并对底座LLM进行SFT微调训练,实现对GaussDB专有名词和场景的知识注入。为了避免训练过程中模型的遗忘,也适量加入通用语料知识进行混合训练微调,可以提高模型在回答数据库专业的准确率。GaussDB运维智能体在运维阶段,我们同样积极探索将已有的智能运维工具以及当前的大模型技术相结合,建立更加智能化、自治化的数据库故障分析与自愈框架。图3 GaussDB故障运维智能体如图3所示,GaussDB当前的故障运维智能体框架,主要依托大模型的多步对话、规划、反思以及工具调用的能力,形成能够自治并完成复杂故障分析任务的智能体应用。GaussDB以LLM为决策大脑,按照案例知识召回、故障分析计划编排、故障分析执行、故障根因总结等步骤,结合运维工具集进行工作,其工作流程如图4所示。图4 故障运维智能体工作流程工具能力构建GaussDB当前通过AI算法构建了系列异常检测、慢SQL诊断、集群故障根因诊断等关键运维能力。通过restful/Dubbo 接口与智能体无缝对接,确保了高效的数据交互与调用。通过构建运维工具API集合,在智能体分析故障流程中,实现不同故障运维场景下大模型能够调用合适的工具。运维案例记忆通过资深运维专家总结标准作业流程SOP,记录特定故障场景下需要检测的事项信息步骤以及故障判断准则,为智能体引入专家经验,构建故障运维案例库。此部分知识可以储存在数据库当中,留待智能体检索使用,而且在实践过程中,会对现网运维常见的CPU使用率、长事务、集群状态等TOP场景优先进行了支持。故障分析计划编排根据故障现象,通过相似度搜索,故障智能体在运维案例记忆中召回相关运维案例,组装成提示词,输入到大模型进行分析流程编排。对于不在预设TOP场景的故障类型,则通过大模型会根据现有案例以及运维知识,推理生成规划,形成对未知故障的学习能力。故障分析执行在计划编排步骤得到的故障分析计划下,重新组装提示词输入到大模型进行工具调用执行的任务,可以利用LLM的工具调用Function call能力,从工具集当中选择各个步骤的所需的工具参数,以及对应的工具接口API,生成的结果可以通过restful/Dubbo等接口协议进行执行,并且获取接口调用结果。对于需要多步执行的流程,上一步接口调用的结果,有可能需要拼接到LLM的下一步输入。故障定位总结与报告生成经过完整的计划编排以及分析执行后,这些步骤的结果将会汇总输入到LLM输出根因定位总结报告。在用户界面上,展示完整的分析流程以及对应的根因定位总结报告。通过以上流程,运维智能体可以减少运维人员分析故障的复杂度,节省故障定位时间,同时能够直观展示分析流程以及总结报告。三、总结与展望本文介绍了GaussDB AI大模型技术在数据库运维的前沿技术探索与创新实践。通过利用大模型的编排与运维知识理解能力,结合数据库现有的运维工具,构建了知识问答、故障分析定位等一系列智能化应用。同时,在实践过程中,也认识到单纯依赖大模型自身的知识进行复杂问题解决是不现实的。因此,通过引入知识库以及运维案例专家知识,可以更好地引导大模型生成符合事实的准确答案。综上,GaussDB在AI大模型技术的加持下,通过整合内外部知识、优化运维工具与增强数据库管理能力,构建了一个高效、智能、全面的数据库运维体系,为数据库运维的未来开辟了新的道路。
-
GaussDB密码策略与账户锁定目录:修改密码密码策略GUC参数修改密码策略锁定用户自动锁定手动锁定修改密码普通用户修改自己的登录口令需要知道旧密码:ALTER USER joe IDENTIFIED BY 'newpassword' REPLACE 'oldpassword';管理员可以直接修改普通用户登录口令:ALTER USER joe IDENTIFIED BY 'password';如果用户口令中包含$等特殊字符,在终端中登录时需要带上单引号。gsql -p5432 -d tpcc -Ujoe -W'Huawei00#$abc'密码策略GUC参数与密码策略相关的GUC参数主要有如下:查看密码策略参数:gaussdb=# show password_policy; password_policy ----------------- 1 (1 row) gaussdb=# show password_min_length; password_min_length --------------------- 8 (1 row) gaussdb=# show password_min_uppercase; password_min_uppercase ------------------------ 0 (1 row) gaussdb=# show password_min_digital; password_min_digital ---------------------- 0 (1 row) gaussdb=# show password_min_special; password_min_special ---------------------- 0 (1 row) gaussdb=# show password_effect_time; password_effect_time ---------------------- 0 (1 row) gaussdb=# show password_reuse_time; password_reuse_time --------------------- 0 (1 row) gaussdb=# show password_encryption_type; password_encryption_type -------------------------- 2 (1 row) gaussdb=# show password_lock_time; password_lock_time -------------------- 1d (1 row) gaussdb=# show failed_login_attempts; failed_login_attempts ----------------------- 10 (1 row)修改密码策略方法一:通过DWS管理控制台图形界面修改GaussDB管理控制台 => 集群管理 => 集群详情 => 参数修改 => 参数列表方法二:使用gs_guc命令修改gs_guc reload -N all -I all -c "password_policy=1" gs_guc reload -N all -I all -c "password_encryption_type=2" gs_guc reload -N all -I all -c "password_min_length=8" gs_guc reload -N all -I all -c "password_min_uppercase=1" gs_guc reload -N all -I all -c "password_min_digital=1" gs_guc reload -N all -I all -c "password_min_special=1" gs_guc reload -N all -I all -c "password_effect_time=60" gs_guc reload -N all -I all -c "password_reuse_time=90" gs_guc reload -N all -I all -c "password_lock_time=1" gs_guc reload -N all -I all -c "failed_login_attempts=10"修改后无需重启实例即可生效。锁定用户自动锁定为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。手动锁定若管理员发现某帐户被盗、非法访问等异常情况,可手动锁定该帐户。alter user joe account lock;1当管理员认为帐户恢复正常后,可手动解锁该帐户。alter user joe account unlock;查看账户是否被锁定以及被锁定的日期:select username,account_status,lock_date,expiry_date, created,last_login,password_versions,authentication_type from adm_users;系统视图adm_users中的字段含义:account_status:NULL表示该用户是拥有最高权限的初始系统管理员(rdsAdmin),0表示用户状态正常,1表示该用户由于登录失败次数超过阈值被锁定了一段时间,2表示该用户被管理员锁定。lock_date:默认显示用户的创建日期(即created字段的值)。如果该用户被锁定过则显示账户被锁定的日期。初始系统管理员该字段为NULL。当用户帐号被锁定时,尝试登录到数据库会收到下面的报错:gsql: ERROR: The account has been locked.References【1】https://support.huaweicloud.com/intl/zh-cn/devg-910-dws/dws_04_0063.html【2】https://docs.mogdb.io/zh/mogdb/v5.0/2-managing-users-and-their-permissions#设置安全策略原文链接:https://blog.csdn.net/Sebastien23/article/details/145503378
-
前提条件满足,但是趋势看板不显示任何东西白名单参数趋势看板不显示任务东西
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签