部署方式

集中式主备部署
单机部署一般会在两台服务器上分别运行主实例和备实例,通过主备复制实现主库的修改同步到备库
分布式部署
多活共享集群部署
共享集群在硬件层面需要依赖共享存储,所有实例均可读写,实例之间通过全局缓存实现数据交换。
环境部署
环境说明
| 配置项 | 配置值 | 描述说明 |
|---|---|---|
| IP | 192.168.10.181 | |
| 主机名称 | progs | |
| 操作系统版本 | rhel 7.6 | |
| YashanDB软件版本 | 23.2.1 |
默认端口
| 部署形态 | 数据库监听 | yasom | yasagent | 服务器间通信 |
|---|---|---|---|---|
| 单机部署 | 1688 | 1675 | 1676 | 1689 |
| 分布式 | MN:1678 CN:1688 DN:1698 | 1675 | 1676 | MN:1679、1680 CN:1689、1690 DN:1699、1700 |
| 共享集群 | 1688 | 1675 | 1676 | 1689、1670 |
目录划分
所有YashanDB的实例节点都必须规划YASDB_HOME 和YASDB_HOME两个目录
- HOME目录:YashanDB的产品目录,包含YashanDB所提供的命令、数据库运行所需的库及各关键组件。由
--install-path选项指定- 运行日志目录:默认为HOME目录/yashandb/版本号/log
- DATA目录:YashanDB的数据目录,包含数据库的各类系统数据文件、部分日志文件和配置文件。由
--data-path选项指定
系统环境配置
防火墙
## 关闭防火墙
systemctl stop firewalld
## 关闭开机自启
systemctl disable firewalld
端口白名单
# 查看防火墙端口开放情况
firewall-cmd --zone=public --list-ports
# 添加端口到防火墙
## 以1688为例演示如何添加端口到防火墙中
firewall-cmd --zone=public --add-port=1688/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=1688/tcp
# 从白名单中删除已添加的端口
firewall-cmd --zone=public --remove-port=1688/tcp --permanent
清理共享内存(共享集群部署)
# 如部署YashanDB共享集群,需在所有服务器上清理共享内存。
ipcrm -a
创建单独用户
useradd -d /home/yashan -m yashan
echo "yashan"|passwd --stdin yashan
~]# id yashan
uid=54334(yashan) gid=54334(yashan) groups=54334(yashan)
配置sudo
chmod +w /etc/sudoers vi /etc/sudoers yashan ALL=(ALL)NOPASSWD:ALL chmod -w /etc/sudoers
添加安装用户加入YASDBA用户组
groupadd YASDBA usermod -a -G YASDBA yashan
创建软件目录
# 软件home目录
mkdir -p /ups/app/yashandb
chown -R yashan:yashan /ups/app/yashandb
# 数据目录
mkdir -p /ups/data/yashandb
chown -R yashan:yashan /ups/data/yashandb
# 创建目录install
mkdir -p /home/yashan/install
资源限制
| 资源项 | 描述 | 推荐值 |
|---|---|---|
| open files | 文件句柄 | 1048576 |
| max user processes | 最大用户线程数 | 1048576 |
| max memory size | 最大内存限制 | unlimited |
| stack size | 堆栈大小 | 8192 |
cat >> /etc/security/limits.conf <<-'EOF'
* soft nofile 1048576
* hard nofile 1048576
* soft nproc 1048576
* hard nproc 1048576
* soft rss unlimited
* hard rss unlimited
* soft stack 8192
* hard stack 8192
EOF
数据库部署
解压软件包
su - yashan
cd /ups/app/yashandb/install
tar -zxf yashandb-personal-23.2.1.100-linux-x86_64.tar.gz

创建安装参数文件
单机单节点
./bin/yasboot package se gen --cluster yashandb -u yashan -p yashan --ip 192.168.10.181 --port 22 --install-path /ups/app/yashandb --data-path /ups/data/yashandb --begin-port 1688

当前目录下生成了yashandb.toml和hosts.toml 两个配置文件。
yashandb.toml:数据库集群的配置文件。hosts.toml:服务器的配置文件。
单机主备
./bin/yasboot package se gen --cluster yashandb -u yashan -p yashan --ip 192.168.10.181,192.168.10.182 --port 22 --install-path /ups/app/yashandb --data-path /ups/data/yashandb --begin-port 1688 --node 2
参数说明
| 参数 | 说明 |
|---|---|
| –cluster | 指定数据库集群名称,该名称也将作为初始数据库的名称(database name) |
| –port | 指定SSH服务端口 |
| –install-path | 指定数据库安装路径 |
| –data-path | 指定数据存放目录 |
| –begin-port | 指定数据库监听端口 |
Usages: yasboot package se gen [<flags>]
gen standalone type yasboot deploy config
Flags:
-h,--help Show detailed help information.
-c,--cluster yasdb cluster name
-u,--username host ssh username
--groupname host ssh groupname
-p,--password host ssh password
-N,--no-password ssh passwordless
--ip host ssh ipaddr
--port host ssh port
-i,--install-path package install path
-su,--sudo-username host ssh sudo username
-sp,--sudo-password host ssh sudo password
--no-add-yasdba no add user to YASDBA group(default: false)
--boot-start-monit boot start monit(append start command to /etc/rc.local), need sudo privilege(default: false)
--host host expression
-L,--local deploy in local host and no need install pkg(default: false)
--ipv6 locally deploy with IPv6, default Ipv4.(default: false)
--listen-cidr listen cidr address, such as '0.0.0.0/0'
--begin-port begin port(default: 1688)
--data-path yasdb node data path
-f,--force do not check host info(default: false)
-o,--output output path
--node standalone db number(default: 1)
--replica-cidr replica cidr address, such as '0.0.0.0/0'
--create-cgroup create yasdb resource cgroup path(default: false)
--cgroup-path cgroup path(default: /sys/fs/cgroup)
--recommend-param enable recommend param
--memory-limit host memory use limit, unit is percentage(default: 80)
--table-type main table type, default HEAP in SE, LSC in DE
执行安装YashanDB数据库软件命令
./bin/yasboot package install -t hosts.toml -i yashandb-personal-23.2.1.100-linux-x86_64.tar.gz

部署YashanDB数据库
./bin/yasboot cluster deploy --child -t yashandb.toml

配置环境变量
cat /ups/app/yashandb/yashandb/23.2.1.100/conf/yashandb.bashrc >> ~/.bashrc
source ~/.bashrc

设置YashanDB数据库中sys用户密码(Yashan#1356)
YashanDB不提供系统初始口令
方案1
通过yasboot工具设置数据库sys用户的密码
yasboot cluster password set -n Yashan#1356 -c yashandb
方案2
cd $YASDB_DATA/instance
mv yasdb.pwd yasdb1.pwd
yaspwd file=yasdb.pwd

查看YashanDB数据库状态
yasboot cluster status -c yashandb

登陆连接数据库
yasql sys/Yashan#1356
yasboot sql -d sys/"Yashan#1356"@192.168.10.181:1688

小结
今天尝试安装yashandb个人版,整体过程参照附件中的官方文档,新手也可以按照步骤一步步往下操作都能成功,这点还是挺好的。一开始的时候,不熟悉数据库架构,就会可能产生以下一些困惑的地方:
- 在Liux环境中,既然使用tar包解压后,仍然需要再次安装一次软件,初看上面2个目录生成的文件目录结构一样,让人感觉重复的操作有点费劲。浪费磁盘空间,或者说文件散落到处存放。
- YASDB_HOME目录下还存yashandb-personal-23.2.1.100-linux-x86_64.tar.gz包,不如有什么用还留着。
- 生成安装参数文件的命令有点长,既然个人版只有单机,也就没必要配置OS用户, ssh密码用不上的参数项。
等到,继续深入了解熟悉后,特别是考虑到多节点部署,shared-nothing的思想后,上面的问题都会一一地不攻自破。总体还是需要一步步学习思考
今天搭建好了学习测试环境,后续的更多的实践练习提供了便利。等会先创建个快照,不想再安装了。如果有docker环境就不怕环境破环后重装搭建环境。
附录
YCA官方报名链接:https://www.yashandb.com/YCA_courses
参考文档
https://doc.yashandb.com/yashandb/23.2/zh/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/YashanDB%E4%BA%A7%E5%93%81%E5%AE%89%E8%A3%85/YashanDB%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%AE%89%E8%A3%85.html
最后修改时间:2024-07-11 16:12:19
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




