#共享集群部署
执行安装部署前,请以安装用户(yashan)登录192.168.1.2服务器,并进入/home/yashan/install安装目录。
$ cd /home/yashan/install
# 交互式部署
Note:
在执行交互式部署的过程中,输入相应配置后均需按Enter提交信息(步骤中将不再重复赘述),对于已设置默认值(形如
(default: xxx))且无需自定义调整的配置,直接按Enter进入下一步即可。如需在过程中退出程序,按Ctrl+C即可。
# 步骤1:配置部署信息
执行如下命令,进入交互式部署程序。
$ ./bin/yasboot init __ __ _ ____ ____ \ \ / /__ _ ___ | |__ __ _ _ __ | _ \ | __ ) \ V // _` |/ __|| '_ \ / _` || '_ \ | | | || _ \ | || (_| |\__ \| | | || (_| || | | || |_| || |_) | |_| \__,_||___/|_| |_| \__,_||_| |_||____/ |____/ Welcome to use YashanDB, this script will guide you to deploy YashanDB.在出现如下信息时,按需输入对应数字选择部署模式。
1:表示单服务器部署(single-host),且默认在当前服务器上部署,无需重复输入安装用户名和密码。
2:表示多服务器部署(multi-host),要求当前服务器必须是多台服务器之一,且要求所有服务器的安装用户(yashan)具备SSH权限且SSH的用户名、密码以及端口相互一致。
which installation mode for this deployment: 1) single-host: install locally, should not use SSH. 2) multi-host: install YashanDB to multiple hosts, SSH user & password required. (default: 1) please select > 2在出现如下信息时,按需输入对应数据选择部署形态。
1:表示单机部署(SE)。
2:表示共享集群部署(CE)。
which type of YashanDB do you want to deploy: 1) SE: Standalone Deployment. 2) CE: YAC Deployment. (default: 1) please select > 1根据部署模式,输入数据库服务器IP地址。
which ip address of the YashanDB Operation Manage, such as '192.168.1.2,192.168.1.3' or '192.168.1.[2-4]' please enter ip address > 192.168.1.2,192.168.1.3需根据提示输入安装用户信息:
)输入用户名,所有服务器的安装用户的用户名需要一致。
what is an SSH username used to install YashanDB (default: yashan) please enter ssh username >)输入密码,所有服务器的安装用户的密码需要一致,如果配置了免密则直接置空。
which SSH password please enter ssh password > ******)输入SSH端口号,所有服务器的SSH端口号需要一致。
which SSH port (default: 22) please enter ssh port >
校验服务器连接信息。
出现如下信息,表示服务器连接成功。
checking SSH connection status... +----------------------------------------------+ | ip | message | check | +----------------------------------------------+ | 192.168.1.2 | connect successfully | OK | +---------------+----------------------+-------+ | 192.168.1.3 | connect successfully | OK | +---------------+----------------------+-------+如果连接失败,则需要重新输入服务器信息。
# 步骤2:校验部署环境
在环境校验过程中,如无问题程序会自动进入下一步,无需手动操作。若某一项检验与数据库所需环境不符,将返回相应提示ignore it and continue, [y/n] >并需手动输入y/n进行确认:
n:表示不忽略环境情况,此时会退出程序,可以根据提示执行相关命令。
y:表示忽略,程序继续进入下一步,但最终可能会部署失败或功能受损。
检查操作系统相关配置。
checking system os... +-----------------------------------------------------------------------------------+ | ip | hostname | cpu | memory | firewalld | hugepage | YASDBA | check | +-----------------------------------------------------------------------------------+ | 192.168.1.2 | host0001 | 8 | 31.26GB | inactive | always | joined | OK | +-------------+-------------+-----+---------+-----------+----------+--------+-------+ | 192.168.1.3 | host0002 | 8 | 31.26GB | inactive | always | joined | OK | +-------------+-------------+-----+---------+-----------+----------+--------+-------+Note:
共享集群部署会校验主机名称,若主机名称不符合要求,则会直接退出。
检查系统内核相关配置。
checking system sysctl... +------------------------------------------------------------------------+ | ip | swappiness | ip_local_port_range | max_map_count | check | +------------------------------------------------------------------------+ | 192.168.1.2 | 0 | 102465535 | 2000000 | OK | +-------------+------------+---------------------+---------------+-------+ | 192.168.1.3 | 0 | 3276860999 | 2000000 | OK | +-------------+------------+---------------------+---------------+-------+检查限制系统资源相关配置。
checking system ulimit... +--------------------------------------------------------------------------------------+ | ip | open files | max user processes | max memory size | stack size | check | +--------------------------------------------------------------------------------------+ | 192.168.1.2 | 1048576 | 65535 | unlimited | 8192 | FAIL | +-------------+------------+--------------------+-----------------+------------+-------+ | 192.168.1.3 | 1048576 | 65535 | unlimited | 8192 | FAIL | +-------------+------------+--------------------+-----------------+------------+-------+ this system deployment environment, some ulimit configure seems bad. please update with ulimit under root user, such as: echo "* soft nproc 1048576">> /etc/security/limits.conf echo "* hard nproc 1048576">> /etc/security/limits.conf if configure failed, please resolved by yourself, maybe need to reboot system. you can also ignore it and continue, but it is not friendly to the YashanDB and may affect performance or system stability ignore and continue [y/n] >检查依赖库。
checking system libraries... +-------------------------------------------------------------------------------------------------------------------+ | ip | os | libcrypto | libssl | liblz4 | libz | libzstd | check | +-------------------------------------------------------------------------------------------------------------------+ | 192.168.1.2 | centos | libcrypto.so.1.1.1k | libssl.so.1.1.1k | liblz4.so.1.8.3 | libz.so.1.2.7 | unknow | FAIL | +-------------+--------+---------------------+------------------+-----------------+---------------+---------+-------+ | 192.168.1.3 | centos | libcrypto.so.1.1.1k | libssl.so.1.1.1k | liblz4.so.1.8.3 | libz.so.1.2.7 | unknow | FAIL | +-------------+--------+---------------------+------------------+-----------------+---------------+---------+-------+ this system deployment environment, some libraries unfound. please install them by yourself, such as: sudo yum install zlib lz4 libzstd if configure failed, please resolved by yourself, also you should confiure 'LD_LIBRARY_PATH' to resolved you can also ignore it and continue, but deployment maybe fail ignore and continue [y/n] >
# 步骤3:配置数据库相关信息
输入数据库名称。
what is the name of the YashanDB (default: yashandb) please enter cluster name(db name) >输入主备集群规模,例如部署一主一备集群则需输入2。
how many groups are there in the YashanDB YAC (default: 1) please enter the number of group >输入集群内的节点规模。
主集群
how many nodes are there in the primary cluster (default: 2) please enter the number of nodes > 2备集群(仅在主备集群部署时需要设置)
how many nodes are there in a standby cluster(all standby clusters have the same nodes) (default: 2) please enter the number of nodes > 2
输入故障组的数量,所有集群组的故障组数量一致。
how many failgroups are there in a cluster (default: 1) please enter the number of failgroup > 1配置共享存储信息。
如果部署主备共享集群,则要求输入多套共享存储信息。
please configure the disk for the cluster ceg1- )YCR盘:
what is the disk path of ycr please enter ycr disk > /dev/mapper/storraid15- )投票盘:
what is the disk path of voting please enter voting disk > /dev/mapper/storraid10- )数据盘:
what is the disk path of data, you can input string like 'disk1,disk2,disk3' if there are several disks please enter data disk > /dev/mapper/storraid5选择需要安装的插件。
Note:
各选项的含义如下:
all:安装所有插件。
none:不安装插件。
gis:安装用于内置的GIS函数的插件。
dblink:安装用于DBLink相关功能的插件。
udf:安装用于自定义函数相关功能的插件。
listagg:安装用于内置的LSFA_LISTAGG函数的插件。
s3:安装用于S3 bucket相关功能的插件。
what plugins do you want to intall for the YashanDB 1) none: do not install any plugins. 2) all: install all plugins below. 3) gis 4) dblink 5) udf 6) s3 7) listagg you can input such as: 3,4,5,6 or gis,dblink,udf,s3 (default: 2) please select >根据目录划分的相关规划,配置数据库所需目录:
- )HOME目录:
which install-path of the YashanDB, YASDB_HOME will be: <install-path>/<version> (default: /home/yashan/install) please enter install-path > /data/yashan/yasdb_home YASDB_HOME will be: /data/yashan/yasdb_home/23.2.11.100- )DATA目录:
which data-path of the YashanDB, YASDB_DATA will be: <data-path>/db-<nodeid> (default: /data/yashan/yasdb_home/yasdb_data) please enter data-path > /data/yashan/yasdb_data- )运行日志目录:
which log-path of the YashanDB, run.log will be: <log-path>/db-<nodeid>/run/run.log (default: /data/yashan/yasdb_home/log) please enter log-path > /data/yashan/log选择数据库监听IP。
which ip you will be used to listen 1) manage-ip: listen on 192.168.1.2,192.168.1.3,192.168.1.4 2) 0.0.0.0: listen on 0.0.0.0 (default: 1) please select >设置超级管理员sys用户的初始密码,配置要求如下:
密码长度为8 - 64位。
密码中不能包含对应的数据库用户名称。
密码必须同时包含数字、字母和特殊字符。
OS命令相关的特殊字符(例如
@、/、.、!、$、'等)需进行转义。
which sys password for YashanDB please enter sys password > ****** checking sys password now, please wait...配置起始端口。
部署YashanDB时将基于该值按照一定规则生成数据库所需的所有端口号。
which port generate for YashanDB (default: 1688) please enter port >
# 步骤4:部署数据库
根据提示选择是否部署YashanDB:
1:仅配置(config-only),表示仅在当前目录生成基于上述配置值的部署文件,然后自动退出交互式程序,后续可基于配置文件进行数据库部署。后续部署时执行cluster deploy命令无需再指定--sys-password参数。
2:立即部署(install-now),表示立即基于上述配置值部署YashanDB。
bootloader for parameter setting has been completed, please select:
1) config-only: only generate configuration, do not install now.
you should update those configuration, such as: database building parameters.
then install with those configuration by yourself.
2) install-now: generate configuration and install now
(default: 2)
# 步骤5:部署后操作
# 部署成功
返回如下信息,表示数据库部署成功。
generate configuration for host and YashanDB...
generate configuration succeed
install software...
install software succeed
initialize database...
initialize database succeed
数据库部署成功后,可按需执行如下配置:
配置环境变量
Do you want to append environment to ~/.bashrc on each machine? (default: yes) [y/n] > y append environment to ~/.bashrc successfully please source environment by yourself, such as: source ~/.bashrc配置monit守护进程以及开机自启动
该操作与守护进程中介绍的操作相同,择一执行即可。
Do you want to enable the monit function? If this feature is enabled, when process crashes for various reasons, it will be pulled up . However, if you use yasql to shutdown database, yasdb process will not be pulled up. [y/n] > y enable the daemon function successfully Already generate scripts: yashandb_boot_start.sh in current directory If you want to set monit to start automatically at boot, you can execute it in each machine, such as: sudo ./yashandb_boot_start.sh
# 部署失败
返回如下信息,表示数据库部署失败。可根据提示进行环境清理,清理后将退出交互式部署程序。如需重新部署,请重新执行上述全部操作。
generate configuration for host and YashanDB...
generate configuration succeed
install software...
install software succeed
initialize database...
initialize database failed
cluster deploy failed, stdout:task completed, status: FAILED
retcode: 1
stdout: create diskgroup DG0 failed, you can try to set yfs_force_create to true
stderr:
, stderr:
Do you want to clean this failed database?
[y/n] > y
clean success
# 步骤6:检查安装结果
- 执行如下命令,查看数据库状态。
$ yasboot cluster status -c yashandb -d
hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path
--------------------------------------------------------------------------------------------------------------------------------------------------------------
host0001 | ce | 1-1:1 | 19513 | open | normal | primary | 192.168.1.2:1688 | /data/yashan/yasdb_data/ce-1-1
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
host0002 | ce | 1-2:2 | 19608 | open | normal | primary | 192.168.1.3:1688 | /data/yashan/yasdb_data/ce-1-2
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
- 使用yasql工具连接数据库,查看实例状态。
$ yasql sys/password@192.168.1.2:1688
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
-------------
OPEN
SQL> SELECT database_name FROM v$database;
DATABASE_NAME
----------------------------------------------------------------
yashandb
- (可选)创建数据库用户并赋权,更多操作请查阅用户管理。
SQL> CREATE USER sales IDENTIFIED BY sales;
SQL> GRANT CONNECT TO SALES;
# 手动部署(单集群)
# 步骤1:生成部署文件
- 执行yasboot package命令生成配置文件,命令详细参数可查阅yasboot。
$ ./bin/yasboot package ce gen --cluster yashandb \
-u yashan -p password --ip 192.168.1.2,192.168.1.3 --port 22 \
--install-path /data/yashan/yasdb_home \
--data-path /data/yashan/yasdb_data \
--log-path /data/yashan/log \
--begin-port 1688 \
--node 2 \
--data /dev/yas/data \
--vote /dev/yas/vote \
--ycr /dev/yas/ycr
默认安装所有插件,若只需安装部分插件可使用--plugins参数指定。
| 参数 | 说明 |
|---|---|
| --cluster | 指定数据库集群名称,该名称也将作为初始数据库的名称(database name) |
| --port | 指定SSH服务端口 |
| --install-path | 指定数据库安装路径 |
| --data-path | 指定数据存放目录 |
| --log-path | 指定数据库的运行日志目录 |
| --listen-cidr | 数据库的监听地址网段,该配置将用于LISTEN_ADDR参数,格式为192.168.1.0/24若生产环境中为数据库的规划了不同网段,需采用该参数指定规划的公网网段 若未规划不同网段,则直接省略该参数即可 |
| --inter-cidr | 共享集群内部网络通信链路地址网段,该配置将用于CLUSTER_INTERCONNECT和INTER_URL参数,格式为192.168.1.0/24若生产环境中为数据库的规划了不同网段,需采用该参数指定规划的私网网段 若未规划不同网段,则直接省略该参数即可 |
| --begin-port | 指定第一个数据库实例的数据库监听端口 |
| --data | 指定绑定的数据盘路径 |
| --vote | 指定绑定的投票盘路径 |
| --ycr | 指定绑定的YCR盘路径 |
执行完毕后,当前目录下将生成yashandb.toml和hosts.toml两个配置文件,可手动修改,但不建议删除文件中任何行,否则可能导致后续安装过程报错,或所搭建的环境后续无法进行扩展配置。
- yashandb.toml:数据库集群的配置文件。
- hosts.toml:服务器的配置文件。
-rw-------. 1 yashan yashan 444 Aug 31 16:27 hosts.toml
-rw-------. 1 yashan yashan 708 Aug 31 16:27 yashandb.toml
- 根据实际需要调整yashandb.toml配置文件中的安装参数,可在group级别设置YashanDB的所有建库参数、配置YCS参数、配置YFS参数,可在node级别设置YashanDB的所有配置参数。
# 以下内容以实际展示结果为准
cluster = "yashandb" # 安装后修改也不会生效,除非重新安装
create_simple_schema = false # 为true部署完会执行示例的SQL,若改为true需要在deploy时指定sys-password参数
uuid = "64f1568f4f6b033e58a015a833f0ad9e" # 系统自动生成,不建议修改
yas_type = "CE" # 部署模式,安装后修改也不会生效,除非重新安装
[[group]]
group_type = "ce" # 节点组类型,安装后修改也不会生效,除非重新安装
name = "ceg1" # 节点组名称,安装后修改也不会生效,除非重新安装
database_role = "primary" # 集群组的类型,primary表示主集群,standby表示备集群
[group.config] # 可配置所有建库参数,不配置时采用默认值
CHARACTER_SET = "utf8"
ISARCHIVELOG = true
REDO_FILE_NUM = 4
REDO_FILE_SIZE = "128M"
[group.cedisk]
vote = "/dev/yas/vote" # 投票盘,安装后不可修改,除非重新安装
ycr = "/dev/yas/ycr" # ycr盘,安装后不可修改,除非重新安装
[group.yfsconfig] # YFS配置参数,不配置时采用默认值
LOG_LEVEL = "DEBUG"
RECY_INTERVAL = "86400"
SHM_POOL_SIZE = "64M"
SYS_AREA_SIZE = "256M"
YFS_PACKET_SIZE = "1M"
[group.ycsconfig] # YCS配置参数,不配置时使用默认值
DISK_HB_KEEP_ALIVE = 30
LOG_LEVEL = "DEBUG"
LOG_NUMBER = 10
LOG_SIZE = "20M"
NETWORK_HB_TIMEOUT = 30
RESTART_INTERVAL = 30
RESTART_TIMES = 3
WAIT_STOP_FIN_TIME = 90
[[group.diskgroup]] # 磁盘组信息
au_size = "1M" # 分配磁盘空间时的AU大小
disk_size = "" # 指定可以由diskgroup进行管理的disk大小,可省略,则默认为该disk的总大小
name = "DG0" # 磁盘组的名称
redundancy = "EXTERNAL" # 磁盘组的冗余度
yfs_force_create = false # 强制格式化磁盘
[[group.diskgroup.failgroup]]
name = "DG0_0"
disk = ["/dev/yas/data"]
[[group.node]] # 节点配置
data_path = "/data/yashan/yasdb_data" # 为DATA目录,安装后修改也不会生效,除非重新安装
hostid = "host0001" # 服务器标识,安装后修改也不会生效,除非重新安装
role = 1 # 数据库主备角色,共享集群的实例没有主备概念,不支持修改
[group.node.config] # 可配置所有数据库参数,不配置时采用默认值,安装后修改也不会生效,除非重新安装
CLUSTER_DATABASE = "TRUE"
CLUSTER_INTERCONNECT = "192.168.1.2:1689"
DATA_BUFFER_SIZE = "1G"
HA_ELECTION_TIMEOUT = 18
HA_HEARTBEAT_INTERVAL = 6
INTER_URL = "192.168.1.2:1788"
LISTEN_ADDR = "192.168.1.2:1688"
REDO_BUFFER_PARTS = 8
REDO_BUFFER_SIZE = "64M"
RUN_LOG_FILE_PATH = "/data/yashan/log"
SHARE_POOL_SIZE = "1G"
SLOW_LOG_FILE_PATH = "/data/yashan/log"
SQL_POOL_PARTS = 8
[[group.node]]
data_path = "/data/yashan/yasdb_data"
hostid = "host0002"
role = 2
[group.node.config]
CLUSTER_DATABASE = "TRUE"
CLUSTER_INTERCONNECT = "192.168.1.3:1689"
DATA_BUFFER_SIZE = "1G"
HA_ELECTION_TIMEOUT = 18
HA_HEARTBEAT_INTERVAL = 6
INTER_URL = "192.168.1.3:1788"
LISTEN_ADDR = "192.168.1.3:1688"
REDO_BUFFER_PARTS = 8
REDO_BUFFER_SIZE = "64M"
RUN_LOG_FILE_PATH = "/data/yashan/log"
SHARE_POOL_SIZE = "1G"
SLOW_LOG_FILE_PATH = "/data/yashan/log"
SQL_POOL_PARTS = 8
# 步骤2:执行安装
$ ./bin/yasboot package install -t hosts.toml
# 步骤3:数据库部署
$ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create -p password
| 参数 | 说明 |
|---|---|
| -t, --toml | 部署数据库集群的toml文件路径 |
| --yfs-force-create | YFS强制创建diskgroup |
| -p, --sys-password | 设置数据库超级管理员sys用户的密码,配置要求如下: * 密码长度为8 - 64位 * 密码中不能包含对应的数据库用户名称 * 密码必须同时包含数字、字母和特殊字符 * OS命令相关的特殊字符(例如 @、/、.、!、$、'等)需进行转义 |
Note:
可通过指定
-d, --child参数展示任务以及子任务信息,从而了解部署进度。
返回如下信息表示已成功部署。
task completed, status: SUCCESS
# 步骤4:配置环境变量
以安装用户登录到每个服务器上,执行如下命令生效环境变量。
# 部署命令成功执行后将会在$YASDB_HOME目录下的conf文件夹中生成<<集群名称>>.bashrc环境变量文件
$ cd /data/yashan/yasdb_home/23.2.11.100/conf
# 如~/.bashrc中已存在YashanDB相关的环境变量,将其清除
$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc
# 步骤5:检查安装结果
若连接报错或执行SQL语句报错,请根据错误提示信息检查安装步骤,或咨询我们的技术支持。
- 执行如下命令,查看数据库状态。
$ yasboot cluster status -c yashandb -d
hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path
--------------------------------------------------------------------------------------------------------------------------------------------------------------
host0001 | ce | 1-1:1 | 19513 | open | normal | primary | 192.168.1.2:1688 | /data/yashan/yasdb_data/ce-1-1
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
host0002 | ce | 1-2:2 | 19608 | open | normal | primary | 192.168.1.3:1688 | /data/yashan/yasdb_data/ce-1-2
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
- 使用yasql工具连接数据库,查看实例状态。
$ yasql sys/password@192.168.1.3:1688
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
-------------
OPEN
SQL> SELECT database_name FROM v$database;
DATABASE_NAME
----------------------------------------------------------------
yashandb
- (可选)创建数据库用户并赋权,更多操作请查阅用户管理。
SQL> CREATE USER sales IDENTIFIED BY sales;
SQL> GRANT CONNECT TO SALES;
Note:
如需开启monit功能,可参考守护进程完成相关配置。
# 手动部署(1主1备集群)
# 步骤1:生成部署文件
- 执行yasboot package命令生成配置文件,命令详细参数可查阅yasboot。
$ ./bin/yasboot package ce gen --cluster yashandb \
-u yashan -p password --ip 192.168.1.2,192.168.1.3 --port 22 \
--install-path /data/yashan/yasdb_home \
--data-path /data/yashan/yasdb_data \
--log-path /data/yashan/log \
--begin-port 1688 \
--node 2 \
--data /dev/yas/data \
--vote /dev/yas/vote \
--ycr /dev/yas/ycr \
--group 2
默认安装所有插件,若只需安装部分插件可使用--plugins参数指定。
| 参数 | 说明 |
|---|---|
| --cluster | 指定数据库集群名称,该名称也将作为初始数据库的名称(database name) |
| --port | 指定SSH服务端口 |
| --install-path | 指定数据库安装路径 |
| --data-path | 指定数据存放目录 |
| --log-path | 指定数据库的运行日志目录 |
| --listen-cidr | 数据库的监听地址网段,该配置将用于LISTEN_ADDR参数,格式为192.168.1.0/24若生产环境中为数据库的规划了不同网段,需采用该参数指定规划的公网网段 若未规划不同网段,则直接省略该参数即可 |
| --inter-cidr | 共享集群内部网络通信链路地址网段,该配置将用于CLUSTER_INTERCONNECT和INTER_URL参数,格式为192.168.1.0/24若生产环境中为数据库的规划了不同网段,需采用该参数指定规划的私网网段 若未规划不同网段,则直接省略该参数即可 |
| --replica-cidr | 主备集群复制链路地址网段,该配置将用于REPLICATION_ADDR参数,格式为192.168.1.0/24若生产环境中为数据库的规划了不同网段,需采用该参数指定规划的私网网段 若未规划不同网段,则直接省略该参数即可 |
| --begin-port | 指定第一个数据库实例的数据库监听端口 |
| --begin-port | 指定第一个数据库实例的数据库监听端口 |
| --data | 指定绑定的数据盘路径 |
| --vote | 指定绑定的投票盘路径 |
| --ycr | 指定绑定的YCR盘路径 |
| --group | 共享集群组的个数 |
执行完毕后,当前目录下将生成yashandb.toml和hosts.toml两个配置文件,通过如上命令生成的主备集群的磁盘信息是相同的,需根据需要调整备集群的磁盘信息。对于其他参数可手动修改,但不建议删除文件中任何行,否则可能导致后续安装过程报错,或所搭建的环境后续无法进行扩展配置。
- yashandb.toml:数据库集群的配置文件。
- hosts.toml:服务器的配置文件。
-rw-------. 1 yashan yashan 444 Aug 31 16:27 hosts.toml
-rw-------. 1 yashan yashan 708 Aug 31 16:27 yashandb.toml
- 根据实际需要调整yashandb.toml配置文件中的安装参数,可在group级别设置YashanDB的所有建库参数、配置YCS参数、配置YFS参数,可在node级别设置YashanDB的所有配置参数。
# 以下内容以实际展示结果为准
cluster = "yashandb" # 安装后修改也不会生效,除非重新安装
create_simple_schema = false # 为true部署完会执行示例的SQL,若改为true需要在deploy时指定sys-password参数
uuid = "64f1568f4f6b033e58a015a833f0ad9e" # 系统自动生成,不建议修改
yas_type = "CE" # 部署模式,安装后修改也不会生效,除非重新安装
[[group]]
group_type = "ce" # 节点组类型,安装后修改也不会生效,除非重新安装
name = "ceg1" # 节点组名称,安装后修改也不会生效,除非重新安装
database_role = "primary" # 集群组的类型,primary表示主集群,standby表示备集群
[group.config] # 可配置所有建库参数,不配置时采用默认值
CHARACTER_SET = "utf8"
ISARCHIVELOG = true
REDO_FILE_NUM = 4
REDO_FILE_SIZE = "128M"
[group.cedisk]
vote = "/dev/yas/vote" # 投票盘,安装后不可修改,除非重新安装
ycr = "/dev/yas/ycr" # ycr盘,安装后不可修改,除非重新安装
[group.yfsconfig] # YFS配置参数,不配置时采用默认值
LOG_LEVEL = "DEBUG"
RECY_INTERVAL = "86400"
SHM_POOL_SIZE = "64M"
SYS_AREA_SIZE = "256M"
YFS_PACKET_SIZE = "1M"
[group.ycsconfig] # YCS配置参数,不配置时使用默认值
DISK_HB_KEEP_ALIVE = 30
LOG_LEVEL = "DEBUG"
LOG_NUMBER = 10
LOG_SIZE = "20M"
NETWORK_HB_TIMEOUT = 30
RESTART_INTERVAL = 30
RESTART_TIMES = 3
WAIT_STOP_FIN_TIME = 90
[[group.diskgroup]] # 磁盘组信息
au_size = "1M" # 分配磁盘空间时的AU大小
disk_size = "" # 指定可以由diskgroup进行管理的disk大小,可省略,则默认为该disk的总大小
name = "DG0" # 磁盘组的名称
redundancy = "EXTERNAL" # 磁盘组的冗余度
yfs_force_create = false # 强制格式化磁盘
[[group.diskgroup.failgroup]]
name = "DG0_0"
disk = ["/dev/yas/data"]
[[group.node]] # 节点配置
data_path = "/data/yashan/yasdb_data" # 为DATA目录,安装后修改也不会生效,除非重新安装
hostid = "host0001" # 服务器标识,安装后修改也不会生效,除非重新安装
role = 1 # 数据库主备角色,共享集群的实例没有主备概念,不支持修改
[group.node.config] # 可配置所有数据库参数,不配置时采用默认值,安装后修改也不会生效,除非重新安装
CLUSTER_DATABASE = "TRUE"
CLUSTER_INTERCONNECT = "192.168.1.2:1689"
DATA_BUFFER_SIZE = "1G"
HA_ELECTION_TIMEOUT = 18
HA_HEARTBEAT_INTERVAL = 6
INTER_URL = "192.168.1.2:1788"
LISTEN_ADDR = "192.168.1.2:1688"
REDO_BUFFER_PARTS = 8
REDO_BUFFER_SIZE = "64M"
RUN_LOG_FILE_PATH = "/data/yashan/log"
SHARE_POOL_SIZE = "1G"
SLOW_LOG_FILE_PATH = "/data/yashan/log"
SQL_POOL_PARTS = 8
[[group.node]]
data_path = "/data/yashan/yasdb_data"
hostid = "host0002"
role = 2
[group.node.config]
CLUSTER_DATABASE = "TRUE"
CLUSTER_INTERCONNECT = "192.168.1.3:1689"
DATA_BUFFER_SIZE = "1G"
HA_ELECTION_TIMEOUT = 18
HA_HEARTBEAT_INTERVAL = 6
INTER_URL = "192.168.1.3:1788"
LISTEN_ADDR = "192.168.1.3:1688"
REDO_BUFFER_PARTS = 8
REDO_BUFFER_SIZE = "64M"
RUN_LOG_FILE_PATH = "/data/yashan/log"
SHARE_POOL_SIZE = "1G"
SLOW_LOG_FILE_PATH = "/data/yashan/log"
SQL_POOL_PARTS = 8
[[group]]
group_type = "ce" # 节点组类型,安装后修改也不会生效,除非重新安装
name = "ceg2" # 节点组名称,安装后修改也不会生效,除非重新安装
database_role = "standby" # 集群组的类型,primary表示主集群,standby表示备集群
[group.config] # 可配置所有建库参数,不配置时采用默认值
CHARACTER_SET = "utf8"
ISARCHIVELOG = true
REDO_FILE_NUM = 4
REDO_FILE_SIZE = "128M"
[group.cedisk]
vote = "/dev/yas2/vote" # 投票盘,安装后不可修改,除非重新安装
ycr = "/dev/yas2/ycr" # ycr盘,安装后不可修改,除非重新安装
[group.yfsconfig] # YFS配置参数,不配置时采用默认值
LOG_LEVEL = "DEBUG"
RECY_INTERVAL = "86400"
SHM_POOL_SIZE = "64M"
SYS_AREA_SIZE = "256M"
YFS_PACKET_SIZE = "1M"
[group.ycsconfig] # YCS配置参数,不配置时使用默认值
DISK_HB_KEEP_ALIVE = 30
LOG_LEVEL = "DEBUG"
LOG_NUMBER = 10
LOG_SIZE = "20M"
NETWORK_HB_TIMEOUT = 30
RESTART_INTERVAL = 30
RESTART_TIMES = 3
WAIT_STOP_FIN_TIME = 90
[[group.diskgroup]] # 磁盘组信息
au_size = "1M" # 分配磁盘空间时的AU大小
disk_size = "" # 指定可以由diskgroup进行管理的disk大小,可省略,则默认为该disk的总大小
name = "DG0" # 磁盘组的名称
redundancy = "EXTERNAL" # 磁盘组的冗余度
yfs_force_create = false # 强制格式化磁盘
[[group.diskgroup.failgroup]]
name = "DG0_0"
disk = ["/dev/yas2/data"]
[[group.node]] # 节点配置
data_path = "/data/yashan/yasdb_data" # 为DATA目录,安装后修改也不会生效,除非重新安装
hostid = "host0001" # 服务器标识,安装后修改也不会生效,除非重新安装
role = 1 # 数据库主备角色,共享集群的实例没有主备概念,不支持修改
[group.node.config] # 可配置所有数据库参数,不配置时采用默认值,安装后修改也不会生效,除非重新安装
CLUSTER_DATABASE = "TRUE"
CLUSTER_INTERCONNECT = "192.168.1.4:1689"
DATA_BUFFER_SIZE = "1G"
HA_ELECTION_TIMEOUT = 18
HA_HEARTBEAT_INTERVAL = 6
INTER_URL = "192.168.1.4:1788"
LISTEN_ADDR = "192.168.1.4:1688"
REDO_BUFFER_PARTS = 8
REDO_BUFFER_SIZE = "64M"
RUN_LOG_FILE_PATH = "/data/yashan/log"
SHARE_POOL_SIZE = "1G"
SLOW_LOG_FILE_PATH = "/data/yashan/log"
SQL_POOL_PARTS = 8
[[group.node]]
data_path = "/data/yashan/yasdb_data"
hostid = "host0002"
role = 2
[group.node.config]
CLUSTER_DATABASE = "TRUE"
CLUSTER_INTERCONNECT = "192.168.1.5:1689"
DATA_BUFFER_SIZE = "1G"
HA_ELECTION_TIMEOUT = 18
HA_HEARTBEAT_INTERVAL = 6
INTER_URL = "192.168.1.5:1788"
LISTEN_ADDR = "192.168.1.5:1688"
REDO_BUFFER_PARTS = 8
REDO_BUFFER_SIZE = "64M"
RUN_LOG_FILE_PATH = "/data/yashan/log"
SHARE_POOL_SIZE = "1G"
SLOW_LOG_FILE_PATH = "/data/yashan/log"
SQL_POOL_PARTS = 8
# 步骤2:执行安装
$ ./bin/yasboot package install -t hosts.toml
# 步骤3:数据库部署
$ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create -p password
| 参数 | 说明 |
|---|---|
| -t, --toml | 部署数据库集群的toml文件路径 |
| --yfs-force-create | YFS强制创建diskgroup |
| -p, --sys-password | 设置数据库超级管理员sys用户的密码,配置要求如下: * 密码长度为8 - 64位 * 密码中不能包含对应的数据库用户名称 * 密码必须同时包含数字、字母和特殊字符 * OS命令相关的特殊字符(例如 @、/、.、!、$、'等)需进行转义 |
Note:
可通过指定
-d, --child参数展示任务以及子任务信息,从而了解部署进度。
返回如下信息表示已成功部署。
task completed, status: SUCCESS
# 步骤4:配置环境变量
以安装用户登录到每个服务器上,执行如下命令生效环境变量。
# 部署命令成功执行后将会在$YASDB_HOME目录下的conf文件夹中生成<<集群名称>>.bashrc环境变量文件
$ cd /data/yashan/yasdb_home/23.2.11.100/conf
# 如~/.bashrc中已存在YashanDB相关的环境变量,将其清除
$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc
# 步骤5:检查安装结果
若连接报错或执行SQL语句报错,请根据错误提示信息检查安装步骤,或咨询我们的技术支持。
- 执行如下命令,查看数据库状态。
$ yasboot cluster status -c yashandb -d
hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path
-------------------------------------------------------------------------------------------------------------------------------------------------------------
host0001 | ce | 1-1:1 | 19513 | open | normal | primary | 192.168.1.2:1688 | /data/yashan/yasdb_data/ce-1-1
---------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
host0002 | ce | 1-2:2 | 19608 | open | normal | primary | 192.168.1.3:1688 | /data/yashan/yasdb_data/ce-1-2
---------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
host0003 | ce | 2-1:3 | 19513 | open | normal | standby | 192.168.1.4:1688 | /data/yashan/yasdb_data/ce-2-1
---------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
host0004 | ce | 2-2:4 | 19608 | started | - | - | 192.168.1.5:1688 | /data/yashan/yasdb_data/ce-2-2
---------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+---------------------------------------------
- 使用yasql工具连接数据库,查看实例状态。
$ yasql sys/password@192.168.1.3:1688
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
-------------
OPEN
SQL> SELECT database_name FROM v$database;
DATABASE_NAME
----------------------------------------------------------------
yashandb
- (可选)创建数据库用户并赋权,更多操作请查阅用户管理。
SQL> CREATE USER sales IDENTIFIED BY sales;
SQL> GRANT CONNECT TO SALES;
Note:
如需开启monit功能,可参考守护进程完成相关配置。

