YashanDB分布式部署

简介: 本文详细介绍了YashanDB在分布式环境下的安装与部署流程,以三台服务器为例(1个MN组、2个CN节点、1个DN组),涵盖主备配置。主要内容包括:生成部署文件(通过`yasboot package`命令)、执行安装、数据库部署、配置环境变量、检查安装结果等步骤。同时提供可选配置,如仲裁选主和用户管理,确保高可用性和性能优化。适合需要搭建分布式数据库集群的用户参考使用。

本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E5%AE%89%E8%A3%85%E5%92%8C%E5%8D%87%E7%BA%A7/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/YashanDB%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%AE%89%E8%A3%85%EF%BC%88%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%89/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2.html

本文以典型规格(3台服务器,1个MN组、2个CN、1个DN组,DN组和MN组均为1主2备)为例,介绍分布式部署形态的安装步骤。

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

$ cd /home/yashan/install

Copied!

以使用三台服务器部署1个MN组(MN节点1主2备)、2个CN、1个DN组(DN节点1主1备)的规格为例,介绍分布式部署形态的安装步骤。

# 步骤1: 生成部署文件

  1. 执行yasboot package命令生成配置文件,命令详细参数可查阅yasboot
$ ./bin/yasboot package de gen --cluster yashandb --recommend-param \
-u yashan -p password --ip 192.168.1.2,192.168.1.3,192.168.1.4 --port 22 \
--install-path /data/yashan/yasdb_home --data-path /data/yashan/yasdb_data \
--begin-port 1688 --mn 3 --cn 2 --dn 1-2

Copied!

参数 说明
--cluster 指定数据库集群名称,该名称也将作为初始数据库的名称(database name)
--port 指定SSH服务端口
--install-path 指定数据库安装路径
--data-path 指定数据存放目录
--begin-port 指定第一个CN节点上数据库监听端口
--mn/cn/dn 分别指定MN节点/CN节点/DN组-节点数量

用于提高数据库性能的参数:

参数 说明
--create-cgroup 可选参数,指定创建cgroup目录

仅需开启CPU等资源管理时需配置该参数,具体请查阅配置资源管理 |
| --recommend-param | 可选参数,开启并使用推荐的配置参数 |
| --memory-limit | 可选参数,服务器的可使用内存百分比上限,须配合--recommend-param使用 |
| --table-type | 可选参数,主要的业务的表类型,该参数会使数据库配置参数更适合此表类型,须配合--recommend-param使用 |

执行完毕后,当前目录下将生成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

Copied!

  1. 根据实际需要调整yashandb.toml配置文件中的安装参数,可在group级别设置YashanDB的所有建库参数,在node级别设置YashanDB的所有配置参数

cluster = "yashandb"    
create_simple_schema = false    
deploy_mode = "NORMAL"    
recommend_param = true
table_type = "LSC"
uuid = "64f1568f4f6b033e58a015a833f0ad9e"    
yas_type = "DE"    

[[group]]
  group_type = "mn"    
  name = "mng1"    
  [group.config]    
    CHARACTER_SET = "utf8"
    ISARCHIVELOG = true
    REDO_FILE_NUM = 4
    REDO_FILE_SIZE = "128M"

  [[group.node]]     
    data_path = "/data/yashan/yasdb_data"    
    hostid = "host0001" 
    memory_limit = "1536M" 
    role = 1    
    [group.node.config] 
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.2:1679"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.2:1678"
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.2:1680"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-1/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-1/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0002"
    memory_limit = "1536M"
    role = 2   
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.3:1679"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.3:1678"
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.3:1680"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-2/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-2/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0003"
    memory_limit = "1536M"
    role = 2     
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.4:1679"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.4:1678"
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.4:1680"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-3/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-3/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300

[[group]]
  group_type = "cn"
  name = "cng1"
  [group.config]
    CHARACTER_SET = "utf8"
    ISARCHIVELOG = true
    REDO_FILE_NUM = 4
    REDO_FILE_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0002"
    memory_limit = "3500M"
    role = 1
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.3:1689"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.3:1688"
      MAX_PARALLEL_WORKERS = 128
      MAX_REACTOR_CHANNELS = 1
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.3:1690"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-1/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-1/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0003"
    memory_limit = "3500M"
    role = 1
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.4:1689"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.4:1688"
      MAX_PARALLEL_WORKERS = 128
      MAX_REACTOR_CHANNELS = 1
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.4:1690"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-2/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-2/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

[[group]]
  group_type = "dn"
  name = "dng1"
  [group.config]
    CHARACTER_SET = "utf8"
    ISARCHIVELOG = true
    REDO_FILE_NUM = 4
    REDO_FILE_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0003"
    memory_limit = "7000M"
    role = 1
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.4:1699"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.4:1698"
      MAX_PARALLEL_WORKERS = 512
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.4:1700"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-1/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-1/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0001"
    memory_limit = "7000M"
    role = 2
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.2:1699"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.2:1698"
      MAX_PARALLEL_WORKERS = 512
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.2:1700"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-2/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-2/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

Copied!

# 步骤2: 执行安装

场景一:直接安装。

$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.3.1.100-linux-x86_64.tar.gz

Copied!

场景二:如需使用DBLINK功能以及更丰富的内置函数(例如LSFA_LISTAGG),需先下载plugin插件包并在安装命令中指定--plugin参数。安装完成后,无法单独安装该插件包

$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.3.1.100-linux-x86_64.tar.gz --plugin yashandb-plugins-all-23.3.1.100-linux-x86_64.tar.gz

Copied!

# 步骤3: 数据库部署

$ ./bin/yasboot cluster deploy -t yashandb.toml

Copied!

Note:

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

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

task completed, status: SUCCESS

Copied!

# 步骤4:配置环境变量

以安装用户登录到每个服务器上,执行如下命令生效环境变量。


$ cd /data/yashan/yasdb_home/yashandb/23.3.1.100/conf


$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc

Copied!

# 步骤5:检查安装结果

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

  1. YashanDB不提供系统初始口令,需使用yasboot工具设置数据库sys用户的密码,以安装用户登录到服务器并执行如下命令设置密码。
$ yasboot cluster password set -n newpasswd -c yashandb

Copied!

  1. 执行如下命令,查看数据库状态。
$ yasboot cluster status -c yashandb -d
hostid   | node_type | nodeid | pid   | instance_status | database_status | database_role | listen_address     | data_path                      
-------------------------------------------------------------------------------------------------------------------------------------------------
host0001 | mn        | 1-1:1  | 56961 | open            | normal          | primary       | 192.168.1.2:1678 | /data/yashan/yasdb_data/mn-1-1 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | dn        | 3-2:7  | 57029 | open            | normal          | standby       | 192.168.1.2:1698 | /data/yashan/yasdb_data/dn-3-2 
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
host0002 | mn        | 1-2:2  | 57024 | open            | normal          | standby       | 192.168.1.3:1678 | /data/yashan/yasdb_data/mn-1-2 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | cn        | 2-1:4  | 57024 | open            | normal          | primary       | 192.168.1.3:1688 | /data/yashan/yasdb_data/cn-2-1 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
host0003 | mn        | 1-3:3  | 57021 | open            | normal          | standby       | 192.168.1.4:1678 | /data/yashan/yasdb_data/mn-1-3 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | cn        | 2-2:5  | 57021 | open            | normal          | primary       | 192.168.1.4:1688 | /data/yashan/yasdb_data/cn-2-2 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | dn        | 3-1:6  | 57021 | open            | normal          | primary       | 192.168.1.4:1698 | /data/yashan/yasdb_data/dn-3-1 
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------

Copied!

  1. 使用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

Copied!

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

SQL> GRANT CONNECT TO SALES;

Copied!

# 步骤6(可选):开启仲裁选主

如需实现DN组内节点的主备自动切换,需开启基于yasom的仲裁选主

Note:

如需开启monit功能,可参考守护进程完成相关配置。

DN节点1主2备部署


以使用三台服务器部署1个MN组(MN节点1主2备)、2个CN、1个DN组(DN节点1主2备)的规格为例,介绍分布式部署形态的安装步骤。

# 步骤1: 生成部署文件

  1. 执行yasboot package命令生成配置文件,命令详细参数可查阅yasboot
$ ./bin/yasboot package de gen --cluster yashandb --recommend-param \
-u yashan -p password --ip 192.168.1.2,192.168.1.3,192.168.1.4 --port 22 \
--install-path /data/yashan/yasdb_home --data-path /data/yashan/yasdb_data \
--begin-port 1688 --mn 3 --cn 2 --dn 1-3

Copied!

参数 说明
--cluster 指定数据库集群名称,该名称也将作为初始数据库的名称(database name)
--port 指定SSH服务端口
--install-path 指定数据库安装路径
--data-path 指定数据存放目录
--begin-port 指定第一个CN节点上数据库监听端口
--mn/cn/dn 分别指定MN节点/CN节点/DN组-节点数量

用于提高数据库性能的参数:

参数 说明
--create-cgroup 可选参数,指定创建cgroup目录

仅需安装可开启CPU资源管理的单机数据库(非级联备)时需配置该参数,具体请查阅配置资源管理 |
| --recommend-param | 可选参数,开启并使用推荐的配置参数 |
| --memory-limit | 可选参数,服务器的可使用内存百分比上限,须配合--recommend-param使用 |
| --table-type | 可选参数,主要的业务的表类型,该参数会使数据库配置参数更适合此表类型,须配合--recommend-param使用 |

执行完毕后,当前目录下将生成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

Copied!

  1. 根据实际需要调整yashandb.toml配置文件中的安装参数,可在group级别设置YashanDB的所有建库参数,在node级别设置YashanDB的所有配置参数

请参考数据库配置调优和自身环境配置调整相关参数。若所安装环境为高可用的Raft集群(自动选主),还需参考高可用


cluster = "yashandb"    
create_simple_schema = false    
deploy_mode = "NORMAL"    
recommend_param = true
table_type = "LSC"
uuid = "64f1568f4f6b033e58a015a833f0ad9e"    
yas_type = "DE"    

[[group]]
  group_type = "mn"    
  name = "mng1"    
  [group.config]    
    CHARACTER_SET = "utf8"
    ISARCHIVELOG = true
    REDO_FILE_NUM = 4
    REDO_FILE_SIZE = "128M"

  [[group.node]]     
    data_path = "/data/yashan/yasdb_data"    
    hostid = "host0001" 
    memory_limit = "1536M" 
    role = 1    
    [group.node.config] 
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.2:1679"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.2:1678"
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.2:1680"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-1/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-1/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0002"
    memory_limit = "1536M"
    role = 2   
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.3:1679"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.3:1678"
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.3:1680"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-2/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-2/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0003"
    memory_limit = "1536M"
    role = 2     
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.4:1679"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.4:1678"
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.4:1680"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-3/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/mn-1-3/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300

[[group]]
  group_type = "cn"
  name = "cng1"
  [group.config]
    CHARACTER_SET = "utf8"
    ISARCHIVELOG = true
    REDO_FILE_NUM = 4
    REDO_FILE_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0002"
    memory_limit = "2625M"
    role = 1
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.3:1689"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.3:1688"
      MAX_PARALLEL_WORKERS = 128
      MAX_REACTOR_CHANNELS = 1
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.3:1690"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-1/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-1/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0003"
    memory_limit = "2625M"
    role = 1
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.4:1689"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.4:1688"
      MAX_PARALLEL_WORKERS = 128
      MAX_REACTOR_CHANNELS = 1
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.4:1690"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-2/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/cn-2-2/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

[[group]]
  group_type = "dn"
  name = "dng1"
  [group.config]
    CHARACTER_SET = "utf8"
    ISARCHIVELOG = true
    REDO_FILE_NUM = 4
    REDO_FILE_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0003"
    memory_limit = "5250M"
    role = 1
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.4:1699"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.4:1698"
      MAX_PARALLEL_WORKERS = 512
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.4:1700"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-1/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-1/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0001"
    memory_limit = "5250M"
    role = 2
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.2:1699"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.2:1698"
      MAX_PARALLEL_WORKERS = 512
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.2:1700"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-2/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-2/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

  [[group.node]]
    data_path = "/data/yashan/yasdb_data"
    hostid = "host0002"
    memory_limit = "5250M"
    role = 2
    [group.node.config]
      DATA_BUFFER_SIZE = "256M"
      DB_BLOCK_SIZE = "8K"
      DDL_LOCK_TIMEOUT = 60
      DEFAULT_TABLE_TYPE = "LSC"
      DICTIONARY_CACHE_SIZE = 20
      DIN_ADDR = "192.168.1.3:1699"
      DSTB_POOL_SIZE = 10
      LARGE_POOL_SIZE = "32M"
      LISTEN_ADDR = "192.168.1.3:1698"
      MAX_PARALLEL_WORKERS = 512
      MAX_SESSIONS = 1024
      OPEN_CURSORS = 310
      REDO_BUFFER_SIZE = "8M"
      REPLICATION_ADDR = "192.168.1.3:1700"
      RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-3/run"
      RUN_LOG_LEVEL = "DEBUG"
      SHARE_POOL_SIZE = "256M"
      SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.3.1.100/log/yashandb/dn-3-3/slow"
      SQL_POOL_SIZE = 45
      TRANSACTION_LOCK_TIMEOUT = 300
      UNDO_RETENTION = 300
      WORK_AREA_HEAP_SIZE = "2M"
      WORK_AREA_POOL_SIZE = "128M"

Copied!

# 步骤2: 执行安装

场景一:直接安装。

$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.3.1.100-linux-x86_64.tar.gz

Copied!

场景二:如需使用DBLINK功能以及更丰富的内置函数(例如LSFA_LISTAGG),需先下载plugin插件包并在安装命令中指定--plugin参数。安装完成后,无法单独安装该插件包

$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.3.1.100-linux-x86_64.tar.gz --plugin yashandb-plugins-all-23.3.1.100-linux-x86_64.tar.gz

Copied!

# 步骤3: 数据库部署

$ ./bin/yasboot cluster deploy -t yashandb.toml

Copied!

Note:

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

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

task completed, status: SUCCESS

Copied!

# 步骤4:配置环境变量

以安装用户登录到每个服务器上,执行如下命令生效环境变量。


$ cd /data/yashan/yasdb_home/yashandb/23.3.1.100/conf


$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc

Copied!

# 步骤5:检查安装结果

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

  1. YashanDB不提供系统初始口令,需使用yasboot工具设置数据库sys用户的密码,以安装用户登录到服务器并执行如下命令设置密码。
$ yasboot cluster password set -n newpasswd -c yashandb

Copied!

  1. 执行如下命令,查看数据库状态。
$ yasboot cluster status -c yashandb -d
hostid   | node_type | nodeid | pid   | instance_status | database_status | database_role | listen_address     | data_path                      
-------------------------------------------------------------------------------------------------------------------------------------------------
host0001 | mn        | 1-1:1  | 56961 | open            | normal          | primary       | 192.168.1.2:1678 | /data/yashan/yasdb_data/mn-1-1 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | dn        | 3-2:7  | 57029 | open            | normal          | standby       | 192.168.1.2:1698 | /data/yashan/yasdb_data/dn-3-2 
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
host0002 | mn        | 1-2:2  | 57024 | open            | normal          | standby       | 192.168.1.3:1678 | /data/yashan/yasdb_data/mn-1-2 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | cn        | 2-1:4  | 57024 | open            | normal          | primary       | 192.168.1.3:1688 | /data/yashan/yasdb_data/cn-2-1 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | dn        | 3-3:8  | 57016 | open            | normal          | standby       | 192.168.1.3:1698 | /data/yashan/yasdb_data/dn-3-3 
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
host0003 | mn        | 1-3:3  | 57021 | open            | normal          | standby       | 192.168.1.4:1678 | /data/yashan/yasdb_data/mn-1-3 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | cn        | 2-2:5  | 57021 | open            | normal          | primary       | 192.168.1.4:1688 | /data/yashan/yasdb_data/cn-2-2 
          +-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------
          | dn        | 3-1:6  | 57021 | open            | normal          | primary       | 192.168.1.4:1698 | /data/yashan/yasdb_data/dn-3-1 
----------+-----------+--------+-------+-----------------+-----------------+---------------+--------------------+--------------------------------

Copied!

  1. 使用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

Copied!

  1. 创建数据库用户并赋权,更多操作请查阅用户管理
SQL> CREATE USER sales IDENTIFIED BY sales;

SQL> GRANT CONNECT TO SALES;

Copied!

Note:

如需开启monit功能,可参考守护进程完成相关配置。

相关文章
|
2月前
|
SQL
【YashanDB知识库】手工迁移Doris数据到崖山分布式
【YashanDB知识库】手工迁移Doris数据到崖山分布式
|
1月前
|
安全 网络安全 数据库
YashanDB分布式节点间SSL连接配置
本文介绍YashanDB分布式节点间SSL连接配置方法,确保通信安全。需统一为整个集群配置SSL,使用相同根证书签名的服务器证书,否则可能导致连接失败或数据库无法启动。文章详细说明了使用OpenSSL生成根证书、服务器私钥、证书及DH文件的步骤,并指导如何将证书分发至各节点。最后,通过配置数据库参数(如`din_ssl_enable`)并重启集群完成设置。注意,证书过期需重新生成以保障安全性。
|
1月前
|
SQL 数据可视化 网络安全
YashanDB分布式可视化部署
本文介绍YashanDB的分布式部署流程,涵盖服务端安装、数据库基本信息与服务器配置、节点信息设置、建库参数调整、环境变量配置及安装结果检查等步骤。通过可视化Web界面操作,详细说明了各环节配置方法和注意事项,确保用户顺利完成数据库集群的搭建与初始化设置。适用于需要分布式数据库部署的场景,提供全面的操作指导。
YashanDB分布式可视化部署
|
2月前
|
SQL DataX HIVE
【YashanDB知识库】DataX迁移Hive到崖山分布式
本文来自YashanDB官网,介绍通过DataX将Hive数据迁移到YashanDB的实现方法。源环境为Hive 3.1.3,目标为YashanDB 23.2.3.100。文章提供了Hive与YashanDB的建表脚本、数据类型映射及DataX配置示例,包含reader和writer插件参数设置,并通过`datax.py`执行同步任务。内容详尽展示了数据迁移的全流程。
【YashanDB知识库】DataX迁移Hive到崖山分布式
【YashanDB知识库】分布式LSC表修改字段
本文来自YashanDB官网,介绍了一种间接修改分布式LSC表字段的方法。通过重命名原表为备份表、重建新表调整字段长度、使用bulkload方式快速导入数据、验证记录数并删除备份表等步骤,实现将字段`area_name`从VARCHAR2(60)修改为VARCHAR2(100)。此方法高效且适用于分布式环境下的表结构调整。
|
3月前
|
SQL 数据建模 BI
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
|
2月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
193 0
分布式爬虫框架Scrapy-Redis实战指南
|
3月前
|
NoSQL Java 中间件
【📕分布式锁通关指南 02】基于Redis实现的分布式锁
本文介绍了从单机锁到分布式锁的演变,重点探讨了使用Redis实现分布式锁的方法。分布式锁用于控制分布式系统中多个实例对共享资源的同步访问,需满足互斥性、可重入性、锁超时防死锁和锁释放正确防误删等特性。文章通过具体示例展示了如何利用Redis的`setnx`命令实现加锁,并分析了简化版分布式锁存在的问题,如锁超时和误删。为了解决这些问题,文中提出了设置锁过期时间和在解锁前验证持有锁的线程身份的优化方案。最后指出,尽管当前设计已解决部分问题,但仍存在进一步优化的空间,将在后续章节继续探讨。
605 131
【📕分布式锁通关指南 02】基于Redis实现的分布式锁
|
10天前
|
数据采集 存储 NoSQL
分布式爬虫去重:Python + Redis实现高效URL去重
分布式爬虫去重:Python + Redis实现高效URL去重

热门文章

最新文章