诸城营销型网站建设,wordpress回复插件,手机网站如何制作,住房和城乡建设部简称来自 1024 活动的投稿系列 第一篇《SQLE 3.0 部署实践》 . 作者#xff1a;张昇#xff0c;河北东软软件有限公司高级软件工程师#xff0c;腾讯云社区作者。 爱可生开源社区出品#xff0c;原创内容未经授权不得随意使用#xff0c;转载请联系小编并注明来源。 本文共 32…来自 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 --restartalways --name mysql \--networkhost \-e MYSQL_ROOT_PASSWORDsqle2023 \-e LANGC.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 修改配置文件
这里主要修改两个部分
数据库连接信息。secret_key可以使用 Linux 命令 uuidgen 生成记得删除“-”。
dms:id: 1api:addr: 0.0.0.0port: 10000enable_https: falsecert_file_path: ./etc/cert.pemkey_file_path: ./etc/key.pemsecret_key: 7fa9af029350433daceb899710ee3a62service:database:host: 127.0.0.1port: 3306username: rootpassword: sqle2023database: dmsdebug: truecloudbeaver:enable_https: falsehost: 127.0.0.1port: 8978admin_user: cbadminadmin_password: 123456sqle:id: 1dms_server_address: http://127.0.0.1:10000api:addr: 127.0.0.1port: 10001enable_https: falsecert_file_path: ./etc/cert.pemkey_file_path: ./etc/key.pemsecret_key: 7fa9af029350433daceb899710ee3a62service:auto_migrate_table: truedebug_log: falselog_path: ./logslog_max_size_mb: 1024log_max_backup_number: 2plugin_path: ./pluginsdatabase:mysql_host: 127.0.0.1mysql_port: 3306mysql_user: rootmysql_password: sqle2023mysql_schema: sqle
2.5 启动
cd /opt/sqle
chmod x scripts/init_start.sh
./scripts/init_start.sh
2.6 安装测试
查看服务进程。 访问 http://IP:10000默认账密 admin/admin正常登录系统。 Docker 安装
SQLE 3.0 也支持 Docker 安装方式。
3.1 安装环境准备
目前最新的 v3 版本已提供 Docker 安装方式部署方式。
3.2 安装 MySQL
与 RPM 包安装方式不同的是Docker 部署必须要先安装 MySQL并创建数据库否则应用无法正常启动。
为了简化安装我们使用 Docker 方式进行部署。
# Docker 运行 MySQL
docker run -d --restartalways --name mysql \--networkhost \-e MYSQL_ROOT_PASSWORDsqle2023 \-e LANGC.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
# 注意替换 IPdocker run -d \
--name sqle-server \
-p 10000:10000 \
-p 10001:10001 \
-e MYSQL_HOSTIP \
-e MYSQL_PORT3306 \
-e MYSQL_USERroot \
-e MYSQL_PASSWORDsqle2023 \
-e MYSQL_DMS_SCHEMAdms \
-e MYSQL_SQLE_SCHEMAsqle \
actiontech/sqle-ce:latest# 查看容器状态
docker ps # 查看容器日志
docker logs -f sqle-server
安装完成后访问服务器 10000 端口号看到如下页面就完成安装了。 总结
4.1 整体过程
RPM 安装整体安装流程比较清晰按照官方文档可以正常完成安装部署需要注意的是 secret_key 字段配置有两处如果由于配置文件没写正确导致安装失败建议删除数据库后重新尝试避免第一次启动初始化的数据不正确影响后续安装。 Docker 安装基于 Docker 安装还是方便全程无坑五分钟部署完成整体安装体验非常优秀。
4.2 RPM 安装遇到的问题
端口错误
安装文档中说默认端口是 10000但实际安装后默认端口为 7601。 雍正喵提示配置文件已修改感谢纠错。 建库语句待优化
语句后面没有带 ; 结尾需要手动补充。 雍正喵提示用户手册当前已修改可以直接复制使用。 其它没能理解的地方
RPM 安装后已经将服务注册至 systemd 管理为何还有使用 shell 脚本启动应用而不是 systemctl start sqld 雍正喵提示SQLE当前包含两个服务。为了减少启动阻碍所以将两个服务的启动指令写在一个脚本文件中启动时直接执行脚本即可。 4.3 Docker 安装遇到的问题
Docker 命令的问题
官方给出的的 docker run -d -it 一起使用但是 -d 表示后台运行-it 表示交互运行怎么可以又后台又交互呢实际实行效果是只有 -d 生效。 雍正喵提示排期研发中。 配置文件问题
目前配置文件无法修改了因为在容器内部也就是说端口号修改需要自己想办法。
解决办法也很简单有两种比较容易实现的方式
使用 docker cp 命名将配置文件复制到宿主机进行修改修改完成后再使用 docker cp 命令复制到容器中重启容器生效。缺点就是删除容器后重建配置文件会丢失。 使用 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