尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Apache Doris DBA 应该掌握的 100 条命令(建议收藏)
Apache Doris 是一款面向实时分析场景的 MPP 数据库。它由 FE、BE 等组件组成数据按照分区、分桶、Tablet 和 Replica 分布在不同节点上。Doris 出现问题时不能只看一条 SQL 是否走索引还要检查 FE 元数据、BE 存活状态、Tablet 副本、Compaction、导入任务和磁盘容量。下面整理了 Apache Doris DBA 日常使用频率较高的 100 条命令覆盖连接、集群节点、数据库对象、分区分桶、Tablet、副本、会话、SQL 性能、数据导入、Compaction、用户权限、备份恢复和服务日志等场景。本文主要面向当前主流 Apache Doris 版本。不同版本的系统表、HTTP API 和命令参数可能存在差异执行前应先确认版本和账号权限。文中的 IP、端口、数据库、表、用户和目录均为示例。涉及节点下线、终止查询、取消任务、删除分区、触发 Compaction、恢复备份和修改配置等操作时应先确认影响范围。一、连接与基础信息1. 使用 MySQL 客户端连接 Dorismysql -h 192.168.1.10 -P 9030 -u root -p9030 是 FE 默认 MySQL 协议端口实际端口以fe.conf为准。2. 查看 Doris 版本SELECT VERSION();3. 查看当前数据库SELECT DATABASE();4. 查看当前用户SELECT CURRENT_USER();5. 查看当前时间SELECT NOW(), CURRENT_TIMESTAMP();6. 查看前端节点SHOW FRONTENDS;重点关注Role、IsMaster、Alive、ReplayedJournalId和LastHeartbeat。7. 查看后端节点SHOW BACKENDS;重点关注Alive、SystemDecommissioned、TabletNum、磁盘使用率和心跳时间。8. 查看 BrokerSHOW BROKER;只有使用 Broker Load 或相关外部存储功能时才会配置 Broker。9. 查看 FE 配置SHOW FRONTEND CONFIG;10. 查看 BE 配置SHOW BACKEND CONFIG;二、数据库、表与对象11. 查看所有数据库SHOW DATABASES;12. 创建数据库CREATE DATABASE appdb;13. 切换数据库USE appdb;14. 查看所有表SHOW TABLES FROM appdb;15. 查看表结构DESC appdb.orders;16. 查看完整建表语句SHOW CREATE TABLE appdb.orders;17. 查看表状态SHOW TABLE STATUS FROM appdb;18. 查看视图SHOW FULL TABLES FROM appdb WHERE Table_type VIEW;19. 查看物化视图SHOW MATERIALIZED VIEWS FROM appdb;20. 删除表DROP TABLE appdb.orders_old;删除前应确认回收站保留策略和备份状态。三、表模型、分区与分桶21. 创建 Duplicate Key 表CREATE TABLE appdb.events ( event_date DATE, user_id BIGINT, event_type VARCHAR(50), event_time DATETIME ) DUPLICATE KEY(event_date, user_id) PARTITION BY RANGE(event_date)() DISTRIBUTED BY HASH(user_id) BUCKETS 16 PROPERTIES(replication_num 3);22. 创建 Unique Key 表CREATE TABLE appdb.users ( user_id BIGINT, user_name VARCHAR(100), update_time DATETIME ) UNIQUE KEY(user_id) DISTRIBUTED BY HASH(user_id) BUCKETS 16 PROPERTIES(replication_num 3);23. 创建 Aggregate Key 表CREATE TABLE appdb.sales_summary ( sale_date DATE, region_id INT, amount_sum DECIMAL(18,2) SUM ) AGGREGATE KEY(sale_date, region_id) DISTRIBUTED BY HASH(region_id) BUCKETS 16 PROPERTIES(replication_num 3);24. 查看表分区SHOW PARTITIONS FROM appdb.events;25. 增加分区ALTER TABLE appdb.events ADD PARTITION p202607 VALUES [(2026-07-01), (2026-08-01)) DISTRIBUTED BY HASH(user_id) BUCKETS 16;26. 删除分区ALTER TABLE appdb.events DROP PARTITION p202601;删除分区会删除其中的数据应先确认数据保留要求。27. 查看动态分区属性SHOW DYNAMIC PARTITION TABLES FROM appdb;28. 修改副本数量ALTER TABLE appdb.events MODIFY PARTITION p202607 SET (replication_num 3);29. 查看数据分布SHOW DATA FROM appdb.events;30. 查看数据库总体数据量SHOW DATA FROM appdb;四、Tablet 与副本31. 查看表 TabletSHOW TABLETS FROM appdb.events;32. 查看指定 TabletSHOW TABLET 10001;33. 通过 PROC 查看 TabletSHOW PROC /dbs;先逐层查看数据库、表、分区和索引 ID再进入 Tablet 路径。34. 查看所有 BESHOW PROC /backends;35. 查看前端节点状态SHOW PROC /frontends;36. 查看 Tablet 调度任务SHOW PROC /cluster_balance;具体 PROC 路径可能随版本变化可从SHOW PROC /逐层查看。37. 查看坏副本SHOW PROC /statistic;重点关注不健康 Tablet 和副本统计。38. 查看副本状态ADMIN SHOW REPLICA STATUS FROM appdb.events;39. 标记副本状态ADMIN SET REPLICA STATUS PROPERTIES ( tablet_id 10001, backend_id 10002, status bad );该操作风险较高只应在明确副本异常并按官方恢复流程处理时执行。40. 查看 Tablet 调度状态SHOW TABLET FROM appdb.events;不同版本可能推荐使用SHOW TABLETS应以当前版本帮助为准。五、会话、查询与执行计划41. 查看当前连接SHOW PROCESSLIST;42. 查看完整 SQLSHOW FULL PROCESSLIST;43. 终止连接KILL CONNECTION 12345;44. 终止查询KILL QUERY 12345;45. 查看执行计划EXPLAIN SELECT * FROM appdb.events WHERE event_date 2026-07-27;46. 查看详细执行计划EXPLAIN VERBOSE SELECT * FROM appdb.events WHERE event_date 2026-07-27;47. 查看运行时 ProfileSHOW QUERY PROFILE /;根据返回的 Query ID 继续查看指定 Profile。48. 查看指定查询 ProfileSHOW QUERY PROFILE /query_id;Profile 语法和启用方式可能随版本变化应结合当前版本文档。49. 查看查询审计日志SELECT * FROM information_schema.active_queries ORDER BY query_start_time DESC;系统表是否存在以及字段名称取决于版本。50. 查看会话变量SHOW VARIABLES;六、数据导入与任务51. 使用 Stream Load 导入 CSVcurl --location-trusted \ -u loader:password \ -H label:orders_20260727 \ -H column_separator:, \ -T orders.csv \ http://fe-host:8030/api/appdb/orders/_stream_load生产环境不要在文章或脚本中保留真实密码。52. 查看 Load 任务SHOW LOAD FROM appdb;53. 查看指定 Label 的 LoadSHOW LOAD FROM appdb WHERE LABEL orders_20260727;54. 取消 LoadCANCEL LOAD FROM appdb WHERE LABEL orders_20260727;55. 创建 Routine LoadCREATE ROUTINE LOAD appdb.kafka_orders ON orders COLUMNS TERMINATED BY , PROPERTIES ( desired_concurrent_number 3, max_batch_interval 10 ) FROM KAFKA ( kafka_broker_list kafka1:9092,kafka2:9092, kafka_topic orders );56. 查看 Routine LoadSHOW ROUTINE LOAD FOR appdb.kafka_orders;57. 暂停 Routine LoadPAUSE ROUTINE LOAD FOR appdb.kafka_orders;58. 恢复 Routine LoadRESUME ROUTINE LOAD FOR appdb.kafka_orders;59. 停止 Routine LoadSTOP ROUTINE LOAD FOR appdb.kafka_orders;停止后不能直接恢复需要重新创建任务。60. 查看 Export 任务SHOW EXPORT FROM appdb;七、Compaction、事务与统计信息61. 查看事务SHOW TRANSACTION FROM appdb;62. 查看 Compaction 状态curl -sS \ http://be-host:8040/api/compaction/show?tablet_id1000163. 手工触发 Cumulative Compactioncurl -X POST \ http://be-host:8040/api/compaction/run?tablet_id10001compact_typecumulative64. 手工触发 Base Compactioncurl -X POST \ http://be-host:8040/api/compaction/run?tablet_id10001compact_typebase手工 Compaction 会消耗 I/O 和 CPU不应作为日常定时操作。65. 查看 BE Compaction 配置SHOW BACKEND CONFIG LIKE %compaction%;66. 查看表统计信息SHOW TABLE STATS appdb.orders;67. 收集表统计信息ANALYZE TABLE appdb.orders;68. 查看分析任务SHOW ANALYZE;69. 查看列统计信息SHOW COLUMN STATS appdb.orders;70. 修改会话查询超时SET query_timeout 300;八、配置、用户与权限71. 动态修改 FE 配置ADMIN SET FRONTEND CONFIG (dynamic_partition_enable true);只有SHOW FRONTEND CONFIG中IsMutabletrue的参数才能动态修改。72. 动态修改 BE 配置ADMIN SET BACKEND CONFIG (disable_auto_compaction false);应根据当前版本支持的配置项执行。73. 查看用户SHOW ALL GRANTS;74. 创建用户CREATE USER appuser% IDENTIFIED BY Replace_With_Strong_Password;75. 修改用户密码SET PASSWORD FOR appuser% PASSWORD(Replace_With_New_Strong_Password);76. 创建角色CREATE ROLE readonly_role;77. 授予只读权限GRANT SELECT_PRIV ON appdb.* TO ROLE readonly_role;78. 将角色授予用户GRANT readonly_role TO appuser%;79. 查看用户授权SHOW GRANTS FOR appuser%;80. 回收权限REVOKE SELECT_PRIV ON appdb.* FROM ROLE readonly_role;九、备份、恢复与节点管理81. 创建备份仓库CREATE REPOSITORY backup_repo WITH S3 ON LOCATION s3://bucket/doris-backup PROPERTIES ( AWS_ENDPOINT s3.example.com, AWS_REGION us-east-1, AWS_ACCESS_KEY access_key, AWS_SECRET_KEY secret_key );凭据应通过安全方式管理不能直接保存在公开脚本中。82. 查看备份仓库SHOW REPOSITORIES;83. 备份数据库BACKUP SNAPSHOT appdb.snapshot_20260727 TO backup_repo PROPERTIES(type full);84. 查看备份任务SHOW BACKUP FROM appdb;85. 查看仓库中的快照SHOW SNAPSHOT ON backup_repo;86. 恢复快照RESTORE SNAPSHOT appdb.snapshot_20260727 FROM backup_repo ON (orders) PROPERTIES(backup_timestamp 2026-07-27-10-00-00);时间戳应以SHOW SNAPSHOT返回值为准。87. 查看恢复任务SHOW RESTORE FROM appdb;88. 添加 BEALTER SYSTEM ADD BACKEND 192.168.1.21:9050;89. 下线 BEALTER SYSTEM DECOMMISSION BACKEND 192.168.1.21:9050;应等待数据迁移完成后再删除节点。90. 添加 Follower FEALTER SYSTEM ADD FOLLOWER 192.168.1.12:9010;十、服务、日志与巡检91. 启动 FEbin/start_fe.sh --daemon92. 停止 FEbin/stop_fe.sh93. 启动 BEbin/start_be.sh --daemon94. 停止 BEbin/stop_be.sh95. 查看 FE 日志tail -200 log/fe.log tail -200 log/fe.warn.log96. 查看 BE 日志tail -200 log/be.INFO tail -200 log/be.WARNING97. 查看进程ps -ef | grep -E [P]aloFe|[d]oris_be98. 查看磁盘和 I/Odf -h df -i iostat -x 1 599. 查看 FE 和 BE HTTP 健康状态curl -sS http://fe-host:8030/api/bootstrap curl -sS http://be-host:8040/api/health接口和鉴权要求可能随版本变化。100. 执行集群快速巡检SHOW FRONTENDS; SHOW BACKENDS; SHOW BROKER; SHOW LOAD; SHOW ROUTINE LOAD; SHOW TRANSACTION; SHOW BACKUP; SHOW RESTORE;正式巡检还应检查 Tablet 副本、数据倾斜、Compaction、磁盘空间、FE/BE 日志和操作系统资源。结语Doris 的很多问题最终都会落到四个对象上FE、BE、Tablet 和任务。FE 负责元数据和调度BE 负责数据存储和执行Tablet 决定数据分布和副本状态Load、Compaction、Schema Change、Backup 等任务则直接影响集群资源。排查时建议先确认 FE/BE 是否存活再检查磁盘、Tablet、副本和任务最后分析 SQL Profile。不要看到查询慢就立即调整并发或手工触发 Compaction也不要在副本异常时直接删除 BE。官方资料Apache Doris 官方文档https://doris.apache.org/docs/FE 配置https://doris.apache.org/docs/admin-manual/config/fe-config/管理手册https://doris.apache.org/docs/admin-manual/
RELATED

相关推荐

AssetRipper:Unity资源逆向工程与游戏资产提取全解析

AssetRipper:Unity资源逆向工程与游戏资产提取全解析

1. 项目概述:为什么我们需要AssetRipper?如果你曾经对某个Unity游戏里的精美模型、独特音效或者炫酷的UI素材动过心,想拆开看看,或者用于自己的学习、研究,那你大概率遇到过“资源提取”这个难题。Unity引擎打包后的资…

📅 2026/8/24 20:06:56
猫抓浏览器扩展:轻松嗅探下载网页视频的智能助手

猫抓浏览器扩展:轻松嗅探下载网页视频的智能助手

猫抓浏览器扩展:轻松嗅探下载网页视频的智能助手 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓是一款功能强大的浏览器资源嗅探扩…

📅 2026/9/20 23:03:04
《植物大战僵尸融合版V3.8》深度解析:社区二创如何重塑经典游戏生态

《植物大战僵尸融合版V3.8》深度解析:社区二创如何重塑经典游戏生态

上周,一个朋友神秘兮兮地发来一张截图,问我:“你看这个‘融合版’,是不是我小时候玩的那个《植物大战僵尸》?” 截图里,向日葵戴上了墨镜,豌豆射手吐着寒冰和火焰,僵尸阵容里混进了些…

📅 2026/8/24 20:06:56
MORE NEWS

更多资讯

📰

PHP版本切换后怎么清理缓存

前言切换 PHP 版本是一个"看起来只需点一下面板按钮"的操作:在 PhpStudy 或宝塔里把站点的 PHP 从 7.4 换成 8.2,等几秒,刷新页面。麻烦的是刷新之后出现的现象往往和 PHP 本身没关系——改了代码不生效、页面显示的还是上一版内容…

📰

AI Agent Harness Engineering深度详解:核心概念、架构原理、实战落地与工程化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

PHP版本太高导致后台加载慢怎么办

前言常见场景:服务器把 PHP 从 7.2 或 7.4 升到 8.2 / 8.3 之后,前台页面感觉还行,后台管理界面却明显变慢——点一个列表页要转三四秒,偶发 502,top 一看 CPU 不高、内存不高,就是慢。开发同学的第一反应往…

📰

PHP的array_slice函数截取数组时偏移量怎么计算才准确

前言array_slice() 大概是「看一眼就会、用起来就错」的典型函数。它只有四个参数,但每一个都有正负号、每一个都有边界情况,叠在一起就成了一个小型的状态机。你很可能遇到过下面这些现象:分页列表第一页少了第一条,或者第二页重…

📰

PHP的array_walk函数修改原数组值为什么没生效

前言最典型的症状长这样:写了一段 array_walk() 给数组里每个价格乘以 2,print_r() 出来发现原数组一点没变;有人为了拿到"处理后的数组",习惯性写成 $result array_walk($arr, ...),结果 $result 变成了 t…

📰

GB2312/GBK字库寻址实战:从编码到字模的完整解析

做嵌入式显示这行,谁还没被中文乱码折磨过几回。我之前调一块LCD屏,客户报障说“你好世界”四个字显示出来前三个正常,最后一个“界”字却成了乱码。常规操作先重刷字库,无效;怀疑屏幕坏了,换屏还是无效。最…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬