From c51983f202dfbe0811f1d77e7893827bd2b30318 Mon Sep 17 00:00:00 2001 From: Rongfeng Fu Date: Tue, 2 Apr 2024 13:07:36 +0530 Subject: [PATCH] feat: support oceanbase-ce (#1180) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: support oceanbase-ce * chore: update version to 4.2.1 --------- Co-authored-by: 玉楼 --- oceanbase/4.2.1/data.yml | 56 +++++++++++++++++++++++++++ oceanbase/4.2.1/docker-compose.yml | 27 +++++++++++++ oceanbase/4.2.1/scripts/init.sh | 14 +++++++ oceanbase/4.2.1/scripts/uninstall.sh | 7 ++++ oceanbase/README.md | 42 ++++++++++++++++++++ oceanbase/data.yml | 18 +++++++++ oceanbase/logo.png | Bin 0 -> 3552 bytes 7 files changed, 164 insertions(+) create mode 100644 oceanbase/4.2.1/data.yml create mode 100644 oceanbase/4.2.1/docker-compose.yml create mode 100644 oceanbase/4.2.1/scripts/init.sh create mode 100644 oceanbase/4.2.1/scripts/uninstall.sh create mode 100644 oceanbase/README.md create mode 100644 oceanbase/data.yml create mode 100644 oceanbase/logo.png diff --git a/oceanbase/4.2.1/data.yml b/oceanbase/4.2.1/data.yml new file mode 100644 index 000000000..6ca5d01e0 --- /dev/null +++ b/oceanbase/4.2.1/data.yml @@ -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 \ No newline at end of file diff --git a/oceanbase/4.2.1/docker-compose.yml b/oceanbase/4.2.1/docker-compose.yml new file mode 100644 index 000000000..388186150 --- /dev/null +++ b/oceanbase/4.2.1/docker-compose.yml @@ -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 diff --git a/oceanbase/4.2.1/scripts/init.sh b/oceanbase/4.2.1/scripts/init.sh new file mode 100644 index 000000000..7d7e61d0c --- /dev/null +++ b/oceanbase/4.2.1/scripts/init.sh @@ -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 diff --git a/oceanbase/4.2.1/scripts/uninstall.sh b/oceanbase/4.2.1/scripts/uninstall.sh new file mode 100644 index 000000000..e56fa5615 --- /dev/null +++ b/oceanbase/4.2.1/scripts/uninstall.sh @@ -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 \ No newline at end of file diff --git a/oceanbase/README.md b/oceanbase/README.md new file mode 100644 index 000000000..9544e6440 --- /dev/null +++ b/oceanbase/README.md @@ -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=0,RTO< 8s),数据零丢失。 + +### 高兼容 + +高度兼容 Oracle 和 MySQL,覆盖绝大多数常见功能,支持过程语言、触发器等高级特性,提供自动迁移工具,支持迁移评估和反向同步以保障数据迁移安全,可支撑金融、政府、运营商等关键行业核心场景替代。 + +### 水平扩展 + +实现透明水平扩展,支持业务快速的扩容缩容,同时通过准内存处理架构实现高性能。支持集群节点超过数千个,单集群最大数据量超过 3PB,最大单表行数达万亿级。 + +### 低成本 + +基于 LSM-Tree 的高压缩引擎,存储成本降低 70% - 90%;原生支持多租户架构,同集群可为多个独立业务提供服务,租户间数据隔离,降低部署和运维成本。 + +### 实时 HTAP + +基于“同一份数据,同一个引擎”,同时支持在线实时交易及实时分析两种场景,“一份数据”的多个副本可以存储成多种形态,用于不同工作负载,从根本上保持数据一致性。 + +### 安全可靠 + +自 2010 年开始完全自主研发,代码级可控,自研单机分布式一体化架构,连续多年通过大规模金融核心场景的可靠性验证;完备的角色权限管理体系,数据存储和通信全链路透明加密,支持国密算法,通过等保三级专项合规检测。 + diff --git a/oceanbase/data.yml b/oceanbase/data.yml new file mode 100644 index 000000000..bd2eb3167 --- /dev/null +++ b/oceanbase/data.yml @@ -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 diff --git a/oceanbase/logo.png b/oceanbase/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f4436f966e5e78a949d533cde4f201ab80950672 GIT binary patch literal 3552 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 literal 0 HcmV?d00001