YashanDB 提供了一个免费的在线体验环境,直接通过浏览器访问,地址如下:
在线体验:https://sqlab.yashandb.com/
YashanDB 软件下载中心提供了 YashanDB 数据库以及配套的工具、驱动和中间件的安装文件。
http://download.yashandb.com/
建议参考官方部署文档进行安装:
https://doc.yashandb.com/yashandb/23.4/zh/All-Manuals/Installation-and-Upgrade/Installation-and-Deployment/00Installation-and-Deployment.html
YashanDB 提供了三种产品部署形态以适应不同场景需求。
单机部署:单机部署一般会在两台服务器上分别运行主实例和备实例,通过主备复制实现主库的修改同步到备库;一些对高可用要求较低的场景也可以只使用一台服务器仅运行一个实例。单机部署是比较常见的形态,适用于大多数场景。
共享集群:YashanDB 共享集群(YAC)是一款单库多实例的多活数据库系统,所有节点之间以强一致性方式实现并发读写,为高端核心业务提供了应用透明的透明多写、高可用、高扩展、高性能的数据库能力。
分布式集群:分布式集群部署采用存算分离部署架构;计算集群由一组多活计算实例组成,所有实例均可支持读写服务;存储集群由一组存储节点组成一个分布式智能存储集群。计算集群和存储集群可以按需灵活独立弹性。
分布式集群部署常应用于对高可用以及弹性能力有较高要求的交易、分析或者交易和分析混合场景。
下载镜像地址:https://download.yashandb.com/download
导入安装包
执行如下命令,导入安装包:
docker load -i yashandb-image-23.4.1.102-linux-x86_64.tar.gz
启动容器
docker run -d -p 1688:1688 -v /data/yashan/yashandb:/data/yashan -e SYS_PASSWD=password --name yashandb yashandb:yashandb-image-23.4.1.102-linux-x86_64
支持的环境变量如下:
参数名 参数描述
SYS_PASSWDsys
用户的密码(必须配置)
DB_BLOCK_SIZE 数据块大小
YAS_{建库参数} 支持所有建库参数,格式为YAS_参数名(例如YAS_REDO_FILE_SIZE表示建库参数REDO_FILE_SIZE),此处配置过的参数建库后不可修改
docker logs yashandb
DeployYasdbCluster任务状态为SUCCESS时,表示数据库安装成功。
不自己下载也没关系,我这里准备了镜像,有网有dockee就行,就可以拉取镜像
x86镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/yashandb:23.4.1.102
arrch64镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_yashandb:23.4.1.102
最安全和稳定性运行命令
docker run -d \
--name yashandb \
--restart unless-stopped \
-p 1688:1688 \
-v /data/yashan/yashandb/data:/data/yashan \
-v /data/yashan/yashandb/logs:/log_path \
-e SYS_PASSWD='YourStrong!Password123' \
--memory=16g \
--cpus=4 \
registry.cn-hangzhou.aliyuncs.com/qiluo-images/yashandb:23.4.1.102
高级安全增强版本
在基础版本上,进一步考虑网络安全和隔离。
docker run -d \
--name yashandb \
--restart unless-stopped \
--network custom_internal_network \
-p 172.16.10.100:1688:1688 \
-v /data/yashan/yashandb/data:/data/yashan \
-v /data/yashan/yashandb/logs:/log_path \
-e SYS_PASSWD='YourStrong!Password123' \
--memory=16g \
--cpus=4 \
--security-opt no-new-privileges:true \
registry.cn-hangzhou.aliyuncs.com/qiluo-images/yashandb:23.4.1.102
额外改进点:
自定义网络: --network custom_internal_network 让数据库运行在一个自定义的 Docker 网络中,实现容器间的网络隔离,提高安全性。你需要先创建这个网络:docker network create custom_internal_network。
绑定特定IP: -p 172.16.10.100:1688:1688 将端口绑定到宿主机的特定内网 IP 上,而不是所有 IP (0.0.0.0)。这样可以避免数据库端口暴露在公网,只允许内网或其他指定IP的服务器访问。
安全选项: --security-opt no-new-privileges:true 禁止容器内的进程获取新的特权,减小攻击面。
使用 Docker Compose (最佳实践)
对于生产环境,使用 docker-compose.yml 文件来管理服务是最佳实践,比一长串的命令行参数更清晰、更易于版本控制和维护。
创建 docker-compose.yml 文件:
version: '3.8'
services:
yashandb:
container_name: yashandb
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/yashandb:23.4.1.102
restart: unless-stopped
ports:
- "192.168.1.100:1688:1688" # 绑定到特定主机IP
environment:
- SYS_PASSWD=YourStrong!Password123
volumes:
- /data/yashan/yashandb/data:/data/yashan
- /data/yashan/yashandb/logs:/log_path
networks:
- yashan_net
deploy:
resources:
limits:
memory: 16G
cpus: '4'
networks:
yashan_net:
name: yashan_internal_network
driver: bridge
然后运行:
docker compose -p yashan_stack up -d
Docker Compose 的优势:
声明式配置: 所有配置在一个文件中,一目了然。
易于管理: 一键启动、停止、更新整个服务栈。
网络管理: 可以非常方便地定义和使用自定义网络。
总结与关键建议
密码! 密码! 密码! 生产环境绝对不要使用简单密码。使用随机生成的长密码,包含大小写字母、数字和特殊符号。可以考虑使用密码管理器或 Docker Secrets(更高级的用法)来管理。
备份数据卷: 确保 /opt/yashan/yashandb/data 目录有定期且可靠的备份策略。Docker 容器本身是无状态的,数据的安全性取决于你的备份。
资源监控: 部署后,使用 docker stats yashandb-prod 或更专业的监控工具(如 Prometheus+Grafana)来监控数据库容器的 CPU、内存和 IO 使用情况,并根据实际情况调整资源限制。
日志查询: 使用以下命令查看启动日志,确保服务正常运行。
docker logs -f yashandb