Orchestrator介绍三 命令行工具

Orchestrator-client

orchestrator 支持两种方式通过命令行操作:

一种是 通过命令 orchestrator:

需要在服务器上安装 orchestrator,但是可以不作为服务启动。

需要配置orchestrator的文件,以便能够连接后端数据库

一种是通过 命令orchestrator-client

需要在服务器上安装orchestrator-client 脚本

不需要配置文件,但是需要指定ORCHESTRATOR_API 环境变量

orchestrator命令

./orchestrator -c help 查看帮助

./orchestrator -c find  help 查看子命令的帮助

需要指定配置文件

需要添加参数 --ignore-raft-setup

查看信息

打印所有匹配到的实例

./orchestrator -config orchestrator-sample.conf.json  --ignore-raft-setup -c find  -pattern "ehr-db-mysql-test-s0*"

打印根据名字 ,端口,版本匹配到的实例

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c search -pattern "5.7.28"

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c search -pattern "5306"

打印所有被orc管控的集群 

 ./orchestrator -config orchestrator-sample.conf.json  --ignore-raft-setup -c clusters

打印所有被orc管控的集群的别名
 

./orchestrator -config orchestrator-sample.conf.json  --ignore-raft-setup -c clusters-alias

所有集群的所有可写的主库

 ./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c all-clusters-masters

根据集群中某个实例的名称打印集群拓扑

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c  topology -i ehr-db-mysql-test-s03.zjy:5306

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c  topology-tabulated  -i ehr-db-mysql-test-s03.zjy:5306

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c  topology-tags  -i ehr-db-mysql-test-s03.zjy:5306

 这两种只是格式不同

 

打印所有的实例

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c all-instances 

根据实例返回实例所在的集群别名

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster -i 

根据实例返回实例所在的集群别名

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster-alias -i ehr-db-mysql-test-s03.zjy:5306

根据实例返回实例所在的集群域名

 ./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster-domain  -i ehr-db-mysql-test-s03.zjy:5306

根据实例返回实例所在的集群主库

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster-master   -i ehr-db-mysql-test-s03.zjy:5306

根据实例返回实例所在的集群中所有实例

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster-instances   -i ehr-db-mysql-test-s03.zjy:5306

返回实例状态

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c instance-status   -i ehr-db-mysql-test-s03.zjy:5306

输出集群中的副本列表,可以作为 pt-online-schema-change 操作控制副本

 ./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster-osc-replicas    -i ehr-db-mysql-test-s03.zjy:5306

输出集群中的副本列表,可以作为 gh-ost 工作服务器

./orchestrator  -config orchestrator-sample.conf.json  --ignore-raft-setup -c which-cluster-gh-ost-replicas    -i ehr-db-mysql-test-s03.zjy:5306


Orchestrator-client是一个包装 API 调用的脚本,使用起来更方便。

它可以自动确定orchestrator的Leader角色,并在这种情况下将所有请求转发给Leader。

有了orchestrator-client,您:

  • 不需要到处安装orchestrator的二进制文件;仅在运行该服务的主机上安装即可
  • 不需要到处部署配置orchestrator;仅在服务主机上即可。
  • 不需要访问后端数据库
  • 需要访问 HTTP api
  • 需要设置ORCHESTRATOR_API环境变量。
    • 要么为代理提供单个端点,例如
    export ORCHESTRATOR_API=https://orchestrator.myservice.com:3000/api
    • 或者提供所有orchestrator端点,并orchestrator-client自动选择领导者(不需要代理),例如
    export ORCHESTRATOR_API="https://orchestrator.host1:3000/api https://orchestrator.host2:3000/api https://orchestrator.host3:3000/api"
  • 您可以在 中设置环境/etc/profile.d/orchestrator-client.sh。如果该文件存在,它将被内联orchestrator-client

使用示例

显示当前已知的集群(复制拓扑):

orchestrator-client -c clusters

发现、忘记一个例子:

orchestrator-client -c discover -i 127.0.0.1:22987
orchestrator-client -c forget -i 127.0.0.1:22987

打印拓扑实例的 ASCII 树。通过以下方式传递集群名称-i(参见clusters上面的命令):

orchestrator-client -c topology -i 127.0.0.1:22987

示例输出:

127.0.0.1:22987
+ 127.0.0.1:22989
  + 127.0.0.1:22988
+ 127.0.0.1:22990

在拓扑中移动副本:

orchestrator-client -c relocate -i 127.0.0.1:22988 -d 127.0.0.1:22987

结果拓扑:

127.0.0.1:22987
+ 127.0.0.1:22989
+ 127.0.0.1:22988
+ 127.0.0.1:22990

ETC。

幕后花絮

命令行界面为 API 调用提供了一个很好的包装器,然后其输出从 JSON 格式转换为文本格式。

例如,命令:

orchestrator-client -c discover -i 127.0.0.1:22987

翻译为(为了方便起见,此处进行了简化):

curl "$ORCHESTRATOR_API/discover/127.0.0.1/22987" | jq '.Details | .Key'

元命令

  • orchestrator-client -c help:列出所有可用的命令
  • orchestrator-client -c which-api:API 端点orchestrator-client将用于调用命令的输出。当通过 提供多个端点时,这非常有用$ORCHESTRATOR_API
  • orchestrator-client -c api -path clusters:调用通用 HTTP API 调用(在本例中clusters)并返回原始 JSON 响应。

你可能感兴趣的:(orchestrator,数据库)