Centos7安装LightDB高可用版


1. 安装前准备

所有准备工作,如无特殊说明,均需要在root用户下进行。

1.1 防火墙配置

使用下面命令停止并禁用防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

1.2 关闭SELINUX

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config setenforce 0

1.3 检查时间和时区

查看当前时区设置。

timedatectl
Local time: 三 2022-12-28 18:41:45 CST
  Universal time: 三 2022-12-28 10:41:45 UTC
        RTC time: 三 2022-12-28 10:41:45
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

在这里插入图片描述

1.4 安装依赖包

# 安装包通用运行依赖,GUI安装和命令行安装均需要
yum install -y procps-ng
yum install -y coreutils

# 数据库的运行依赖
yum install -y readline
yum install -y zlib
yum install -y libxml2
yum install -y openssl-libs
yum install -y uuid
yum install -y c-ares libpcap snappy # tshark
yum install -y ncurses-libs # iftop
yum install -y libnl3 # keepalived ipv6
yum install -y libzstd # canopy
yum install -y sysstat
yum install -y json-c
yum install -y libicu

1.5 创建lightdb用户并设置sudo免密

  • 创建lightdb用户与用户组
groupadd lightdb
useradd -g lightdb -m lightdb
passwd lightdb

在这里插入图片描述

  • 为lightdb用户设置sudo免密

/etc/sudoers中新增一行lightdb ALL=(ALL) NOPASSWD:ALL

chmod  +w   /etc/sudoers
vi  /etc/sudoers
# 新增后wq保存

#去除权限
chmod  -w   /etc/sudoers

在这里插入图片描述

1.6 创建LightDB安装目录和实例目录

以LightDB安装目录为/usr/local/lightdb为例,创建该目录,并为其设置用户(组)权限。

mkdir -p /usr/local/lightdb
chown -R lightdb:lightdb /usr/local/lightdb

在这里插入图片描述

默认情况下,LightDB实例目录为安装目录下的一个子目录,此时不需要手工创建实例目录。

也可以指定其他实例目录,此时需要手工创建,并为其设置用户(组)权限,以/data/lightdb_data为例:

mkdir -p /data/lightdb_data
chown -R lightdb:lightdb /data/lightdb_data

1.7 配置操作系统内核参数

1.7.1 配置sysctl.conf

echo "kernel.shmmni=4096" >> /etc/sysctl.conf
echo "kernel.shmmax=$(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))" \
 >> /etc/sysctl.conf
echo "kernel.shmall=$(expr $(getconf _PHYS_PAGES) / 2)" >> /etc/sysctl.conf
echo "kernel.sem=500 2048000 200 4096" >> /etc/sysctl.conf

echo "fs.aio-max-nr=1048576" >> /etc/sysctl.conf
echo "fs.file-max=524288" >> /etc/sysctl.conf

echo "vm.swappiness=5" >> /etc/sysctl.conf
echo "vm.overcommit_memory=2" >> /etc/sysctl.conf
echo "vm.overcommit_ratio=75" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio=5" >> /etc/sysctl.conf
echo "vm.dirty_ratio=40" >> /etc/sysctl.conf
echo "vm.dirty_expire_centisecs=500" >> /etc/sysctl.conf
echo "vm.dirty_writeback_centisecs=250" >> /etc/sysctl.conf

echo "net.core.somaxconn=2000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog=2000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_syn_retries=3" >> /etc/sysctl.conf
echo "net.ipv4.tcp_retries2=5" >> /etc/sysctl.conf
echo "net.ipv4.tcp_slow_start_after_idle=0" >> /etc/sysctl.conf

在这里插入图片描述
最后,运行sysctl -p使设置生效
在这里插入图片描述

1.7.2 配置limits.conf

运行下列命令以设置推荐的操作系统内核参数

echo "lightdb hard core   unlimited" >> /etc/security/limits.conf
echo "lightdb soft core   unlimited" >> /etc/security/limits.conf
echo "lightdb hard nofile 524288"    >> /etc/security/limits.conf
echo "lightdb soft nofile 524288"    >> /etc/security/limits.conf
echo "lightdb hard nproc  16384"     >> /etc/security/limits.conf
echo "lightdb soft nproc  16384"     >> /etc/security/limits.conf

然后su - lightdb切换到lightdb用户使设置生效,运行ulimit -culimit -nulimit -u命令确认设置生效。
在这里插入图片描述

1.8 开启Swap交换区

使用free -h查看是否已开启Swap交换区,如未配置,则可以按以下步骤配置开启。
在这里插入图片描述

  1. 创建交换区空白文件,文件大小即为交换区大小,如果磁盘空间充足,建议当物理内存不超过128GB时,Swap大小设为物理内存的一半,建议当物理内存大于128GB时,Swap大小设为固定128GB。下面的示例将交换区文件创建在/swap,大小为2GB,目的仅用于示例。实际配置请按照上述建议决定交换区大小,并选择合适的磁盘路径来放置交换区文件。
dd if=/dev/zero of=/swap bs=1M count=2048 # Swap交换区大小 = 2048MB
  1. 使用mkswap格式化文件
mkswap -f /swap
  1. 修改交换区文件权限为0600
chmod 0600 /swap
  1. 启用刚刚创建的交换区
swapon /swap
  1. 设置开机自动启用,修改/etc/fstab文件,添加如下配置
/swap swap swap defaults 0 0

1.9 准备LightDB安装包

选择正确的LightDB安装包上传到/home/lightdb目录,并确保安装包的用户与用户组均为lightdb
在这里插入图片描述

1.10 配置SSH免密互通

以高可用一主二从为例,主节点IP为10.10.10.101,从节点IP为10.10.10.102,10.10.10.103,主从均切换到lightdb用户,按如下所示步骤进行配置。

# 免密认证,所有服务器都要执行
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

# 证书同步,所有服务器都要执行
#10.10.10.101上执行
ssh-copy-id lightdb@10.10.10.102
ssh-copy-id lightdb@10.10.10.103

#10.10.10.102上执行
ssh-copy-id lightdb@10.10.10.101
ssh-copy-id lightdb@10.10.10.103

#10.10.10.103上执行
ssh-copy-id lightdb@10.10.10.101
ssh-copy-id lightdb@10.10.10.102

# 免密验证,主机SSH连接从机,无需输密码
[lightdb@ha-lightdb-01 ~]$ ssh lightdb@10.10.10.102
Last failed login: Wed Dec 28 19:42:27 CST 2022 from 10.10.10.101 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Wed Dec 28 19:39:35 2022

在这里插入图片描述

2. 命令行安装LightDB高可用版

解压安装包,进入解压后目录。运行install.sh脚本,进入安装过程,根据安装向导提示信息,此处有两种安装方式,输入no为命令行安装。
按照命令行提示信息,依次填写Virtual IP,以及primary、standby和witness服务器的IP与同步方式。在节点的选择上,对于一主一从,witness是可选的,若不想指定可按回车键跳过,而对于一主多从,witness是必须的;在standby的同步异步选择上,如果节点处于同一网段,则同步异步都可选择,如果处于不同的网段,则只能是异步;在网段的要求上,至少要有1个standby和primary位于同一网段。此处以一主一从一哨兵的方式进行展示。
在这里插入图片描述

  • 确认集群各节点信息是否填写无误,确认无误后键入1继续,否则键入2进行重设,此处选择1。

  • 将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成,直到出现如下图所示的指定端口号的提示信息,端口号默认为5432

继续检查依赖包与Linux内核参数。

Check system parameters and dependency packages!
========================================= 10.10.10.101 =========================================
NETWORK
name: sem, recommend value: 500,2048000,200,4096, current value: 500,2048000,200,4096, status: OK
name: aio_max_nr, recommend value: 1048576, current value: 1048576, status: OK
name: somaxconn, recommend value: 2000, current value: 2000, status: OK
name: tcp_max_syn_backlog, recommend value: 2000, current value: 2000, status: OK
name: tcp_tw_reuse, recommend value: 1, current value: 1, status: OK
name: tcp_syn_retries, recommend value: 3, current value: 3, status: OK
name: tcp_retries2, recommend value: 5, current value: 5, status: OK
name: tcp_slow_start_after_idle, recommend value: 0, current value: 0, status: OK
PAGE_CACHE
name: dirty_background_ratio, recommend value: 5, current value: 5, status: OK
name: dirty_ratio, recommend value: 40, current value: 40, status: OK
name: dirty_expire_centisecs, recommend value: 500, current value: 500, status: OK
name: dirty_writeback_centisecs, recommend value: 250, current value: 250, status: OK
MEMORY
name: shmmni, recommend value: 4096, current value: 4096, status: OK
name: shmmax, recommend value: 1976868864, current value: 1976868864, status: OK
name: shmall, recommend value: 482634, current value: 482634, status: OK
name: swappiness, recommend value: 5, current value: 5, status: OK
name: overcommit_memory, recommend value: 2, current value: 2, status: OK
name: overcommit_ratio, recommend value: 75, current value: 75, status: OK
FILE_HANDLER
name: file_max, recommend value: 524288, current value: 524288, status: OK
ULIMIT
name: ulimit_core, recommend value: unlimited, current value: unlimited, status: OK
name: ulimit_nofile, recommend value: 8192, current value: 524288, status: OK
Dependency Package
name: JSON-C-0.11 is existed: yes
name: C-ARES-1 is existed: yes
name: LIBNL3 is existed: yes
name: LIBPCAP-1 is existed: yes
name: LIBZSTD-1 is existed: yes
name: LZ4-1 is existed: yes
name: NCURSES-LIBS-5 is existed: yes
name: READLINE-6 is existed: yes
name: SNAPPY-1 is existed: yes
name: UUID-1.6 is existed: yes
name: LIBICU-50 is existed: yes
System service
name: ntp is install: no
========================================= 10.10.10.102 =========================================
NETWORK
name: sem, recommend value: 500,2048000,200,4096, current value: 500,2048000,200,4096, status: OK
name: aio_max_nr, recommend value: 1048576, current value: 1048576, status: OK
name: somaxconn, recommend value: 2000, current value: 2000, status: OK
name: tcp_max_syn_backlog, recommend value: 2000, current value: 2000, status: OK
name: tcp_tw_reuse, recommend value: 1, current value: 1, status: OK
name: tcp_syn_retries, recommend value: 3, current value: 3, status: OK
name: tcp_retries2, recommend value: 5, current value: 5, status: OK
name: tcp_slow_start_after_idle, recommend value: 0, current value: 0, status: OK
PAGE_CACHE
name: dirty_background_ratio, recommend value: 5, current value: 5, status: OK
name: dirty_ratio, recommend value: 40, current value: 40, status: OK
name: dirty_expire_centisecs, recommend value: 500, current value: 500, status: OK
name: dirty_writeback_centisecs, recommend value: 250, current value: 250, status: OK
MEMORY
name: shmmni, recommend value: 4096, current value: 4096, status: OK
name: shmmax, recommend value: 1976868864, current value: 1976868864, status: OK
name: shmall, recommend value: 482634, current value: 482634, status: OK
name: swappiness, recommend value: 5, current value: 5, status: OK
name: overcommit_memory, recommend value: 2, current value: 2, status: OK
name: overcommit_ratio, recommend value: 75, current value: 75, status: OK
FILE_HANDLER
name: file_max, recommend value: 524288, current value: 524288, status: OK
ULIMIT
name: ulimit_core, recommend value: unlimited, current value: unlimited, status: OK
name: ulimit_nofile, recommend value: 8192, current value: 524288, status: OK
Dependency Package
name: JSON-C-0.11 is existed: yes
name: C-ARES-1 is existed: yes
name: LIBNL3 is existed: yes
name: LIBPCAP-1 is existed: yes
name: LIBZSTD-1 is existed: yes
name: LZ4-1 is existed: yes
name: NCURSES-LIBS-5 is existed: yes
name: READLINE-6 is existed: yes
name: SNAPPY-1 is existed: yes
name: UUID-1.6 is existed: yes
name: LIBICU-50 is existed: yes
System service
name: ntp is install: no
========================================= 10.10.10.103 =========================================
NETWORK
name: sem, recommend value: 500,2048000,200,4096, current value: 500,2048000,200,4096, status: OK
name: aio_max_nr, recommend value: 1048576, current value: 1048576, status: OK
name: somaxconn, recommend value: 2000, current value: 2000, status: OK
name: tcp_max_syn_backlog, recommend value: 2000, current value: 2000, status: OK
name: tcp_tw_reuse, recommend value: 1, current value: 1, status: OK
name: tcp_syn_retries, recommend value: 3, current value: 3, status: OK
name: tcp_retries2, recommend value: 5, current value: 5, status: OK
name: tcp_slow_start_after_idle, recommend value: 0, current value: 0, status: OK
PAGE_CACHE
name: dirty_background_ratio, recommend value: 5, current value: 5, status: OK
name: dirty_ratio, recommend value: 40, current value: 40, status: OK
name: dirty_expire_centisecs, recommend value: 500, current value: 500, status: OK
name: dirty_writeback_centisecs, recommend value: 250, current value: 250, status: OK
MEMORY
name: shmmni, recommend value: 4096, current value: 4096, status: OK
name: shmmax, recommend value: 1976868864, current value: 1976868864, status: OK
name: shmall, recommend value: 482634, current value: 482634, status: OK
name: swappiness, recommend value: 5, current value: 5, status: OK
name: overcommit_memory, recommend value: 2, current value: 2, status: OK
name: overcommit_ratio, recommend value: 75, current value: 75, status: OK
FILE_HANDLER
name: file_max, recommend value: 524288, current value: 524288, status: OK
ULIMIT
name: ulimit_core, recommend value: unlimited, current value: unlimited, status: OK
name: ulimit_nofile, recommend value: 8192, current value: 524288, status: OK
Dependency Package
name: JSON-C-0.11 is existed: yes
name: C-ARES-1 is existed: yes
name: LIBNL3 is existed: yes
name: LIBPCAP-1 is existed: yes
name: LIBZSTD-1 is existed: yes
name: LZ4-1 is existed: yes
name: NCURSES-LIBS-5 is existed: yes
name: READLINE-6 is existed: yes
name: SNAPPY-1 is existed: yes
name: UUID-1.6 is existed: yes
name: LIBICU-50 is existed: yes
System service
name: ntp is install: no
  • 选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。此处选择1
    在这里插入图片描述

  • 选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
    在这里插入图片描述

  • 指定LightDB安装目录和实例目录(要确保lightdb用户有写入权限)。
    在这里插入图片描述

  • 配置shared_buffers与effective_cache_size大小,以及设置字符集。
    在这里插入图片描述

  • 设置管理员用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母。此处lightdb123456

  • 选择继续安装,直至安装完成。
    在这里插入图片描述

  • 配置NTP服务,集群多机器之间的时间同步是非常重要的,LightDB默认采用高可用主机时间为参考,向备机和witness机器同步时间。如果你有自己的时间服务器,可以在这里修改为你自己的ntp服务器地址。
    在这里插入图片描述

  • 复制界面显示的命令并执行。 执行的命令以实际界面显示的为准。

# 启动keepalived服务(在所有主,备上执行,witness上不用执行)
cd /usr/local/lightdb/lightdb-x/13.8-22.3/tools/bin

./keepalived -f /usr/local/lightdb/lightdb-x/13.8-22.3/etc/keepalived/keepalived.conf

# 启动ntp服务(在所有主,备,witness上执行)
sh /home/lightdb/lightdb-x-13.8-22.3-7953-el7.x86_64/script/13_ntp_start.sh /usr/local/lightdb/lightdb-x/13.8-22.3

在这里插入图片描述

  • 上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出Install Finish信息,并自动退出安装向导。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值