[TOC] #### 7.1.2.1 ADMIN CANCEL REPAIR **说明** `ADMIN CANCEL REPAIR TABLE table_name[ PARTITION (p1,...)];` 该语句用于取消以高优先级模式来修复指定表或分区,系统仍会以默认调度方式来修复副本。 <br> **示例** 取消以高优先级模式修复表 tbl 的分区 p1。 `ADMIN CANCEL REPAIR TABLE tbl PARTITION(p1);` #### 7.1.2.2 ADMIN CHECK TABLET **说明** 该语句用于对一组 tablet 执行指定的检查操作。 `ADMIN CHECK TABLE (tablet_id1, tablet_id2, ...) PROPERTIES("type" = "...");` * 必须指定 tablet id 列表以及 PROPERTIES 中的 type 属性。 * 目前 type 仅支持: * consistency: 对 tablet 的副本数据进行一致性检查。该命令为异步命令,发送后,DorisDB 会开始执行对应 tablet 的一致性检查作业。最终的结果将体现在 SHOW PROC "/statistic"; 结果中的 InconsistentTabletNum 列。 **示例** `ADMIN CHECK TABLET (10000, 10001) PROPERTIES("type" = "consistency");` #### 7.1.2.3 ADMIN REPAIR **说明** 该语句用于尝试优先修复指定的表或分区。 `ADMIN REPAIR TABLE table_name[ PARTITION (p1,...)]` 该语句仅表示让系统尝试以高优先级修复指定表或分区的分片副本,并不保证能够修复成功。用户可以通过 ADMIN SHOW REPLICA STATUS 命令查看修复情况。 <br> 默认的 timeout 是 14400 秒(4小时)。超时意味着系统将不再以高优先级模式修复指定表或分区的分片副本。重新使用该命令可恢复高优先级模式。 <br> **示例** * 尝试修复指定表 `ADMIN REPAIR TABLE tbl1;` * 尝试修复指定分区 `ADMIN REPAIR TABLE tbl1 PARTITION (p1, p2);` <br> #### 7.1.2.4 ADMIN SET CONFIG **说明** `ADMIN SET FRONTEND CONFIG ("key" = "value");` 该语句用于设置集群的配置项(当前仅支持设置FE的配置项)。 设置的配置项可通过 ADMIN SHOW FRONTEND CONFIG; 命令查看。 <br> **示例** * 设置 'disable\_balance' 为 true `ADMIN SET FRONTEND CONFIG ("disable_balance" = "true");` #### 7.1.2.5 ADMIN SET REPLICA STATUS **说明** 该语句用于设置指定副本的状态。 该命令目前仅用于手动将某些副本状态设置为 BAD 或 OK,从而使得系统能够自动修复这些副本。 `ADMIN SET REPLICA STATUS PROPERTIES ("key" = "value", ...);` 目前支持如下属性: * "tablet\_id":必需。指定一个 Tablet Id. * "backend\_id":必需。指定 Backend Id. * "status":必需。指定状态。当前仅支持 "bad" 或 "ok" 如果指定的副本不存在,或状态已经是 bad,则会被忽略。 > 注:设置为 Bad 状态的副本可能立刻被删除,请谨慎操作。 **示例** * 设置 tablet 10003 在 BE 10001 上的副本状态为 bad。 `ADMIN SET REPLICA STATUS PROPERTIES("tablet_id" = "10003", "backend_id" = "10001", "status" = "bad");` * 设置 tablet 10003 在 BE 10001 上的副本状态为 ok。 `ADMIN SET REPLICA STATUS PROPERTIES("tablet_id" = "10003", "backend_id" = "10001", "status" = "ok");` #### 7.1.2.6 ADMIN SHOW CONFIG **说明** 该语句用于展示当前集群的配置(当前仅支持展示 FE 的配置项)。 `ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];` 结果中的各列含义如下: * (1) Key:        配置项名称 * (2) Value:      配置项值 * (3) Type:       配置项类型 * (4) IsMutable:  是否可以通过 ADMIN SET CONFIG 命令设置 * (5) MasterOnly: 是否仅适用于 Master FE * (6) Comment:    配置项说明 **示例** * 查看当前FE节点的配置 `ADMIN SHOW FRONTEND CONFIG;` * 使用like谓词搜索当前Fe节点的配置 ~~~ mysql> ADMIN SHOW FRONTEND CONFIG LIKE '%check_java_version%'; +--------------------+-------+---------+-----------+------------+---------+ | Key | Value | Type | IsMutable | MasterOnly | Comment | +--------------------+-------+---------+-----------+------------+---------+ | check_java_version | true | boolean | false | false | | +--------------------+-------+---------+-----------+------------+---------+ 1 row in set (0.00 sec) ~~~ <br> #### 7.1.2.7 ADMIN SHOW REPLICA DISTRIBUTION **说明** 该语句用于展示一个表或分区副本的分布状态。 ~~~ ADMIN SHOW REPLICA DISTRIBUTION FROM [db_name.]tbl_name [PARTITION (p1, ...)]; ~~~ 结果中的 Graph 列以图形的形式展示副本分布比例。 **示例** * 查看表的副本分布 `ADMIN SHOW REPLICA DISTRIBUTION FROM tbl1;` * 查看表的分区的副本分布 `ADMIN SHOW REPLICA DISTRIBUTION FROM db1.tbl1 PARTITION(p1, p2);` <br> #### 7.1.2.8 ADMIN SHOW REPLICA STATUS **说明** 该语句用于展示一个表或分区的副本状态信息。 ~~~ ADMIN SHOW REPLICA STATUS FROM [db_name.]tbl_name [PARTITION (p1, ...)] [where_clause]; where_clause: WHERE STATUS [!]= "replica_status" ~~~ replica\_status: *    OK:             replica 处于健康状态 *    DEAD:           replica 所在 Backend 不可用 *    VERSION\_ERROR:  replica 数据版本有缺失 *    SCHEMA\_ERROR:   replica 的 schema hash 不正确 *    MISSING:        replica 不存在 **示例** * 查看表全部的副本状态 `ADMIN SHOW REPLICA STATUS FROM db1.tbl1;` * 查看表某个分区状态为 VERSION\_ERROR 的副本 `ADMIN SHOW REPLICA STATUS FROM tbl1 PARTITION (p1, p2) WHERE STATUS = "VERSION_ERROR";` * 查看表所有状态不健康的副本 `ADMIN SHOW REPLICA STATUS FROM tbl1 WHERE STATUS != "OK";` <br> #### 7.1.2.9 ALTER CLUSTER **说明** 该语句用于更新逻辑集群。需要有管理员权限。 `ALTER CLUSTER cluster_name PROPERTIES ("key"="value", ...);` 通过配置属性'instance\_num'(集群中BE节点数目)可以实现集群的缩容、扩容(根据集群现有的BE节点数目,增加则为扩容,减少则为缩容)。扩容为同步操作;缩容为异步操作,通过backend的状态可以得知是否缩容完成。 <br> **示例** * 缩容,将集群test\_cluster中BE节点由3个减少为2个 `ALTER CLUSTER test_cluster PROPERTIES ("instance_num"="2");` * 扩容,将集群test\_cluster中BE节点由3个增加为4个 `ALTER CLUSTER test_cluster PROPERTIES ("instance_num"="4");` <br> #### 7.1.2.10 ALTER SYSTEM **说明** 该语句用于操作一个系统内的节点。(仅管理员使用!) <br> 语法: ~~~ --1) 增加节点(不使用多租户功能则按照此方法添加) ALTER SYSTEM ADD BACKEND "host:heartbeat_port"[,"host:heartbeat_port"...]; --2) 增加空闲节点(即添加不属于任何cluster的BACKEND) ALTER SYSTEM ADD FREE BACKEND "host:heartbeat_port"[,"host:heartbeat_port"...]; --3) 增加节点到某个cluster ALTER SYSTEM ADD BACKEND TO cluster_name "host:heartbeat_port"[,"host:heartbeat_port"...]; --4) 删除节点 ALTER SYSTEM DROP BACKEND "host:heartbeat_port"[,"host:heartbeat_port"...]; --5) 节点下线 ALTER SYSTEM DECOMMISSION BACKEND "host:heartbeat_port"[,"host:heartbeat_port"...]; --6) 增加Broker ALTER SYSTEM ADD BROKER broker_name "host:port"[,"host:port"...]; --7) 减少Broker ALTER SYSTEM DROP BROKER broker_name "host:port"[,"host:port"...]; --8) 删除所有Broker ALTER SYSTEM DROP ALL BROKER broker_name --9) 设置一个 Load error hub,用于集中展示导入时的错误信息 ALTER SYSTEM SET LOAD ERRORS HUB PROPERTIES ("key" = "value"[, ...]); ~~~ 说明:    1) host 可以是主机名或者ip地址    2) heartbeat\_port 为该节点的心跳端口    3) 增加和删除节点为同步操作。这两种操作不考虑节点上已有的数据,节点直接从元数据中删除,请谨慎使用。    4) 节点下线操作用于安全下线节点。该操作为异步操作。如果成功,节点最终会从元数据中删除。如果失败,则不会完成下线。    5) 可以手动取消节点下线操作。详见 CANCEL DECOMMISSION。    6) Load error hub:        当前支持两种类型的 Hub:Mysql 和 Broker。需在 PROPERTIES 中指定 "type" = "mysql" 或 "type" = "broker"。 如果需要删除当前的 load error hub,可以将 type 设为 null。 1.       当使用 Mysql 类型时,导入时产生的错误信息将会插入到指定的 mysql 库表中,之后可以通过 show load warnings 语句直接查看错误信息。 Mysql 类型的 Hub 需指定以下参数: * host:mysql host * port:mysql port * user:mysql user * password:mysql password * database:mysql database * table:mysql table <br> 2.        当使用 Broker 类型时,导入时产生的错误信息会形成一个文件,通过 broker,写入到指定的远端存储系统中。须确保已经部署对应的 broker Broker 类型的 Hub 需指定以下参数: * broker: broker 的名称 * path: 远端存储路径 * other properties: 其他访问远端存储所必须的信息,比如认证信息等。 <br> **示例** * 增加一个节点 `ALTER SYSTEM ADD BACKEND "host:port";` * 增加一个空闲节点 `ALTER SYSTEM ADD FREE BACKEND "host:port";    ` * 删除两个节点 `ALTER SYSTEM DROP BACKEND "host1:port", "host2:port";` * 下线两个节点 `ALTER SYSTEM DECOMMISSION BACKEND "host1:port", "host2:port";` * 增加两个HDFS Broker `ALTER SYSTEM ADD BROKER hdfs "host1:port", "host2:port";` * 添加一个 Mysql 类型的 load error hub `ALTER SYSTEM SET LOAD ERRORS HUB PROPERTIES` `("type"= "mysql",` `"host" = "192.168.1.17"` `"port" = "3306",` `"user" = "my_name",` `"password" = "my_passwd",` `"database" = "doris_load",` `"table" = "load_errors"` `);` * 添加一个 Broker 类型的 load error hub `ALTER SYSTEM SET LOAD ERRORS HUB PROPERTIES` `("type"= "broker",` `"name" = "bos",` `"path" = "bos://backup-cmy/logs",` `"bos_endpoint" = "[http://gz.bcebos.com](http://gz.bcebos.com)",` `"bos_accesskey" = "069fc278xxxxxx24ddb522",` `"bos_secret_accesskey"="700adb0c6xxxxxx74d59eaa980a"` `);` * 删除当前的 load error hub `ALTER SYSTEM SET LOAD ERRORS HUB PROPERTIES ("type"= "null");` <br> #### 7.1.2.11 CANCEL DECOMMISSION **说明** 该语句用于撤销一个节点下线操作。(仅管理员使用!) ~~~ CANCEL DECOMMISSION BACKEND "host:heartbeat_port"[,"host:heartbeat_port"...]; ~~~ **示例** * 取消两个节点的下线操作: `CANCEL DECOMMISSION BACKEND "host1:port", "host2:port";` <br> #### 7.1.2.12 CREATE FILE **说明** 该命令用于创建并上传一个文件到 DorisDB 集群。该功能通常用于管理其它命令中需要使用到的文件,如证书、公钥私钥等等。 <br> 每个文件都归属与某个 database。对 database 拥有访问权限的用户都可以使用该文件。单个文件大小限制为 1MB。一个 DorisDB 集群最多可上传 100 个文件。 <br> 该命令只有 admin 权限用户可以执行。 语法: ~~~ CREATE FILE "file_name" [IN database] [properties] ~~~ 说明: *    file\_name:  自定义文件名。 *    database: 文件归属于某一个 db,如果没有指定,则使用当前 session 的 db。 *    properties 支持以下参数: *        url: 必须。指定一个文件的下载路径。当前仅支持无认证的 http 下载路径。命令执行成功后,文件将被保存在 DorisDB 中,该 url 将不再需要。 *        catalog: 必须。对文件的分类名,可以自定义。但在某些命令中,会查找指定 catalog 中的文件。比如例行导入中的,数据源为 kafka 时,会查找 catalog 名为 kafka 下的文件。 *        md5: 可选。文件的 md5。如果指定,会在下载文件后进行校验。 **示例** * 创建文件 ca.pem ,分类为 kafka。 `CREATE FILE "ca.pem"` `PROPERTIES` `(` `   "url" = "[https://test.bj.bcebos.com/kafka-key/ca.pem](https://test.bj.bcebos.com/kafka-key/ca.pem)",` `   "catalog" = "kafka"` `);` * 创建文件 client.key,分类为 my\_catalog。 `CREATE FILE "client.key"` `IN my_database` `PROPERTIES` `(` `   "url" = "[https://test.bj.bcebos.com/kafka-key/client.key](https://test.bj.bcebos.com/kafka-key/client.key)",` `   "catalog" = "my_catalog",` `   "md5" = "b5bb901bf10f99205b39a46ac3557dd9"` `);` <br> #### 7.1.2.13 DROP CLUSTER **说明** 该命令用于删除逻辑集群。成功删除逻辑集群需要首先删除集群内的数据库。执行该命令需要管理员权限。 `DROP CLUSTER [IF EXISTS] cluster_name` <br> **示例** 删除逻辑集群 test\_cluster `DROP CLUSTER test_cluster;` <br> #### 7.1.2.14 DROP FILE **说明** 该命令用于删除一个已上传的文件。 `语法:` `   DROP FILE "file_name" [FROM database]` `   [properties]` `说明:` `   file_name:  文件名。` `   database: 文件归属的某一个 db,如果没有指定,则使用当前 session 的 db。` `   properties 支持以下参数:` `       catalog: 必须。文件所属分类。` <br> **示例** 删除文件 ca.pem `DROP FILE "ca.pem" properties("catalog" = "kafka");` <br> #### 7.1.2.15 ENTER **说明** 该语句用于进入一个逻辑集群。所有创建用户、创建数据库都需要在一个逻辑集群内执行,创建后并且隶属于这个逻辑集群。执行该命令需要管理员权限。 `ENTER cluster_name` <br> **示例** 进入逻辑集群test\_cluster `ENTER test_cluster;` <br> #### 7.1.2.16 INSTALL PLUGIN **说明** 该语句用于安装一个插件。 语法: ~~~ INSTALL PLUGIN FROM [source] [PROPERTIES ("key"="value", ...)] ~~~    source 支持三种类型:    (1) 指向一个 zip 文件的绝对路径。    (2) 指向一个插件目录的绝对路径。    (3) 指向一个 http 或 https 协议的 zip 文件下载路径。    PROPERTIES 支持设置插件的一些配置,如设置zip文件的md5sum的值等。 <br> **示例** * 安装一个本地 zip 文件插件: `INSTALL PLUGIN FROM "/home/users/doris/auditdemo.zip";` * 安装一个本地目录中的插件: `INSTALL PLUGIN FROM "/home/users/doris/auditdemo/";` * 下载并安装一个插件: `INSTALL PLUGIN FROM "[http://mywebsite.com/plugin.zip](http://mywebsite.com/plugin.zip)";` * 下载并安装一个插件,同时设置了zip文件的md5sum的值:   `INSTALL PLUGIN FROM "[http://mywebsite.com/plugin.zip](http://mywebsite.com/plugin.zip)" PROPERTIES("md5sum" = "73877f6029216f4314d712086a146570");` <br> #### 7.1.2.17 SHOW BACKENDS **说明** 该语句用于查看 cluster 内的 BE 节点。 `语法:` `   SHOW BACKENDS;` 说明:    1. LastStartTime 表示最近一次 BE 启动时间。    2. LastHeartbeat 表示最近一次心跳。    3. Alive 表示节点是否存活。    4. SystemDecommissioned 为 true 表示节点正在安全下线中。    5. ClusterDecommissioned 为 true 表示节点正在冲当前cluster中下线。    6. TabletNum 表示该节点上分片数量。    7. DataUsedCapacity 表示实际用户数据所占用的空间。    8. AvailCapacity 表示磁盘的可使用空间。    9. TotalCapacity 表示总磁盘空间。TotalCapacity = AvailCapacity + DataUsedCapacity + 其他非用户数据文件占用空间。   10. UsedPct 表示磁盘已使用量百分比。   11. ErrMsg 用于显示心跳失败时的错误信息。   12. Status 用于以 JSON 格式显示BE的一些状态信息, 目前包括最后一次BE汇报其tablet的时间信息`。` <br> #### 7.1.2.18 SHOW BROKER **说明** 该语句用于查看当前存在的 broker。 `语法:` `   SHOW BROKER;` 说明:    1. LastStartTime 表示最近一次 BE 启动时间。    2. LastHeartbeat 表示最近一次心跳。    3. Alive 表示节点是否存活。    4. ErrMsg 用于显示心跳失败时的错误信息。 <br> #### 7.1.2.19 SHOW FILE **说明** 该语句用于展示一个 database 内创建的文件。 `语法:` `   SHOW FILE [FROM database];` 说明: *    FileId:     文件ID,全局唯一 *    DbName:     所属数据库名称 *    Catalog:    自定义分类 *    FileName:   文件名 *    FileSize:   文件大小,单位字节 *    MD5:        文件的 MD5 **示例** 查看数据库 my\_database 中已上传的文件 `SHOW FILE FROM my_database;` <br> #### 7.1.2.20 SHOW FRONTENDS **说明** 该语句用于查看 FE 节点。 `语法:` `   SHOW FRONTENDS;` `说明:` `   1. name 表示该 FE 节点在 bdbje 中的名称。` `   2. Join 为 true 表示该节点曾经加入过集群。但不代表当前还在集群内(可能已失联)` `   3. Alive 表示节点是否存活。` `   4. ReplayedJournalId 表示该节点当前已经回放的最大元数据日志id。` `   5. LastHeartbeat 是最近一次心跳。` `   6. IsHelper 表示该节点是否是 bdbje 中的 helper 节点。` `   7. ErrMsg 用于显示心跳失败时的错误信息。` <br> #### 7.1.2.21 SHOW FULL COLUMNS **说明** 该语句查看指定表的列信息。 `SHOW FULL COLUMNS FROM tbl;` <br> **示例** 查看指定表的列信息。 `SHOW FULL COLUMNS FROM tbl;` <br> #### 7.1.2.22 SHOW INDEX **说明** 该语句用于展示一个表中索引的相关信息,目前只支持bitmap 索引。 `语法:` `   SHOW INDEX[ES] FROM [db_name.]table_name [FROM database];` `   或者` `   SHOW KEY[S] FROM [db_name.]table_name [FROM database];` <br> **示例** 展示指定 table\_name 的索引。 `SHOW INDEX FROM example_db.table_name;` <br> #### 7.1.2.23 SHOW MIGRATIONS **说明** 该语句用于查看数据库迁移的进度。 `SHOW MIGRATIONS` <br> #### 7.1.2.24 SHOW PLUGINS **说明** 该语句用于展示已安装的插件,包括所有用户安装的和系统内置的插件。 `SHOW PLUGINS;` <br> #### 7.1.2.25 SHOW TABLE STATUS **说明** 该语句用于查看表的一些信息。 `语法:` `   SHOW TABLE STATUS [FROM db] [LIKE "pattern"]` 说明:    该语句主要用于兼容 MySQL 语法,目前仅显示 Comment 等少量信息。 <br> **示例** * 查看当前数据库下所有表的信息。 `SHOW TABLE STATUS;` * 查看指定数据库下,名称包含 example 的表的信息。 `SHOW TABLE STATUS FROM db LIKE "%example%";` <br> #### 7.1.2.26 UNINSTALL PLUGIN **说明** 该语句用于卸载一个插件。 `语法:` `   UNINSTALL PLUGIN plugin_name;` <br> 说明:    plugin\_name 可以通过 `SHOW PLUGINS;` 命令查看。 > 注:只能卸载非内置的插件。 **示例** 卸载一个插件: `UNINSTALL PLUGIN auditdemo;`