有没有办法从 mysqlshell 获取输出并在脚本或类似文件中使用它。
我已经建立了一个用于测试的基本集群(3 x MySQL 8.0.27 数据库,在 Debian 11 上运行)。
我现在正试图找到一种从 mysqlshell 的cluster.status()
输出中捕获输出的方法。
例如,从 mysqlshell 内部我可以运行:
cluster=dba.getCluster()
cluster.status().defaultReplicaSet.topology['test-1:3306'].replicationLag
获取当前的复制延迟。我想捕获它,以便可以自动监控它。
我假设这些统计数据中的大多数也将存在于某处的performance_schema
ormysql_innodb_cluster_metadata
数据库中,但我看不到它们。
有没有办法做到这一点?
您可以使用 Shell 的命令行集成来访问 AdminAPI,而无需进入 Shell 的交互界面。例如,这允许您在 bash 脚本中运行命令或将其与其他自动化/监控工具集成。
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-command-line-integration.html