# ALTER SYSTEM ## description 该语句用于操作一个系统内的节点。(仅管理员使用!) 语法: 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 ALTER SYSTEM 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 2) 当使用 Broker 类型时,导入时产生的错误信息会形成一个文件,通过 broker,写入到指定的远端存储系统中。须确保已经部署对应的 broker Broker 类型的 Hub 需指定以下参数: broker: broker 的名称 path: 远端存储路径 other properties: 其他访问远端存储所必须的信息,比如认证信息等。 ## example 1. 增加一个节点 ALTER SYSTEM ADD BACKEND "host:port"; 2. 增加一个空闲节点 ALTER SYSTEM ADD FREE BACKEND "host:port"; 3. 删除两个节点 ALTER SYSTEM DROP BACKEND "host1:port", "host2:port"; 4. 下线两个节点 ALTER SYSTEM DECOMMISSION BACKEND "host1:port", "host2:port"; 5. 增加两个Hdfs Broker ALTER SYSTEM ADD BROKER hdfs "host1:port", "host2:port"; 6. 添加一个 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" ); 7. 添加一个 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", "bos_accesskey" = "069fc278xxxxxx24ddb522", "bos_secret_accesskey"="700adb0c6xxxxxx74d59eaa980a" ); 8. 删除当前的 load error hub ALTER SYSTEM SET LOAD ERRORS HUB PROPERTIES ("type"= "null"); ## keyword ALTER,SYSTEM,BACKEND,BROKER,FREE # CANCEL ALTER SYSTEM ## description 该语句用于撤销一个节点下线操作。(仅管理员使用!) 语法: CANCEL ALTER SYSTEM DECOMMISSION BACKEND "host:heartbeat_port"[,"host:heartbeat_port"...]; ## example 1. 取消两个节点的下线操作: CANCEL ALTER SYSTEM DECOMMISSION BACKEND "host1:port", "host2:port"; ## keyword CANCEL,ALTER,SYSTEM,BACKEND # CREATE CLUSTER ## description 该语句用于新建逻辑集群 (cluster), 需要管理员权限。如果不使用多租户,直接创建一个名称为default_cluster的cluster。否则创建一个自定义名称的cluster。 语法 CREATE CLUSTER [IF NOT EXISTS] cluster_name PROPERTIES ("key"="value", ...) IDENTIFIED BY 'password' 1. PROPERTIES 指定逻辑集群的属性 PROPERTIES ("instance_num" = "3") instance_num 逻辑集群节点树 2. identified by ‘password' 每个逻辑集群含有一个superuser,创建逻辑集群时必须指定其密码 ## example 1. 新建一个含有3个be节点逻辑集群 test_cluster, 并指定其superuser用户密码 CREATE CLUSTER test_cluster PROPERTIES("instance_num"="3") IDENTIFIED BY 'test'; 2. 新建一个含有3个be节点逻辑集群 default_cluster(不使用多租户), 并指定其superuser用户密码 CREATE CLUSTER default_cluster PROPERTIES("instance_num"="3") IDENTIFIED BY 'test'; ## keyword CREATE,CLUSTER # ALTER CLUSTER ## description 该语句用于更新逻辑集群。需要有管理员权限 语法 ALTER CLUSTER cluster_name PROPERTIES ("key"="value", ...); 1. 缩容,扩容 (根据集群现有的be数目,大则为扩容,小则为缩容), 扩容为同步操作,缩容为异步操作,通过backend的状态可以得知是否缩容完成 PROERTIES ("instance_num" = "3") instance_num 逻辑集群节点树 ## example 1. 缩容,减少含有3个be的逻辑集群test_cluster的be数为2 ALTER CLUSTER test_cluster PROPERTIES ("instance_num"="2"); 2. 扩容,增加含有3个be的逻辑集群test_cluster的be数为4 ALTER CLUSTER test_cluster PROPERTIES ("instance_num"="4"); ## keyword ALTER,CLUSTER # DROP CLUSTER ## description 该语句用于删除逻辑集群,成功删除逻辑集群需要首先删除集群内的db,需要管理员权限 语法 DROP CLUSTER [IF EXISTS] cluster_name ## example 删除逻辑集群 test_cluster DROP CLUSTER test_cluster; ## keyword DROP,CLUSTER # LINK DATABASE ## description 该语句用户链接一个逻辑集群的数据库到另外一个逻辑集群, 一个数据库只允许同时被链接一次,删除链接的数据库 并不会删除数据,并且被链接的数据库不能被删除, 需要管理员权限 语法 LINK DATABASE src_cluster_name.src_db_name des_cluster_name.des_db_name ## example 1. 链接test_clusterA中的test_db到test_clusterB,并命名为link_test_db LINK DATABASE test_clusterA.test_db test_clusterB.link_test_db; 2. 删除链接的数据库link_test_db DROP DATABASE link_test_db; ## keyword LINK,DATABASE # MIGRATE DATABASE ## description 该语句用于迁移一个逻辑集群的数据库到另外一个逻辑集群,执行此操作前数据库必须已经处于链接状态, 需要管理 员权限 语法 MIGRATE DATABASE src_cluster_name.src_db_name des_cluster_name.des_db_name ## example 1. 迁移test_clusterA中的test_db到test_clusterB MIGRATE DATABASE test_clusterA.test_db test_clusterB.link_test_db; ## keyword MIGRATE,DATABASE # SHOW MIGRATIONS ## description 该语句用于查看数据库迁移的进度 语法 SHOW MIGRATIONS ## keyword SHOW,MIGRATIONS # ENTER ## description 该语句用于进入一个逻辑集群, 所有创建用户、创建数据库都需要在一个逻辑集群内执行,创建后并且隶属于这个逻 辑集群,需要管理员权限 ENTER cluster_name ## example 1. 进入逻辑集群test_cluster ENTER test_cluster; ## keyword ENTER # SHOW BACKENDS ## description 该语句用于查看cluster内的节点 语法: SHOW BACKENDS ## keyword SHOW, BACKENDS