#分布式集群部署

执行安装部署前,请以安装用户(yashan)登录192.168.1.2服务器,并进入/home/yashan/install安装目录。

$ cd /home/yashan/install

# 步骤1:生成部署文件

根据需要部署的数据库规模不同,生成配置文件时需要指定的参数略有差异,常用参数如下表所示,参数全集请查阅yasboot package ce gen命令

本文将介绍典型的配置示例,实际安装时可选择相对接近的规模示例进行参考。

  1. 执行yasboot package ce gen命令生成配置文件。

    $ ./bin/yasboot package ce gen -c yashandb \
    	-u yashan -p yashan \
    	--cn-ip 192.168.1.2,192.168.1.3 \
    	--dn-ip 192.168.1.4,192.168.1.5,192.168.1.6 \
    	--install-path /data/yashan/yasdb_home \
      --data-path /data/yashan/yasdb_data \
    	--log-path /data/yashan/yasdb_home/log \
    	--data /dev/nvme0n2 \
    	--disk-found-path /dev \
    	--system-data /dev/nvme0n1
    

执行完毕后,当前目录下将生成{集群名称}.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
  1. 根据实际需要调整配置文件中的相关参数:

    Caution:

    不建议删除文件中任何行,否则可能导致后续安装过程报错或所搭建的环境后续无法进行扩展配置。

    • 服务器的配置文件hosts.toml:可以按需修改yasom与yasagent的监听端口、CN/DN服务器配置等信息。

    • 数据库集群的配置文件(示例yashandb.toml):可在[group.config]区域设置YashanDB的所有建库参数、在[group.ycsconfig]区域设置YCS参数、在[group.yfsconfig]区域设置YFS参数,在[group.node.config]区域设置YashanDB的所有配置参数

    # yashandb.toml文件,具体信息以实际展示结果为准
    
    cluster = "yashandb"	# 安装后修改也不会生效,除非重新安装
    create_simple_schema = false	# 为true部署完会执行示例的SQL,若改为true需要在deploy时指定sys-password参数
    uuid = "64f1568f4f6b033e58a015a833f0ad9e"	# 系统自动生成,不建议修改
    yas_type = "CE"	# 部署模式,安装后修改也不会生效,除非重新安装
    
    [[group]]
      database_role = "primary"  # 集群组的类型,primary表示主集群
      disk_found_path = "/dev"  # 磁盘发现路径
      group_type = "ce" # 节点组类型,安装后修改也不会生效,除非重新安装
      name = "ceg1" # 节点组名称,安装后修改也不会生效,除非重新安装
      [group.config]    # 可配置所有建库参数,不配置时采用默认值
        CHARACTER_SET = "utf8"
        ISARCHIVELOG = true
        REDO_FILE_NUM = 4
        REDO_FILE_SIZE = "128M"
    
      [[group.diskgroup]]  # 数据盘的磁盘组配置
        au_size = "1M"     # 分配磁盘空间时的AU大小
        disk_size = ""     # 指定可以由diskgroup进行管理的disk大小,可省略,则默认为该disk的总大小
        name = "DG0"        # 磁盘组的名称
        redundancy = "EXTERNAL"  # 磁盘组的冗余度
        yfs_force_create = false # 是否强制格式化磁盘
    
        [[group.diskgroup.failgroup]]  # 数据盘故障组配置
          disk = ["host0001.data0", "host0002.data1", "host0003.data2"] 
          name = "DG0_0"
    
      [[group.node]]    # 节点配置
        data_path = "/data/yashan/yasdb_data"   # DATA目录,安装后修改也不会生效,除非重新安装
        hostid = "host0001" # 服务器标识,安装后修改也不会生效,除非重新安装
        role = 1    # 该参数无实际含义,不支持修改
        [group.node.config]  # 可配置所有数据库参数,不配置时采用默认值,安装后修改也不会生效,除非重新安装
          ARCH_CLEAN_IGNORE_MODE = "BACKUP"
          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]
          ARCH_CLEAN_IGNORE_MODE = "BACKUP"
          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.systemdiskgroup] # 系统盘组配置
        au_size = "1M"
        disk_size = ""
        name = "SYSTEM"
        redundancy = "NORMAL"  # 磁盘冗余度,根据指定的系统盘数量自动设置
        yfs_force_create = true
    
        [[group.systemdiskgroup.failgroup]]
          disk = ["host0001.sys0"]
          name = "SDG0_0"
    
        [[group.systemdiskgroup.failgroup]]
          disk = ["host0001.sys1"]
          name = "SDG0_1"
    
        [[group.systemdiskgroup.failgroup]]
          disk = ["host0001.sys2"]
          name = "SDG0_2"
    
      [group.ycsconfig]  # YCS配置参数,不配置时使用默认值
        DISK_HB_KEEP_ALIVE = 60
        LOG_LEVEL = "DEBUG"
        LOG_NUMBER = 10
        LOG_SIZE = "20M"
        NETWORK_HB_TIMEOUT = 30
        RESTART_INTERVAL = 30
        RESTART_TIMES = 3
        VOTING_FILE_NAME = "+SYSTEM/voting"
        WAIT_STOP_FIN_TIME = 90
        YCR_FILE_NAME = "+SYSTEM/ycr"
        
      [group.yfsconfig]  # YFS配置参数,不配置时采用默认值
        SHM_POOL_SIZE = "2G"
        SYS_AREA_SIZE = "1G"
        YFS_PACKET_SIZE = "1M"
    

# 步骤2:执行安装

执行如下命令,执行软件包安装。

$ ./bin/yasboot package install -t hosts.toml
参数 说明
-t, --toml 部署数据库集群的hosts.toml路径

# 步骤3:数据库部署

  1. 执行如下命令,部署数据库:

    $ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create -p sys_password
    
    参数 说明
    -t, --toml 部署数据库集群的toml文件路径
    --yfs-force-create YFS强制创建diskgroup
    -p, --sys-password 设置数据库超级管理员sys用户的密码,配置要求如下:
    * 密码长度为8 - 64位
    * 密码中不能包含对应的数据库用户名称
    * 密码必须同时包含数字、字母和特殊字符
    * OS命令相关的特殊字符(例如@/.!$'等)需进行转义

    Note:

    可通过指定-d, --child参数展示任务以及子任务信息,从而了解部署进度。

    返回如下信息表示已成功部署。

    task completed, status: SUCCESS
    
  2. 执行如下命令,重启数据库:

    $ ./bin/yasboot cluster restart -c yashandb -p sys_password
    

# 步骤4:配置环境变量

部署成功后,--install-path(例如/data/yashan/yasdb_home)指定的目录下会生成子目录{version_number}/conf,该目录下会自动生成YashanDB相关的环境变量文件{集群名称}.bashrc,需将其应用于操作系统。

执行如下命令,生效环境变量。

# 进入环境变量文件所在目录,例如/data/yashan/yasdb_home/{version_number}/conf
$ cd /data/yashan/yasdb_home/{version_number}/conf

# 生效环境变量
$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc

# 校验环境变量是否生效(回显信息中的路径请以实际为准)
$ echo $YASDB_DATA
/data/yashan/yasdb_data/ce-1-1

具体的环境变量介绍请查阅安装后初始环境 > 环境变量

# 步骤5:检查安装结果

若连接报错或执行SQL语句报错,请根据错误提示信息检查安装步骤,或咨询我们的技术支持。

  1. 执行如下命令,查看数据库状态。

    $ yasboot cluster status -c yashandb -d -p sys_password
    

    回显信息示例如下:

+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hostid   | node_type | nodeid | pid    | instance_status | database_status | database_role | listen_address       | source_node | data_path                      |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| host0001 | ce        | 1-1:1  | 621785 | open            | normal          | primary       | 192.168.1.2:1688 | -           | /data/yashan/yasdb_data/ce-1-1 |
+----------+-----------+--------+--------+-----------------+-----------------+---------------+----------------------+-------------+--------------------------------+
| host0002 | ce        | 1-2:2  | 185294 | open            | normal          | primary       | 192.168.1.3:1688 | -           | /data/yashan/yasdb_data/ce-1-2 |
+----------+-----------+--------+--------+-----------------+-----------------+---------------+----------------------+-------------+--------------------------------+
  1. 使用yasql工具连接数据库,查看实例状态。
$ yasql sys/********@192.168.1.2:1688
SQL> SELECT STATUS FROM V$INSTANCE;

STATUS        
------------- 
OPEN        

SQL> SELECT database_name FROM v$database;

DATABASE_NAME                                                    
---------------------------------------------------------------- 
yashandb     
  1. (可选)创建数据库用户并赋权,更多操作请查阅用户管理
CREATE USER sales IDENTIFIED BY sales;

GRANT CONNECT TO SALES;

exit

# 步骤6:启动守护进程

执行如下命令,启动守护进程。

$ yasboot monit start --cluster yashandb

Note:

后续使用中服务器重启开机后需手动启动守护进程,守护进程会自动拉起数据库相关进程,从而启动数据库。为简化运维,可将守护进程配置为开机自启动间接实现数据库开机自启动,具体操作请查阅配置开机自启动

edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流