dbops 助力 GreatSQL 单机架构安装部署

dbops 助力 GreatSQL 单机架构安装部署

本文将深入介绍如何运用 dbops 完成 GreatSQL 单机架构的安装部署,无论是数据库新手寻求入门,还是经验丰富的技术人员追求高效操作,都能从中获取有价值的信息,助力构建坚实的数据库基础。

dbops 简介

dbops 是一套基于 Ansible Playbook 的自动化工具集,专为高效部署生产级数据库及其周边生态而设计。它遵循 "高效、优雅、规范(Code as Standard )" 的核心理念:

  • 高效:具备并发部署、全自动化的显著特点,且安装包小巧,能够极大地提升部署效率,节省时间和资源。
  • 优雅:使用 ansible-lint 对代码进行优化,以 Python 编写并尽量运用内置模块,使得代码简洁易读,易于维护和扩展。
  • 规范:能让 MySQL/GreatSQL 满足生产级规范,为数据库的稳定运行提供有力保障。

该工具主要致力于解决各类生产环境的规范化建设问题,目前正处于持续迭代的阶段,后续还将支持实例生命周期管理及资源回收等更多实用功能。

环境介绍

本次部署所使用的操作系统为麒麟 V10 系统,以下是系统的详细信息:

shell 复制代码
$ cat /etc/*release
Kylin Linux Advanced Server release V10 (Sword)
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
Kylin Linux Advanced Server release V10 (Sword)

$ uname -a
Linux gip 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux

环境 Glibc 版本信息如下:

shell 复制代码
$ ldd --version
ldd (GNU libc) 2.28

使用的 dbops 版本为:

shell 复制代码
dbops.1.9.20250129 release

使用的 GreatSQL 版本为:

shell 复制代码
GreatSQL-8.0.32-27

下载 dbops

可以从以下链接下载

bash 复制代码
$ cd /usr/local
$ wget https://gitee.com/fanderchan/dbops/releases/download/dbops.1.9.20250129/dbops.1.9.20250129-Linux-x86_64.tar.gz

下载完成后,对 dbops 进行解压:

bash 复制代码
$ tar -xvzf dbops.1.9.20250129-Linux-x86_64.tar.gz 

在使用 dbops 之前,建议先阅读 dbops 目录结构和配置文件原理,这样能帮助更好地上手该工具:

安装 Ansible

dbops 自带绿色版 Ansible,dbops 的核心依赖于 Ansible,执行此命令用于注册:

bash 复制代码
$ cd portable-ansible-v0.5.0-py3
$ sh setup_portable_ansible.sh
$ source ~/.bashrc

最后检查下 Ansible 是否安装成功:

bash 复制代码
$ ansible --version
ansible 2.10.5

安装 GreatSQL

上传 GreatSQL 安装包

在当前环境下,建议选择 GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64 这个 Linux Generic 通用包。

注意,由于 dbops 限制,只能选择 glibc2.17 和 x86_64 以及 minimal 版本

所以只能选择GreatSQL-8.0.32-27-Linux-glibc2.17-x86_64-minimal.tar.xz版本,不过 glibc 可以向下兼容,所以不会出现无法安装情况

bash 复制代码
# 需要放到 downloads 文件夹下
$ cd /usr/local/dbops/mysql_ansible/downloads
$ wget https://product.greatdb.com/GreatSQL-8.0.32-27/GreatSQL-8.0.32-27-Linux-glibc2.17-x86_64-minimal.tar.xz

编辑配置清单

bash 复制代码
$ vi /usr/local/dbops/mysql_ansible/inventory/hosts.ini 

修改内容如下:

ini 复制代码
[dbops_mysql]
192.168.139.37 ansible_user=root ansible_ssh_pass="'****'"
# IP地址 ansible_user=root ansible_ssh_pass="'你的密码'"
[all:vars]
#ansible_python_interpreter=/usr/bin/python3

注意!密码需要单引号包围,修改时不要漏掉。

验证服务器的连通性:

bash 复制代码
$ cd /usr/local/dbops/mysql_ansible/playbooks
$ ansible all -m ping
192.168.139.37 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

配置公共参数文件

bash 复制代码
$ vi /usr/local/dbops/mysql_ansible/playbooks/common_config.yml 

修改数据库版本以及端口:

ini 复制代码
## In most cases, just adjust these two parameters.
mysql_version: "8.0.32-27"
mysql_port: 3306

修改数据库类型为 "greatsql":

ini 复制代码
## DB TYPE,suport mysql,percona,greatsql
db_type: greatsql

因为是手动下载安装包,所以可以关闭此参数,修改为 false 即可:

ini 复制代码
fcs_auto_download_mysql: false     # only support mysql. percona, greatsql pls download yourself first.

若想进行进阶修改,下方还有很多公共参数可供修改。

要修改目录地址请看下方附录。

执行 Playbook

bash 复制代码
$ ansible-playbook single_node.yml

等待一会儿后,会打印出如下消息:

ini 复制代码
    "msg": [
        "Hosts to be affected by Deploy single-node MySQL server using binary installation: 192.168.139.37",
        "DB type: mysql",
        "MySQL port: 3306",
        "MySQL version: 8.0.32-27",
        "Server specs: auto",
        "Roles to be executed: ../roles/pre_check_and_set, ../roles/mysql_server",
        "mycnf_dir: /database/mysql/etc/3306",
        "datadir: /database/mysql/data/3306",
        "tmpdir: /database/mysql/tmp/3306",
        "binlog_dir: /database/mysql/log/binlog/3306",
        "relaylog_dir: /database/mysql/log/relaylog/3306",
        "redolog_dir: /database/mysql/log/redolog/3306",
        "socket_dir: /database/mysql/data/3306",
        "mysqlx_socket_dir: /database/mysql/data/3306"
    ]

可以看到上面的信息,安装时请确认无误后,输入 "confirm" 确认安装。如果想修改,可按 Ctrl+C 退出安装,再修改文件 "common_config.yml"。稍等片刻,GreatSQL 就部署完成。

有需要修改,请下滑看 "附:自定义目录" 章节

登入 GreatSQL

登入 GreatSQL 进行检查:

bash 复制代码
$ mysql -uadmin -h127.0.0.1 -P3306 -pDbops@8888 -e "select @@version"
+-----------+
| @@version |
+-----------+
| 8.0.32-27 |
+-----------+

至此,麒麟系统下 GreatSQL 的安装已顺利完成:D

附:自定义目录

自定义目录的作用

自定义目录可以让用户根据实际需求灵活调整 GreatSQL 安装过程中涉及的各种目录,如配置文件目录、数据存储目录、日志目录等,以满足不同的生产环境和业务场景的要求。

如何自定义目录

在读取 common_config.yml 文件后,新增读取advanced_config.yml配置文件,路径:dbops/mysql_ansible/playbooks/advanced_config.yml,可以找到与目录相关的参数,如 mycnf_dirdatadirtmpdir 等。用户可以根据自己的需要修改这些参数的值。

注意!这种操作属于高阶用法,属于代码维护的一部分,其正确性需由用户自行保证。如果出现配置错误,可能会引发不可预料的后果。

更多配置信息详见:

注意事项

  • 在修改目录参数时,需要确保目标目录存在且有相应的读写权限,否则可能会导致安装失败。
  • 自定义目录可能会影响到一些默认的配置和脚本,需要仔细检查和测试,确保 GreatSQL 能够正常运行。

Enjoy GreatSQL :)

关于 GreatSQL

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

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

社区有奖建议反馈: greatsql.cn/thread-54-1...

社区博客有奖征稿详情: greatsql.cn/thread-100-...

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

相关推荐
橙子20252 分钟前
OLLAMA 未授权访问-漏洞挖掘
数据库·sql
未来之窗软件服务4 分钟前
系统安全——文件监控-FileMonitor
运维·服务器·数据库·系统安全
一人の梅雨12 分钟前
西域平台关键字搜索接口开发指南
java·开发语言·数据库
雾岛LYC听风1 小时前
3. 轴指令(omron 机器自动化控制器)——>MC_GearInPos
前端·数据库·自动化
四维碎片1 小时前
【Qt】数据库管理
数据库·c++·qt
星河浪人2 小时前
MySQL 性能优化:索引优化与查询优化
数据库·mysql·性能优化
qq_485015212 小时前
Spring Boot数据库连接池
数据库·spring boot·后端
Anthony_49263 小时前
深入理解MySQL事务:从版本链到MVCC的全面解析
数据库·后端·mysql
手握风云-4 小时前
MySQL数据库精研之旅第五期:CRUD的趣味探索(上)
数据库·mysql
凉凉的知识库4 小时前
搞懂常见Go ORM系列-Ent框架详解
数据库·go·orm