feat: support oceanbase-ce (#1180)

* feat: support oceanbase-ce

* chore: update version to 4.2.1

---------

Co-authored-by: 玉楼 <rongfeng.frf@alibaba-inc.com>
This commit is contained in:
Rongfeng Fu 2024-04-02 13:07:36 +05:30 committed by GitHub
parent f8f5391733
commit b12b858fe5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 164 additions and 0 deletions

View File

@ -0,0 +1,56 @@
additionalProperties:
formFields:
- default: ''
edit: true
envKey: OB_ROOT_PASSWORD
labelEn: password of sys@root
labelZh: SYS租户密码
required: false
type: password
- default: 2881
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ''
edit: true
envKey: OB_INSTALL_PATH
labelEn: install_path
labelZh: 安装目录 (默认为1panel安装目录需要最少10G空间)
required: false
type: text
- default: 'test'
edit: true
envKey: OB_TENANT_NAME
labelEn: tenant_name
labelZh: 租户名
required: true
rule: paramCommon
type: text
- default: 6
edit: true
envKey: OB_MEMORY_LIMIT
labelEn: memory_limit
labelZh: 内存 (单位G)
required: true
rule: paramPort
type: number
- default: 5
edit: true
envKey: OB_DATAFILE_SIZE
labelEn: datafile_size
labelZh: 数据文件大小 (单位G)
required: true
rule: paramPort
type: number
- default: 5
edit: true
envKey: OB_LOG_DISK_SIZE
labelEn: log_disk_size
labelZh: 日志文件大小 (单位G)
required: true
rule: paramPort
type: number

View File

@ -0,0 +1,27 @@
version: '3'
services:
oceanbase:
image: oceanbase/oceanbase-ce:4.2.1
container_name: ${CONTAINER_NAME}
restart: always
environment:
OB_MEMORY_LIMIT: ${OB_MEMORY_LIMIT}G
OB_DATAFILE_SIZE: ${OB_DATAFILE_SIZE}G
OB_LOG_DISK_SIZE: ${OB_LOG_DISK_SIZE}G
OB_ROOT_PASSWORD: ${OB_ROOT_PASSWORD}
OB_TENANT_NAME: ${OB_TENANT_NAME}
MODE: mini
OB_CLUSTER_NAME: ob_1panel
networks:
- 1panel-network
volumes:
- ${HOME_PATH:-./data/ob}:/root/ob
- ./data/.obd:/root/.obd
ports:
- ${PANEL_APP_PORT_HTTP}:2881
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -0,0 +1,14 @@
source ./.env
LOG='./init.log'
mkdir -p $PWD/data/.obd 2>&1 >> $LOG || exit 11
if [ "x$OB_INSTALL_PATH" != "x" ]; then
HOME_PATH="$OB_INSTALL_PATH/ob/$CONTAINER_NAME"
echo "link $HOME_PATH to $PWD/data/ob" >> $LOG
mkdir -p $HOME_PATH 2>&1 >> $LOG || exit 10
ln -sf $HOME_PATH ./data/ob 2>&1 >> $LOG || exit 12
echo "HOME_PATH=$HOME_PATH" >> ./.env
else
mkdir -p $PWD/data/ob 2>&1 >> $LOG || exit 10
echo "install path not set" >> $LOG
fi

View File

@ -0,0 +1,7 @@
source ./.env
LOG='./uninstall.log'
HOME_PATH=`realpath $PWD/data/ob/`
echo "remove $HOME_PATH" >> $LOG
rm -fr $PWD/data/ob/ 2>&1 >> $LOG || exit 10

42
apps/oceanbase/README.md Normal file
View File

@ -0,0 +1,42 @@
# OceanBase
为现代数据架构打造的开源分布式数据库。兼容 MySQL 的单机分布式一体化国产开源数据库具有原生分布式架构支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。OceanBase 内核通过大规模商用场景的考验,已服务众多行业客户;面向未来携手社区生态伙伴,共建开源开放的数据库内核和生态。
## 使用说明
1. 默认配置为最小配置,请勿再调小
2. SYS租户密码是SYS租户root账号的密码并非业务租户的密码业务租户请登录业务租户后自行修改
3. 请使用业务租户不要直接使用SYS租户
4. 您可以使用 mysql 客户端链接业务租户,比如 mysql -h127.0.0.1 -P2881 -uroot@test
1. 其中 2881 为默认端口,请自行修改为对应的配置端口
2. 其中 test 为默认业务租户名,请自行修改为对应的配置租户名
5. 请确保安装目录为剩余空间大于 数据文件大小 + 日志文件大小
6. OceanBase 的存储空间是预分配的,因此数据库启动时便会根据配置占用对应的空间,不必因为磁盘使用空间突然增加而担忧
7. 卸载时将自动清理数据文件,卸载前请确保数据已备份
## 核心特性
### 高可用
独创 “三地五中心” 容灾架构方案,建立金融行业无损容灾新标准。支持同城/异地容灾,可实现多地多活,满足金融行业 6 级容灾标准RPO=0RTO< 8s数据零丢失
### 高兼容
高度兼容 Oracle 和 MySQL覆盖绝大多数常见功能支持过程语言、触发器等高级特性提供自动迁移工具支持迁移评估和反向同步以保障数据迁移安全可支撑金融、政府、运营商等关键行业核心场景替代。
### 水平扩展
实现透明水平扩展,支持业务快速的扩容缩容,同时通过准内存处理架构实现高性能。支持集群节点超过数千个,单集群最大数据量超过 3PB最大单表行数达万亿级。
### 低成本
基于 LSM-Tree 的高压缩引擎,存储成本降低 70% - 90%;原生支持多租户架构,同集群可为多个独立业务提供服务,租户间数据隔离,降低部署和运维成本。
### 实时 HTAP
基于“同一份数据,同一个引擎”,同时支持在线实时交易及实时分析两种场景,“一份数据”的多个副本可以存储成多种形态,用于不同工作负载,从根本上保持数据一致性。
### 安全可靠
自 2010 年开始完全自主研发,代码级可控,自研单机分布式一体化架构,连续多年通过大规模金融核心场景的可靠性验证;完备的角色权限管理体系,数据存储和通信全链路透明加密,支持国密算法,通过等保三级专项合规检测。

18
apps/oceanbase/data.yml Normal file
View File

@ -0,0 +1,18 @@
name: OceanBase
tags:
- 数据库
title: OceanBase
description: 兼容 MySQL 的单机分布式一体化国产开源数据库
additionalProperties:
key: oceanbase
name: OceanBase
tags:
- Database
shortDescZh: 兼容 MySQL 的单机分布式一体化国产开源数据库
shortDescEn: Dstributed Cluster
type: runtime
crossVersionUpdate: false
limit: 0
website: https://open.oceanbase.com/
github: https://github.com/oceanbase/oceanbase
document: https://www.oceanbase.com/docs

BIN
apps/oceanbase/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB