mysql shell 接管现有GreatSQL mgr集群

2023年 8月 31日 33.9k 0

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()

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论