GreatSQL社区

搜索

chongzh

mysql shell 接管现有GreatSQL mgr集群

chongzh 已有 382 次阅读2023-8-31 08:39 |个人分类:Mysql shell|系统分类:运维实战

1.1 关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

1.2 什么是MySQL Shell ?

MySQL Shell 是 MySQL 的一个高级客户端和代码编辑器,是第二代 MySQL 客户端。第一代 MySQL 客户端即我们常用的 MySQL 。除了提供类似于 MySQL 的 SQL 功能外,MySQL Shell 还提供 JavaScript 和 Python 脚本功能,并包括与 MySQL 一起使用的 API 。MySQL Shell 除了可以对数据库里的数据进行操作,还可以对数据库进行管理,特别是对MGR的支持,使用MySQL Shell 可以非常方便的对MGR进行搭建、管理、配置等

1.3 什么是MySQL Shell for GreatSQL ?

MySQL Shell for GreatSQL 的出现是因为在 GreatSQL 8.0.25-16 版本的时候引入了MGR仲裁节点(投票节点)的新特性,MySQL提供的MySQL Shell无法识别该特性,因此我们提供了 MySQL Shell for GreatSQL 版本,以下就称为MySQL Shell for GreatSQL

但是!因为 JS 库中含有商业库,所以GreatSQL社区在编译的时候就没有加上 JS 的脚本功能。

1.4 mysql shell 接管现有GreatSQL mgr集群

MySQL Shell for GreatSQL来搭建 MGR集群 或接管现有mgr集群非常的方便快捷。

1.4.1 安装MySQL Shell

为了支持仲裁节点特性,需要安装GreatSQL提供的MySQL Shell发行包。打开GreatSQL下载页面 (opens new window),找到 7. GreateSQL MySQL Shell,下载相应的MySQL Shell安装包(目前只提供二进制安装包)。

P.S,如果暂时不想使用仲裁节点特性的话,则可以继续使用相同版本的官方MySQL Shell安装包,可以直接用YUM方式安装,此处略过。

本文场景中,选择下面的二进制包:

  • greatsql-shell-8.0.25-16-Linux-glibc2.28-x86_64.tar.xz

将二进制文件包放在 /usr/local 目录下,解压缩:


$ cd /usr/local/
$ tar xf greatsql-shell-8.0.25-16-Linux-glibc2.28-x86_64.tar.xz

修改家目录下的profile文件,加入PATH:

$ vim ~/.bash_profile

...
PATH=$PATH:$HOME/bin:/usr/local/greatsql-shell-8.0.25-16-Linux-glibc2.28-x86_64/bin

export PATH

加载一下

$ source ~/.bash_profile

这样就可以直接执行 mysqlsh,而无需每次都加上全路径了。

第一次启动mysqlsh时,可能会有类似下面的提示:

WARNING: Found errors loading plugins, for more details look at the log at: /root/.mysqlsh/mysqlsh.log

执行下面的指令安装certifi这个Python模块即可:

$ pip3.6 install --user certifi

1.4.2 现有mgr集群,非 mysql shell 初始化mgr集群 纳入 mysql shell 管理

1.4.2.1 mysql shell 登录 mgr 实例

mysqlsh --uri root@172.26.170.14:3306
说明:登录用户必须为有管理权限的用户,注意 with grant option 权限

1.4.2.2 开始配置MGR节点 (所有mgr节点都要执行)

dba.configure_instance();

1.4.2.3 MGR节点预检查(所有mgr节点都要执行)

dba.check_instance_configuration()

1.4.2.4 创建并初始化一个集群

(我这里是 接管现有mgr集群 纳入mysql shell 管理,所以不用添加实例和初始化集群。如果是新部署集群,那么后续就需要逐个添加实例 c.add_instance('GreatSQL@172.16.16.11:3306');)

# 集群命名为 GreatSQLMGR,后面mysqlrouter读取元数据时用得上

c = dba.create_cluster('GreatSQLMGR');

1.4.2.5 查看下集群状态

c=dba.get_cluster();
c.status()



评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-4 12:35 , Processed in 0.013034 second(s), 8 queries , Redis On.
返回顶部