SQLE 3.0 部署实践

news2024/9/22 11:27:07

来自 1024 活动的投稿系列 第一篇《SQLE 3.0 部署实践》 .

作者:张昇,河北东软软件有限公司高级软件工程师,腾讯云社区作者。

爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

本文共 3200 字,预计阅读需要 10 分钟。

本文是 SQLE 1024 特别活动 | SQL 质量提升官活动 征稿活动的第一篇,作者详细记录了体验 SQLE 3.0 安装部署的全过程和体验感受。

SQLE 介绍

SQLE 是爱可生自主研发支持多元数据库的 SQL 质量管理平台,于 2021 年正式开源。应用于开发、测试、上线发布、生产运行阶段的 SQL 质量治理。通过 “建立规范、事前控制、事后监督、标准发布” 的方式,为企业提供 SQL 全生命周期质量管控能力,规避业务 SQL 不规范引起的生产事故,提高业务稳定性,也可推动企业内部开发规范快速落地。

以下是详细的 SQLE 3.0 安装体验过程,分别演示 RPM 和 Docker 两种部署方式。

RPM 安装

RPM 安装是首先支持的安装方式。

2.1 安装环境准备

目前最新的 v3 版本,所以系统就首选 CentOS 7 了。安装包下载地址:https://github.com/actiontech/sqle/releases

2.2 执行安装

执行安装命令。

rpm -ihv sqle-ce-3.2310.0.qa.el7.x86_64.rpm --prefix=/opt/sqle

安装成功

2.3 安装 MySQL

配合使用数据源我们选择了 MySQL。为了简化安装,我们使用 Docker 方式进行部署。

# Docker 运行 MySQL
docker run -d --restart=always --name mysql \
        --network=host \
        -e MYSQL_ROOT_PASSWORD=sqle2023 \
        -e LANG=C.UTF-8 \
        -v /etc/timezone:/etc/timezone \
        -v /etc/localtime:/etc/localtime \
        mysql:5.7.41

# 进入容器连接数据库
docker exec -it mysql bash
mysql -uroot -psqle2023

# 执行建库语句
CREATE DATABASE IF NOT EXISTS sqle default character set utf8mb4 collate utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS dms default character set utf8mb4 collate utf8mb4_unicode_ci;

2.4 修改配置文件

这里主要修改两个部分:

  1. 数据库连接信息。
  2. secret_key,可以使用 Linux 命令 uuidgen 生成,记得删除“-”。
dms:
  id: 1
  api:
    addr: "0.0.0.0"
    port: 10000
    enable_https: false
    cert_file_path: './etc/cert.pem'
    key_file_path: './etc/key.pem'
  secret_key: '7fa9af029350433daceb899710ee3a62'
  service:
    database:
      host: "127.0.0.1"
      port: 3306
      username: "root"
      password: "sqle2023"
      database: "dms"
      debug: true
  cloudbeaver:
    enable_https: false
    host: "127.0.0.1"
    port: 8978
    admin_user: "cbadmin"
    admin_password: "123456"

sqle:
  id: 1
  dms_server_address: "http://127.0.0.1:10000"
  api:
    addr: "127.0.0.1"
    port: 10001
    enable_https: false
    cert_file_path: './etc/cert.pem'
    key_file_path: './etc/key.pem'
  secret_key: '7fa9af029350433daceb899710ee3a62'
  service:
    auto_migrate_table: true
    debug_log: false
    log_path: './logs'
    log_max_size_mb: 1024
    log_max_backup_number: 2
    plugin_path: './plugins'
    database:
      mysql_host: '127.0.0.1'
      mysql_port: 3306
      mysql_user: 'root'
      mysql_password: 'sqle2023'
      mysql_schema: 'sqle'

2.5 启动

cd /opt/sqle
chmod +x scripts/init_start.sh
./scripts/init_start.sh

2.6 安装测试

查看服务进程。

服务已经启动

访问 http://IP:10000,默认账密 admin/admin,正常登录系统。

SQLE 3.0 界面

Docker 安装

SQLE 3.0 也支持 Docker 安装方式。

3.1 安装环境准备

目前最新的 v3 版本,已提供 Docker 安装方式部署方式。

3.2 安装 MySQL

与 RPM 包安装方式不同的是,Docker 部署必须要先安装 MySQL,并创建数据库,否则应用无法正常启动。

为了简化安装,我们使用 Docker 方式进行部署。

# Docker 运行 MySQL
docker run -d --restart=always --name mysql \
        --network=host \
        -e MYSQL_ROOT_PASSWORD=sqle2023 \
        -e LANG=C.UTF-8 \
        -v /etc/timezone:/etc/timezone \
        -v /etc/localtime:/etc/localtime \
        mysql:5.7.41

# 进入容器连接数据库
docker exec -it mysql bash
mysql -uroot -psqle2023

# 执行建库语句
CREATE DATABASE IF NOT EXISTS sqle default character set utf8mb4 collate utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS dms default character set utf8mb4 collate utf8mb4_unicode_ci;

3.3、安装 SQLE

安装 Docker 时,如果服务器可以联网,那么在执行 docker run 命令是会自动拉去镜像;如果服务器不能联网,需要在可以联网的服务器下载镜像,然后导入到安装服务器。

# 下载镜像
docker pull actiontech/sqle-ce:latest

# 保存镜像
docker save actiontech/sqle-ce:latest > sqle.tar

# 在安装服务器加载镜像
docker load < sqle.tar

# 启动 SQLE
# 注意替换 IP

docker run -d \
--name sqle-server \
-p 10000:10000 \
-p 10001:10001 \
-e MYSQL_HOST="IP" \
-e MYSQL_PORT=3306 \
-e MYSQL_USER="root" \
-e MYSQL_PASSWORD="sqle2023" \
-e MYSQL_DMS_SCHEMA="dms" \
-e MYSQL_SQLE_SCHEMA="sqle" \
actiontech/sqle-ce:latest

# 查看容器状态
docker ps 

# 查看容器日志
docker logs -f sqle-server

安装完成后访问服务器 10000 端口号,看到如下页面就完成安装了。

SQLE 3.0 界面

总结

4.1 整体过程

  • RPM 安装:整体安装流程比较清晰,按照官方文档可以正常完成安装部署,需要注意的是 secret_key 字段配置有两处,如果由于配置文件没写正确,导致安装失败建议删除数据库后重新尝试,避免第一次启动初始化的数据不正确,影响后续安装。

  • Docker 安装:基于 Docker 安装还是方便,全程无坑五分钟部署完成,整体安装体验非常优秀。

4.2 RPM 安装遇到的问题

端口错误

安装文档中说默认端口是 10000,但实际安装后默认端口为 7601

安装文档描述

默认配置文件

雍正喵提示:配置文件已修改,感谢纠错。

建库语句待优化

语句后面没有带 ; 结尾,需要手动补充。 image-20231025134600486

雍正喵提示:用户手册当前已修改,可以直接复制使用。

其它没能理解的地方

RPM 安装后已经将服务注册至 systemd 管理,为何还有使用 shell 脚本启动应用,而不是 systemctl start sqld

雍正喵提示:SQLE当前包含两个服务。为了减少启动阻碍,所以将两个服务的启动指令写在一个脚本文件中,启动时,直接执行脚本即可。

4.3 Docker 安装遇到的问题

Docker 命令的问题

官方给出的的 docker run -d -it 一起使用,但是 -d 表示后台运行,-it 表示交互运行,怎么可以又后台又交互呢?实际实行效果是只有 -d 生效。

雍正喵提示:排期研发中。

配置文件问题

目前配置文件无法修改了,因为在容器内部,也就是说端口号修改,需要自己想办法。

解决办法也很简单,有两种比较容易实现的方式:

  1. 使用 docker cp 命名将配置文件复制到宿主机进行修改,修改完成后再使用 docker cp 命令复制到容器中,重启容器生效。缺点就是删除容器后重建,配置文件会丢失。

  2. 使用 dockr run -v 参数,将配置文件从外部挂载到容器内。

容器的运行方式上

基于容器的部署尽量是单容器和单进程, SQLE 的容器中包含了两个进程一个 dms 一个 sqled。建议拆分成两个单独的容器,这样可以修改配置后单独重启其中一个服务。不过目前来看,这个问题并不影响现在的部署。

雍正喵提示:SQLE 当前由 sqle 和 dms 两个服务组件构成,只有这两个服务同时运行,SQLE 才能正常使用。将两个服务配置在一套容器中,是综合考虑了部署难度及维护成本决定的。

更多技术文章,请访问:https://opensource.actionsky.com/

关于 SQLE

SQLE 是一款全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。

SQLE 获取

类型地址
版本库https://github.com/actiontech/sqle
文档https://actiontech.github.io/sqle-docs/
发布信息https://github.com/actiontech/sqle/releases
数据审核插件开发文档https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1311707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习--归一化处理

归一化 归一化的目的 归一化的一个目的是&#xff0c;使得梯度下降在不同维度 θ \theta θ 参数&#xff08;不同数量级&#xff09;上&#xff0c;可以步调一致协同的进行梯度下降。这就好比社会主义&#xff0c;一小部分人先富裕起来了&#xff0c;先富带后富&#xff0c…

XUbuntu22.04之npm解决pm WARN deprecated(一百九十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

基于vue实现的疫情数据可视化分析及预测系统-计算机毕业设计推荐django

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Kafka-Kafka基本原理与集群快速搭建

一、Kafka介绍 ​ ChatGPT对于Apache Kafka的介绍&#xff1a; Apache Kafka是一个分布式流处理平台&#xff0c;最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统&#xff0c;可以快速地处理…

从计算机底层深入Golang高并发

从计算机底层深入Golang高并发 1.源码流程架构图 2.源码解读 runtime/proc.go下的newpro() func newproc(fn *funcval) {//计算额外参数的地址argpgp : getg()pc : getcallerpc()//s1使用systemstack调用newproc1 systemstack(func() {newg : newproc1(fn, gp, pc)_p_ : getg…

经典文献阅读之--SST-Calib(激光雷达与相机的同步时空参数标定法)

0. 简介 借助多种输入模态的信息&#xff0c;基于传感器融合的算法通常优于单模态。具有互补语义和深度信息的相机和激光雷达是复杂驾驶环境中的典型传感器配置。然而&#xff0c;对于大多数相机和激光雷达融合的算法&#xff0c;传感器的标定将极大地影响性能。具体来说&…

RabbitMq的详细使用

消息队列RabbitMQ详细使用 文章目录 消息队列RabbitMQ详细使用MQ 的相关概念什么是MQ为什么要用MQMQ 的分类MQ 的选择 RabbitMQRabbitMQ 的概念四大核心概念各个名词介绍安装RabbitMQWeb管理界面及授权操作Docker 安装Hello world简单示例 Work Queues轮训分发消息消息应答自动…

JWT令牌的作用和生成

JWT令牌&#xff08;JSON Web Token&#xff09;是一种用于身份验证和授权的安全令牌。它由三部分组成&#xff1a;头部、载荷和签名。 JWT令牌的作用如下&#xff1a; 身份验证&#xff1a;JWT令牌可以验证用户身份。当用户登录后&#xff0c;服务器会生成一个JWT令牌并返回…

Turtle绘制菱形-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第16讲。 Turtle绘制菱形&a…

bugku--- 比赛真题1-3

第一题 查看源代码直接就有 第二题 万能密码直接填 第三题

Vue2.x源码:new Vue()做了啥

例子1new Vue做了啥?new Vue做了啥,源码解析 initMixin函数 初始化 – 初始化Vue实例的配置initLifecycle函数 – 初始化生命周期钩子函数initEvents – 初始化事件系统初始化渲染 initRender初始化inject选项 例子1 <div id"app"><div class"home&…

JVM之堆学习

一、Java虚拟机内存结构图 二、堆的介绍 1. 前面学习的程序计数器&#xff0c;虚拟机栈和本地方法栈都是线程私有的&#xff0c;堆是线程共享的&#xff1b; 2. 通过 new 关键字&#xff0c;创建的对象都会使用堆内存&#xff0c;其特点是&#xff1a; 它是线程共享的&#x…

pytorch文本分类(二):引入pytorch处理文本数据

pytorch文本数据处理 目录 pytorch文本数据处理1. Pytorch背景2. 数据分割3. 数据加载Dataset代码分析字典的用途代码修改的目的 Dataloader 4. 练习 原学习任务链接 相关数据链接&#xff1a;https://pan.baidu.com/s/1iwE3LdRv3uAkGGI2fF9BjA?pwdro0v 提取码&#xff1a;ro…

flume系列之:监控flume agent channel的填充百分比

flume系列之:监控flume agent channel的填充百分比 一、监控效果二、获取flume agent三、飞书告警四、获取每个flume agent channel的填充百分比一、监控效果 二、获取flume agent def getKafkaFlumeAgent():# 腾讯云10.130.112.60zk = KazooClient(hosts

CleanMyMac X这一款mac电脑清理垃圾文件软件好用吗?

CleanMyMac X您的 Mac。极速如新。点按一下&#xff0c;即可优化调整整个 Mac畅享智能扫描 — 这款超级简单的工具用于优化您的 Mac。只需点按一下&#xff0c;即可运行所有任务&#xff0c;让您的 Mac 保持干净、快速并得到最佳防护。CleanMyMac 是一款功能强大的 Mac 清理程序…

网络基础——路由协议及ensp操作

目录 一、路由器及路由表 1.路由协议&#xff1a; 2.路由器转发原理&#xff1a; 3.路由表&#xff1a; 二、静态路由优缺点及特殊静态路由默认路由 1.静态路由的优缺点&#xff1a; 2.下一跳地址 3.默认路由 三、静态路由配置 四、补充备胎 平均负载 五、补充&…

计算机系统结构MIPS流水线

题目 其中&#xff1a;R3的初值是R2396。假设&#xff1a;在整个代码序列的运行过程中&#xff0c;所有的存储器访问都是命中的&#xff0c;并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问&#xff1a; &#xff08;1&#xff09;在没有任…

java写个爬虫抓取汽车之家车型配置参数

前几天有个搞工程的表弟找我&#xff0c;问我什么车好&#xff0c;可以经常跑工地的&#xff0c;看上去又有面子。于是我挥动发财的小手&#xff0c;写一个爬虫程序&#xff0c;筛选并整理了一些数据&#xff0c;并附上下载的图片提供参考&#xff0c;看中了果断第二天提车到手…

构造以太网交换网络

VLAN技术&#xff0c;这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域&#xff0c;VLAN内的主机间通信就和在一个LAN内一样&#xff0c;而VLAN间则不能直接互通&#xff0c;这样&#xff0c;广播报文就被限制在一个VLAN内。 二层 vlan 实验 1.路由器固定i…

Monkey工具之fastbot-iOS实践

背景 目前移动端App上线后 crash 率比较高&#xff0c; 尤其在iOS端。我们需要一款Monkey工具测试App的稳定性&#xff0c;更早的发现crash问题并修复。 去年移动开发者大会上有参加 fastbot 的分享&#xff0c;所以很自然的就想到Fastbot工具。 Fastbot-iOS安装配置 准备工…