暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

YashanDB v23.3 容器镜像构建指南

原创 严少安 2025-01-17
146

前情回顾

2024 年 11 月 14 日,在深圳参加了“2024国产数据库创新生态大会”,大会上正式发布了 YashanDB V23.3 版本,以及 YAC 共享集群、YCP 私有云管平台、YashanDB 数据库一体机等产品。我也有幸拿到了樊院士签名版的“崖山共享集群 YAC”纪念光盘。

微信图片_20250120085448.jpg

前段时间,崖山 SQL 学习社区 SQLab 正式上线,我在 SQLab 种下一颗圣诞树

YashanDB 23.3 新特性

23 年 11 月,我分享过如何安装 YashanDB 个人版,以及构建 YashanDB 个人版 Docker 镜像。当时基于 YashanDB v23.1.1 版本,一年多时间里 YashanDB 升级了两个大版本,当前最新版本为 v23.3.2。

  • YashanDB 23.1.1。发版日期:2023-10-16
  • YashanDB 23.2.1。发版日期:2024-04-01
  • YashanDB 23.3.1。发版日期:2024-09-30

我们先来回顾一下从 23.1.1 到 23.3.1 的主要变动。

内核增强

  1. (23.1.3) 单机部署下的 HEAP 表新增 XMLTYPE 数据类型。
  2. (23.1.3) Hint。提供 BULKLOAD 提示项,用于指定 LSC 表直接插入稳态数据。
  3. (23.2.1) 支持 GB18030 字符集
  4. (23.2.1) 支持在线重命名表空间和索引。
  5. (23.2.1) 支持只读外部表。
  6. (23.2.1) 空间数据 GIS 能力增强。
  7. (23.2.3) Oracle 兼容性。具备通过 DBLINK 连接 Oracle 数据库能力。
  8. (23.2.3) 支持 CDC 接口和 Java 的 API。通过解析 Redo 日志,捕获数据变更。
  9. (23.2.4) CTE 支持递归功能。
  10. (23.3.1) 全面增强 Oracle 兼容性。
  11. (23.3.1) 安全能力增强,支持国密算法。

版本升级

  1. (23.2.1) 支持小版本滚动升级。支持通过 yasboot 工具滚动升级已经部署的数据库。

工具

  1. (23.1.3) yasboot 工具备份恢复。实现对数据库的远端备份恢复。
  2. (23.2.1) 支持一键式收集操作系统和数据库信息。
  3. (23.2.5) yasql。通过 @@ 实现调用当前脚本的路径作为相对路径的基准点 SQL 脚本文件,方便嵌套脚本,适合处理多层级的脚本调用。

驱动

  1. (23.2.1) 支持配置多 IP。包含主备的 IP,当数据库发生主备切换时,驱动配置无需修改,应用可以连接到新的主库上,实现业务快速恢复。
  2. (23.2.1) 支持使用域名连接数据库。
  3. (23.2.4) 支持识别 STANDBY 角色。只读应用可以配置 STANDBY 角色数据库连接串,JDBC 自动连接到备库,实现应用的读写分离能力。

MySQL 兼容

  1. (23.3.1) 新增兼容原生 MySQL 数据库模式。兼容 MySQL 5.7 原生驱动协议、大部分数据类型、常用的 SQL 语法、内置函数、系统视图。

生态

  1. (23.1.4) YashanDB 适配 SQLAlchemy 框架。用户可通过 SQLAlchemy 工具操作 YashanDB。
  2. (23.2.1) 支持 Hadoop User Experience(HUE)。使用户更好的使用 HUE 在 YashanDB 上进行数据分析、报表生成、SQL查询和任务调度等工作。

注:这里不包含共享集群和分布式产品能力,另行成文。

YashanDB 个人版 23.3

YashanDB 个人版,是面向个人用户推出的免费试用版本,该版本包含 YashanDB 数据库所有基础核心能力,支持单机主备部署形态,配套开发者工具,供个人用户或开发者用于学习、测试、开发用途。

关于安装 YashanDB 个人版的步骤,过去安装 v23.1 时可调用安装包中提供的安装脚本,但是,现在推荐使用 yasboot 工具安装 YashanDB v23.3,步骤更简洁,管理更方便。

安装步骤主要分三步:

  1. 准备 openssl 1.1.1l 源码包,编译、安装 openssl。创建用户 yashan

具体步骤参考:YashanDB实战:YAC共享集群入门篇 – 安装依赖包、创建用户

  1. 从官网下载 yashandb personal 安装包,上传到服务器,并解压。

下载链接:https://download.yashandb.com/download

yaspe.png

  1. 使用 yasboot 工具,安装、部署崖山数据库。

YashanDB 单机部署支持交互式部署和手动部署,为了方便制成 dockerfile 这里简要演示如何使用 yasboot 手动部署单节点。

(1) 执行 yasboot package se gen 命令生成配置文件。

yasboot package se gen --cluster yashandb -L --data-path /home/yashan/yasdb_data
复制

其中,se 表示单机部署,-L 表示本地部署(不需要安装包)。

(2) 执行安装。

yasboot package install -t hosts.toml
复制

(3) 部署数据库

yasboot cluster deploy -t yashandb.toml
复制

(4) 配置环境变量

echo '. /home/yashan/yasdb_home/conf/yashandb.bashrc' >> /home/yashan/.bashrc
复制

(5) 设置密码

yasboot cluster password set -n yasdb_123 -c yashandb
复制

其中,-n 表示新密码,如果后面需要修改密码,可以通过参数 -o 指定旧密码。

知识扩展:yasboot

yasboot 是 YashanDB 提供的配套运维管理工具,主要用于在数据库集群环境中对 YashanDB 进行运维管理操作。它支持多种功能模块和操作,如:安装部署、实例启停、主备切换、AC 发现、IP 更换、SQL 执行等,帮助用户高效完成数据库的配置、运维和管理任务。

示例:

执行单条 SQL 语句。

[yashan@yas ~]$ yasboot sql -d 'sys/yasdb_123@127.0.0.1:1688' -c yashandb -s 'select version from v$instance;'

VERSION
----------------------------------------------------------------
Personal Edition Release 23.3.1.100 x86_64

1 row fetched.
复制

知识扩展:开机自启

我们可以通过操作系统层面的 rc.local 或 system service 两种方式配置 YashanDB 开机自启。

具体配置步骤,参考:

YashanDB 开机自启 https://www.yashandb.com/newsinfo/7079286.html

构建容器镜像

通过以上内容的讲解,我们大体了解了 YashanDB 个人版的安装流程。那么,经过梳理我们可以自定义一份 Dockerfile,以此按需构建容器镜像。

FROM shawnyan.cn/rl9_dnf

COPY openssl-1.1.1l.tar.gz /tmp
RUN cd /tmp && tar zxf openssl-1.1.1l.tar.gz && cd openssl-1.1.1l \
 && ./config --prefix=/usr/local/openssl && make && make install \
 ...
 
RUN useradd yashan

COPY yashandb-personal-23.3.1.100-linux-x86_64.tar.gz /tmp
RUN mkdir /home/yashan/yasdb_home \
 && tar zxf /tmp/yashandb-personal-23.3.1.100-linux-x86_64.tar.gz -C /home/yashan/yasdb_home

RUN su - yashan -c "/home/yashan/yasdb_home/bin/yasboot package se gen --cluster yashandb -L --data-path /home/yashan/yasdb_data" \
 && su - yashan -c "/home/yashan/yasdb_home/bin/yasboot package install -t hosts.toml" \
 && su - yashan -c "/home/yashan/yasdb_home/bin/yasboot cluster deploy -t yashandb.toml" \
 && su - yashan -c "echo '. /home/yashan/yasdb_home/conf/yashandb.bashrc' >> /home/yashan/.bashrc" \
 && su - yashan -c "/home/yashan/yasdb_home/bin/yasboot cluster password set -n yasdb_123 -c yashandb"

COPY yashandb.service /etc/systemd/system/
RUN systemctl enable yashandb.service

EXPOSE 1688
复制

构建完成后,查看镜像。

[root@rl9 ~]# podman images yashandb
REPOSITORY            TAG            IMAGE ID      CREATED      SIZE
shawnyan.cn/yashandb  personal-23.3  1e4b7787382a  5 hours ago  2.78 GB
复制

运行容器。为了避免数据丢失,可以将数据目录挂载到宿主机,例如:

podman run -d --name yas \
-v /host/data:/home/yashan/yasdb_data \
shawnyan.cn/yashandb:personal-23.3
复制

进入容器,连接数据库,查看用户信息。

[yashan@yas ~]$ yasql / as sysdba
YashanDB SQL Personal Edition Release 23.3.1.100 x86_64

Connected to:
YashanDB Server Personal Edition Release 23.3.1.100 x86_64 - Linux

SQL> select username, account_status, created from dba_users;

USERNAME                                                         ACCOUNT_STATUS                                        CREATED
---------------------------------------------------------------- ----------------------------------------------------- ------------------------------------------------
SYS                                                              OPEN                                                  2025-01-17
INFORMATION_SCHEMA                                               LOCKED                                                2025-01-17
MYSQL                                                            LOCKED                                                2025-01-17
XA_SYS                                                           LOCKED                                                2025-01-17
MDSYS                                                            LOCKED                                                2025-01-17

5 rows fetched.
复制

吐槽与期待

YashanDB 知识库目前包含了很多文章,官方文档也比较全面,Chat 智能问答系统也上线了,但是,还有很多功课要做。可以增设 YashanDB 社区专栏,把大家写的文章都收集整理起来,一并接入搜索。期待 YashanDB 知识库的搜索更好用。

本节内容就到这里。欢迎留言交流,点赞转发。

Have a nice day ~


🌻 往期精彩 ▼

– / END / –

👉 这里可以找到我

👉 这里有得聊

如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。
关注微信公众号:少安事务所,后台回复[群],即可看到入口。

如果这篇文章为你带来了灵感或启发,就请帮忙点『』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~

最后修改时间:2025-01-20 17:51:48
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论

鲁鲁
暂无图片
2月前
评论
暂无图片 0
YashanDB v23.3 容器镜像构建指南
2月前
暂无图片 点赞
评论