1. 前言

恒生电子企业级数据库LightDB安装包名格式为:

lightdb-x-version-revision-os.arch.zip
  • lightdb-x:数据库名

  • version:数据库版本号,目前最新为 13.8-23.1,13.8 表示基于 PostgreSQL 13.8 版本,23.1 表示 2023 年第 1 个 Release 版本

  • revision:源代码提交编号

  • os:安装包适用的操作系统

  • arch:安装包适用的 CPU 架构

目前支持如下平台:

Architecture

OS

x86_64(intel)

CentOS7/RHEL7 /rockylinux8/麒麟V10SP1

x86_64(海光)

麒麟V10/麒麟V10SP1/麒麟V10SP2

aarch64

CentOS7/RHEL7 /rockylinux8/麒麟V10SP1/麒麟V10SP2

本文档主要介绍LightDB 在x86_64 CentOS 7.6平台的安装过程及注意事项,其他支持的操作系统如有差异,请根据实际情况灵活调整。

麒麟V10SP2操作系统安装可使用麒麟V10SP1相关的安装包,其中海光-麒麟V10SP2安装23.2版本及其之前的安装包,需要替换安装包中install.sh脚本的check_version函数,函数替换如下

function check_version(){
  if [ ! -d "$PACKAGE" ] ;then
    echo "The install package is not existed"
    exit 1
  fi
  osnameCopy=$osname
  if [[ "$arch" == "$AARCH64" || "$arch" == "$HYGON64" ]] && [ "$osname" == "$KY10SP2" ]; then
    osname=$KY10SP1
  fi
  isExisted=$(echo $PACKAGE|grep -w $osname | grep -w $arch )
  if [ -z "$isExisted" ] ;then
    echo "The install package is not support the ${osnameCopy} os and ${arch} arch"
    exit 1
  fi
 }

安装过程会自动在/home/lightdb/.bashrc中配置PATH、LTHOME、LTDATA等环境变量,安装完成后,需重新登录Shell会话生效。

2. 推荐配置

配置参数

最低配置

推荐配置

CPU

16核

96核

内存

64GB

256GB

存储

60GB,SSD NVMe

1TB以上SSD NVMe或PMEM

网络

千兆网络

千兆网络

3. 安装前准备

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

3.1. 防火墙配置

如果您的环境有防火墙,则需要在防火墙中开启以下端口:

端口

协议

用途

默认5432

TCP

数据库服务

123

UDP

NTP校时服务

其中,数据库服务的端口5432为默认值,这个值在安装过程中可以自行指定,如果希望使用其他端口,则在此处需要将5432修改为实际值。

注意:请务必确保上述端口未作他用。以下为防火墙配置参考步骤。

  • 如果使用firewall防火墙,请执行以下命令,其中第一条命令中的5432需修改为实际使用的端口

firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --permanent --add-port=123/udp
  • 如果使用iptables防火墙,请执行以下命令,其中第一条命令中的5432需修改为实际使用的端口

iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
  • 如果使用其他防火墙,则参考防火墙相关文档正确开放端口

  • 如果您的环境可以关闭防火墙,则可以使用下面命令停止并禁用防火墙

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

3.2. 关闭SELINUX

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

3.3. 检查时间和时区

查看当前时区设置。

[root@lightdb ~]#  timedatectl
      Local time: Thu 2021-07-22 10:54:39 CST
  Universal time: Thu 2021-07-22 02:54:39 UTC
        RTC time: Thu 2021-07-22 02:54:39
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

如果需要修改时区,可以参考如下示例,先使用timedatectl list-timezones列出所有可选的时区,然后使用timedatectl set-timezone设置新的时区,下面的例子展示了将时区设置为Asia/Shanghai

timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai

3.4. 安装依赖包

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

# GUI安装运行依赖,仅GUI安装需要
yum install -y gtk2
yum install -y libXtst
yum install -y dejavu-fonts # 麒麟v10sp1可能需要安装字体

# 数据库的运行依赖
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
yum install -y bc

在安装包下的system-lib目录下有部分rpm包,可以使用rpm -ivh <rpm包>直接安装。

如果要使用oracle_fdwwal2sql,需要正确安装oracle客户端SDK,oracle客户端SDK在arm环境使用19版本,在x86环境使用21版本的客户端。

如果使用mysql_fdw, 则需要正确安装mysql-client库,mysql客户端使用8.0版本。 其中oracle客户端需注意配置如下环境变量:

# oracle客户端环境变量配置样例
export ORACLE_HOME=/home/lightdb/instantclient_21_6
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin

3.5. 创建lightdb用户并设置sudo免密

  • 创建lightdb用户与用户组

groupadd lightdb
useradd -g lightdb -m lightdb
passwd lightdb
  • 为lightdb用户设置sudo免密,如下图所示,在/etc/sudoers中新增一行lightdb ALL=(ALL)       NOPASSWD:ALL

3.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

3.7. 配置操作系统内核参数

3.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

如果服务器物理内存大于128GB,尤其是达到256GB甚至更高时,强烈建议开启Linux系统的hugepage,同时将大页内存设置为shared_buffers的1.1~1.2倍,关于shared_buffers的介绍可参考官方文档https://www.hs.net/lightdb/docs/html/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-MEMORY,开启hugepage的配置方法如下所示。

echo "vm.nr_hugepages = 大页页数" >> /etc/sysctl.conf

其中,大页页数 = (shared_buffers * 1.1~1.2) / hugepage_size,hugepage_size的值因系统和个人设置而异,查看方法为:

cat /proc/meminfo | grep Hugepagesize

最后,运行sysctl -p使设置生效,生效后可通过cat /proc/meminfo确认hugepage的配置与使用情况。

[lightdb@host102 ~]$ cat /proc/meminfo | grep Huge
AnonHugePages:     12288 kB
HugePages_Total:       802
HugePages_Free:        187
HugePages_Rsvd:        1
HugePages_Surp:        0
Hugepagesize:       524288 kB

3.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命令确认设置生效。

[lightdb@host102 ~]$ ulimit -c
unlimited
[lightdb@host102 ~]$ ulimit -n
524288
[lightdb@host102 ~]$ ulimit -u
16384

3.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

3.9. 配置SSH免密互通

注意:本步骤仅在安装LightDB高可用、分布式常规模式、分布式多机单实例模式三种情形时需要,如果安装单机版或分布式单机多实例模式,则可跳过本章节。关于分布式常规模式、分布式多机单实例模式的定义,请参考本文档6.1 LightDB分布式三种部署模式简介。

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

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

# 证书同步,所有服务器都要执行
ssh-copy-id lightdb@192.168.10.128
ssh-copy-id lightdb@192.168.10.110

# 免密验证,主机SSH连接从机,无需输密码
[lightdb@localhost install]$ ssh lightdb@192.168.10.128
Last login: Thu Aug 12 09:02:32 2021

3.10. 配置NTP校时服务

注意:本步骤仅在安装LightDB高可用、分布式常规模式、分布式多机单实例模式三种情形时需要,如果安装单机版或分布式单机多实例模式,则可跳过本章节。关于分布式常规模式、分布式多机单实例模式的定义,请参考本文档6.1 LightDB分布式三种部署模式简介。

配置NTP校时服务的方法在安装过程中会有引导信息提示,详细步骤在后续章节中具体说明。如果您希望自行配置NTP服务,请务必确保用于安装LightDB的服务器全部配置完成,不能出现部分启动了NTP、部分未启动的情形,否则LightDB将在校验NTP服务启动情况这一步骤失败。

3.11. 准备LightDB安装包

根据前言中介绍的安装包名规则和目标主机的实际情况,选择正确的LightDB安装包上传到/home/lightdb目录,并确保安装包的用户与用户组均为lightdb。

解压安装包,进入解压后目录。运行install.sh脚本,进入安装过程,根据安装向导提示信息,此处有两种安装方式,输入Yes为GUI安装,输入No为命令行安装。

install-start

如果选择GUI安装,需要满足下列条件: - Windows上运行Xmanager - Passive,并通过Xshell SSH连接服务器 - 目标服务器已配置DISPLAY环境变量

export DISPLAY=WindowsIP:0.0

其中,WindowsIP为运行Xmanager - Passive的主机IP地址,冒号:后面的值一般为0.0,具体取决于Xmanager - Passive运行后的状态提示,如下图所示。

display

  • 目标服务器已安装libXtstgtk2libX11这几个运行GUI需要的依赖包

yum install -y libXtst gtk2 libX11

如果无法满足上述条件,或者已满足上述条件,但仍无法显示GUI安装向导界面,则可以选用命令行安装,二者除了向导方式外,并无任何差异。

4. 安装LightDB单机版

4.1. GUI安装LightDB单机版

  • 按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。

    single-install-gui-start

  • 界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。

    single-install-gui-conf-opt

  • 本文档使用选项二,以展示完整的安装过程。

    single-install-gui-conf-opt-2

  • 选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们使用默认选择。

    single-install-gui-install-mode

  • 选择单机版进入下一步,配置端口号,默认为5432,可自行指定任意合法端口。如果指定了一个非法端口或正在使用的端口,点击Next会无法进入下一步,同时界面中会给出错误提示信息。

    single-install-gui-port-set

  • 检查依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击Check Again重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again,也可以直接点击Ignore All忽略全部警告,直接进入下一步。

    single-install-gui-pre-check

  • 选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。

    single-install-gui-compatible-type

  • OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。

    single-install-gui-db-proc-type

  • 指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击Browse调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。

    single-install-gui-install-loc

  • 配置shared_bufferseffective_cache_size大小,以及设置字符集。默认shared_buffers = 25% * 总物理内存,默认effective_cache_size = 70% * 总物理内存,默认字符集为UTF-8,并提供GBKSQL_ASCIILATIN1三个其他选项。

    single-install-gui-conf-para-mem

    single-install-gui-conf-para-charset

  • 配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    single-install-gui-db-pwd

  • LightDB安装信息总览,确认无误后,点击Install执行安装。(可以点击Save Response File把安装信息保存为文件,以后如果需要重新安装时可以简化输入操作)

    single-install-gui-sum

  • 安装成功。

    single-install-gui-finish

4.2. 命令行安装LightDB单机版

命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。

  • 在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。

    single-install-cui-start

  • 选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。

    single-install-cui-conf-mode

  • 选择安装单机版、高可用版或分布式版,键入1安装单机版,键入2选择高可用版,键入3选择分布式版,默认为单机版。

    single-install-cui-install-mode

  • 指定端口号,默认为5432。

    single-install-cui-port-set

  • 检查依赖包与Linux内核参数,检查通过后会进入下一步选择,否则会报错并给出提示信息,其中WARNING会默认全部忽略。

    single-install-cui-pre-check

  • 选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。

    single-install-cui-compatible-type

  • 选择OLTP或OLAP,键入1为OLTP,键入2为OLAP,默认为1。

    single-install-cui-db-proc-type

  • 指定LightDB安装目录和实例目录(要确保lightdb用户有写入权限),此处均使用默自定义目录。

    single-install-cui-install-loc

  • 配置LightDB是否开启归档模式,默认开启。

    single-install-cui-archive

  • 配置LightDB是否开启增量检查点,默认不开启。

    single-install-cui-incremental-checkpoints

  • 配置shared_buffers与effective_cache_size大小,以及设置字符集。

    single-install-cui-conf-para

  • 设置super用户密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    single-install-cui-db-pwd

  • 选择继续安装,直至安装完成。

    single-install-cui-finish

5. 安装LightDB高可用版

安装LightDB高可用,要求每一台主机都先完成3.1-3.11所述准备工作,然后按3.9所述打通SSH免密(参考 配置SSH免密互通 ),最后按3.11所述在作为Primary的主机上准备安装包(参考 准备LightDB安装包 )。

5.1. GUI安装LightDB高可用版

  • 按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。

    ha-install-gui-start

  • 界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。这里选择安装选项二,以展示完整的安装过程

    ha-install-gui-conf-opt-2

  • 选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择高可用版。

    ha-install-gui-install-mode

  • 点击Add,在弹出的界面中添加虚拟IP,虚拟IP需要与配置的主备服务器在同一个网段,并且虚拟IP在本网段中没有被分配

    ha-install-gui-ip-1

  • 点击虚拟IP对应的Add按钮(下图箭头所指)添加集群机器信息,为每一台服务器指定IP、角色(primarystandbywitness)和同步方式(nonesyncasync),primarywitness只能选择nonestandby可以在syncasync中选择其一,如果选错,点击Next会无法进入下一步,同时界面中会有错误信息提示。配置完成后,点击Add进行添加,添加后还可以通过Delete删除。

    ha-install-gui-ip-2

  • LightDB高可用版支持一主一从、一主多从两种部署方式。在节点的选择上,对于一主一从,witness是可选的,而对于一主多从,witness是必须的;在standby的同步异步选择上,如果节点处于同一网段,则同步异步都可选择,如果处于不同的网段,则只能是异步;在网段的要求上,至少要有1个standbyprimary位于同一网段。此处以一主一从一哨兵为例进行展示。

    ha-install-gui-ip-3

  • 将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。

    ha-install-gui-transfer

  • 配置端口号,默认为5432,可自行指定任意合法端口,如果指定了一个非法端口或正在使用的端口,点击Next会无法进入下一步,同时界面中会给出错误提示信息。

    ha-install-gui-port-set

  • 检查每一台服务器的依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击Check Again重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again,也可以直接点击Ignore All忽略全部警告,直接进入下一步。

    ha-install-gui-pre-check

  • 选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。

    ha-install-gui-compatible-type

  • OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。

    ha-install-gui-db-proc-type

  • 指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击Browse调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。

    ha-install-gui-install-loc

  • 配置shared_bufferseffective_cache_size大小,以及设置字符集。默认shared_buffers = 25% * 总物理内存,默认effective_cache_size = 70% * 总物理内存,默认字符集为UTF-8,并提供GBKSQL_ASCIILATIN1三个其他选项。

    ha-install-gui-conf-para-mem

    ha-install-gui-conf-para-charset

  • 配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    ha-install-gui-db-pwd

  • LightDB安装信息总览,确认没问题后点击install按钮开始正式安装(在这里可以点击SAVE Response File把安装参数保存为文件,在以后想重新安装时可以简化安装步骤)。

    ha-install-gui-sum

  • 总览信息确认无误后,点击Install执行安装。

    ha-install-gui-installing

  • 此时数据库已经安装完成

  • 配置NTP服务,集群多机器之间的时间同步是非常重要的,LightDB默认采用高可用主机时间为参考,向备机和witness机器同步时间。如果你有自己的时间服务器,可以在这里修改为你自己的ntp服务器地址。如果你已经为所有的机器配置了NTP服务,则这一步会自动跳过。

    ha-install-gui-ntp

  • 使用ssh客户端登录机器终端,切换到root用户,复制界面显示的命令并执行。 执行的命令以实际界面显示的为准。

    下图中的命令为:

    # 启动keepalived服务(在所有主,备上执行,witness上不用执行)
    cd /home/lightdb/stage/lightdb-x/13.8-23.1/tools/bin
    ./keepalived -f /home/lightdb/stage/lightdb-x/13.8-23.1/etc/keepalived/keepalived.conf
    
    # 启动ntp服务(在所有主,备,witness上执行)
    sh /home/lightdb/lightdb-x-13.8-23.1-10551-el7.x86_64/script/13_ntp_start.sh \
      /home/lightdb/stage/lightdb-x/13.8-23.1
    

    ha-install-gui-keepalived

    启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。

  • 安装成功

    ha-install-gui-finish

    如果因环境等因素限制无法使用keepalived,或者未启用NTP服务,会因检查不通过而无法点击finish,则可直接点击Cancel退出安装向导,此时数据库已经安装成功,但ntp和keepalived可能不正确,需要另外配置。

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

命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。

  • 在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。

    ha-install-cui-start

  • 选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。

    ha-install-cui-conf-mode

  • 选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择2。

    ha-install-cui-install-mode

  • 按照命令行提示信息,依次填写Virtual IP,以及primarystandbywitness服务器的IP与同步方式。在节点的选择上,对于一主一从,witness是可选的,若不想指定可按回车键跳过,而对于一主多从,witness是必须的;在standby的同步异步选择上,如果节点处于同一网段,则同步异步都可选择,如果处于不同的网段,则只能是异步;在网段的要求上,至少要有1个standbyprimary位于同一网段。此处以一主一从一哨兵的方式进行展示。

    ha-install-cui-ip

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

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

    ha-install-cui-port-set

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

    ha-install-cui-pre-check-primary

  • 选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。

    ha-install-cui-compatible-type

  • 选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。

    ha-install-cui-db-proc-type

  • 指定LightDB安装目录和实例目录(要确保lightdb用户有写入权限)。

    ha-install-cui-install-loc

  • 配置LightDB是否开启归档模式,默认开启。

    ha-install-cui-archive

  • 配置LightDB是否开启增量检查点,默认不开启。

    single-install-cui-incremental-checkpoints

  • 配置shared_buffers与effective_cache_size大小,以及设置字符集。

    ha-install-cui-conf-para

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

    ha-install-cui-db-pwd

  • 选择继续安装,直至安装完成。

    ha-install-cui-finish

  • 配置NTP服务,集群多机器之间的时间同步是非常重要的,LightDB默认采用高可用主机时间为参考,向备机和witness机器同步时间。如果你有自己的时间服务器,可以在这里修改为你自己的ntp服务器地址。如果你已经为所有的机器配置了NTP服务,则这一步会自动跳过。

    ha-install-cui-ntp

  • 使用ssh客户端登录机器终端,切换到root用户,复制界面显示的命令并执行。 执行的命令以实际界面显示的为准。

    下图中的命令为:

    # 启动keepalived服务(在所有主,备上执行,witness上不用执行)
    cd /home/lightdb/stage/lightdb-x/13.8-23.1/tools/bin
    ./keepalived -f /home/lightdb/stage/lightdb-x/13.8-23.1/etc/keepalived/keepalived.conf
    
    # 启动ntp服务(在所有主,备,witness上执行)
    sh /home/lightdb/lightdb-x-13.8-23.1-10551-el7.x86_64/script/13_ntp_start.sh \
      /home/lightdb/stage/lightdb-x/13.8-23.1
    

    ha-install-cui-keepalived

    启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。

  • 上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出Install Finish信息,并自动退出安装向导。

5.3. LightDB高可用常用操作指南

本小节介绍几个LightDB高可用版本常用操作的简易指南,更详细的信息请查阅LightDB数据库运维手册。

5.3.1. 监控

5.3.1.1. 查看节点间同步状态及延迟

SELECT * FROM pg_stat_replication;   --主库查询
SELECT * FROM pg_stat_wal_receiver;  --备库查询

查询结果示例,如下图所示。

pg_stat_replication

pg_stat_wal_receiver

5.3.1.2. 查看各节点状态

分别在primaystandbywitness运行下面的命令,以查看集群各节点状态。

$LTHOME/bin/ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf node status

查询结果示例,如下图所示。

ltcluster-status

5.3.1.3. 查看集群状态

  • 查看集群服务状态,需要重点关注的信息有:Role、Status(数据库运行状态)、ltclusterd(ltclusterd守护进程运行状态)、Paused(ltclusterd是否暂停)

ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status

注意:上述命令在primarystandbywitness上都可以执行,且各节点上的执行结果应该是完全相同的,若不完全相同,则说明集群状态有异,需及时排查原因

以主库查询结果为例进行说明,如下图所示,正常状态下期望的结果为:

  • NameRole应与实际相符

  • Status应为runningprimarywitness前面还应有一个星号*

  • ltclusterd应为running

  • Paused?应为no(除非在相应节点上执行了ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service pause命令)

    ltcluster-status-2

  • 查看集群IP信息,如虚拟IP

ip a show             #查看所有网卡
ip a show [interface] #查看指定网卡

查询结果示例,如下图所示。

ip-addr

ip-addr-spe

5.3.1.4. 查看日志

ltclusterd的日志路径为$LTDATA/../etc/ltcluster/ltcluster.log,LightDB数据库日志路径为$LTDATA/log/,其中数据库日志文件以日期时间命名,且新文件创建满足如下规律,可按照快速锁定目标日志文件。

  • 每次启动都会产生一个新的日志文件

  • 若无数据库重启,则每天产生一个新的日志文件

5.3.2. 管理

5.3.2.1. 主库重启

主库因修改数据库参数或其他原因需要重启,可以按以下步骤操作。

  1. 先停止备库的keepalived (重要),在root用户下执行以下命令

# 1. 获得备库keepalived进程pid
cat /var/run/keepalived.pid

# 2. 杀死keepalived进程
kill keepalived_pid

# 3. 确认keepalived进程确实已不存在
ps aux | grep keepalived
  1. 主库重启,需要在lightdb用户下执行,重启期间主库不提供服务

# 1. 暂停ltclusterd,防止自动failover
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service pause

# 2. 查看集群状态,确认primary的Paused?状态为yes
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status

# 3. 先断开所有连接到数据库的客户端和应用程序(否则数据库将stop failed),然后停止主库
lt_ctl -D $LTDATA stop  # 默认会回滚所有未断开的连接

# 如果有连接存在导致stop failed,则可以尝试使用
lt_ctl -D $LTDATA stop -m smart

# 如果仍然stop failed,且因条件限制无法或不希望断开所有客户端连接,则可以使用-m immediate强制停止数据库
# 此方式下没有回滚连接,即强制断开、强制停止,没有完全shutdown,会导致在启动时recovery
lt_ctl -D $LTDATA stop -m immediate

# 4. 等待数据库停止成功,确认步骤3执行结果中出现server stopped信息

# 5. 修改数据库参数,或做其他事情

# 6. 启动主库
lt_ctl -D $LTDATA start

# 7. 等待数据库启动成功,确认步骤6执行结果中出现server started的信息

# 8. 恢复ltclusterd
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service unpause

# 9. 查看集群状态,确认primary的Paused?状态为no
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status
  1. 备库重新启动keepalived (需root用户),启动方法请参照本文档5.3(参考 LightDB高可用常用操作指南 )。

5.3.2.2. 备库重启

备库因修改数据库参数或其他原因需要重启,可以在lightdb用户下按以下步骤操作。

# 1. 暂停ltclusterd,防止自动failover
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service pause

# 2. 查看集群状态,确认standby的Paused?字段为yes
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status

# 3. 先断开所有连接到数据库的客户端和应用程序(否则数据库将stop failed),然后停止备库
lt_ctl -D $LTDATA stop  # 默认会回滚所有未断开的连接

# 如果有连接存在导致stop failed,则可以尝试使用
lt_ctl -D $LTDATA stop -m smart

# 如果仍然stop failed,且因条件限制无法或不希望断开所有客户端连接,则可以使用-m immediate强制停止数据库,
# 此方式下没有回滚连接,即强制断开、强制停止,没有完全shutdown,会导致在启动时recovery
lt_ctl -D $LTDATA stop -m immediate

# 4. 等待数据库停止成功,确认步骤3执行结果中出现server stopped信息

# 5. 修改数据库参数,或做其他事情

# 6. 启动备库
lt_ctl -D $LTDATA start

# 7. 等待数据库启动成功,确认步骤6执行结果中出现server started的信息

# 8. 恢复ltclusterd
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service unpause

# 9. 确认standby的Paused?字段为no
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status

5.3.2.3. 主备切换

在集群状态正常时进行主备切换,可以通过在备机上使用switchover来自动完成,方法如下。

# switchover会自动对集群做pause和unpuase操作,不需手动执行pause/unpause

# 1. 在备机上试运行
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf standby switchover --siblings-follow --dry-run

# 2. 如果试运行结果最后一行信息为:prererequisites for executing STANDBY SWITCHOVER are met,则表示成功,可以进入下一步

# 3. 在备机上正式运行switchover主备切换
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf standby switchover --siblings-follow

# 4. 在各节点上分别查看集群状态,确认各节点执行结果中primary和standby角色确实已互换
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status

5.3.2.4. 主库故障恢复

当主库发生故障(如宕机)failover后,备库会自动提升为新主库,以确保集群继续可用。

此后,若原主库故障修复,想重新加入集群,可以使用rejoin使原主库恢复成为新备库,然后再执行一次主备切换,恢复到最初的主备关系。

在原主库上rejoin的步骤如下:

# 1. 确认LightDB已停止

# 2. 确认ltclusterd是否启动,若不存在则启动它
ps aux | grep ltcluster
ltclusterd -d -f `realpath $LTDATA/../etc/ltcluster/ltcluster.conf` -p $LTDATA/../etc/ltcluster/ltclusterd.pid

# 3. rejoin试运行,new_primary_host为原备,也就是新主的host,new_primary_port为新主端口号
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf node rejoin -d 'host=new_primary_host port=new_primary_port dbname=ltcluster user=ltcluster' --verbose --force-rewind --dry-run

# 4. 确认试运行成功,进入下一步

# 5. 正式执行rejoin,new_primary_host与new_primary_port同上
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf node rejoin -d 'host=new_primary_host port=new_primary_port dbname=ltcluster user=ltcluster' --verbose --force-rewind

# 6. 按本文档5.3.2.3所述,在新备上执行主备切换,恢复到最初的主备关系

# 7. 确认keepalived是否启动,若不存在则启动它,启动方法请参照本文档5.3
ps aux | grep keepalived

主节点修复后,如果能够正常rejoin回来固然好,但实际更多的时候是rejoin失败,这通常发生在failover后,备库提升为新主,然后经过了一段时间的数据写入,之后原主rejoin(立刻rejoin一般不会有问题)。

在rejoin失败的情况下,可以在原主库上使用clone来重新初始化实例,步骤如下:

# 1. 确认LightDB已停止

# 2. 确认ltclusterd是否启动,若不存在则启动它
ps aux | grep ltcluster
ltclusterd -d -f `realpath $LTDATA/../etc/ltcluster/ltcluster.conf` -p $LTDATA/../etc/ltcluster/ltclusterd.pid

# 3. 清空实例目录下的内容,同时清空实例目录同级lt_*/lt_users目录下内容(若有需要,清空前可先备份)

# 4. clone试运行,new_primary_host为原备,也就是新主的host,new_primary_port为新主端口号
ltcluster -h new_primary_host -p new_primary_port -U ltcluster -d ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf standby clone --dry-run

# 5. 确认试运行结果显示all prerequisites for "standby clone" are met

# 6. clone实例目录,new_primary_host与new_primary_port同上
ltcluster -h new_primary_host -p new_primary_port -U ltcluster -d ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf standby clone -F

# 7. 启动数据库
lt_ctl -D $LTDATA start

# 8. 重新注册为standby
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf standby register -F

# 9. 按本文档5.3.2.3所述,在新备上执行主备切换,恢复到最初的主备关系

# 10. 确认keepalived是否启动,若不存在则启动它,启动方法请参照本文档5.3
ps aux | grep keepalived

5.3.2.5. 备库故障恢复

备库发生故障后的恢复步骤如下:

# 1. 启动lightdb
lt_ctl -D $LTDATA start

# 2. 确认ltclusterd是否启动,若不存在则启动它
ps aux | grep ltcluster
ltclusterd -d -f `realpath $LTDATA/../etc/ltcluster/ltcluster.conf` -p $LTDATA/../etc/ltcluster/ltclusterd.pid

# 3. 确认keepalived是否启动,若不存在则启动它,启动方法请参照本文档5.3
ps aux | grep keepalived

5.3.2.6. 集群数据复制(replication)级别

不同的业务场景对数据库主备一致性有不同的要求。一致性越高对性能影响越大。用户可通过配置synchronous_commit来达到不同级别的一致性。

# 同步模式,在主节点修改
synchronous_commit = 'on'
synchronous_standby_names = '*'

# 异步模式,在主节点修改
synchronous_commit = 'local'
synchronous_standby_names = ''

# 修改后,主节点调用reload生效
lt_ctl -D $LTDATA reload

下表概括了 synchronous_commit 不同设置对应不同的一致性级别:

synchrono us_commit设置

本 地提交 持久化

备库提交持 久化(数据库崩溃)

备库提交持 久化(OS崩溃)

备库查 询一致

remote_apply

on

remote_write

local

off

更详细的synchronous_commitsynchronous_standby_names请参考LightDB官方文档。

6. 安装LightDB分布式版

6.1. LightDB分布式三种部署模式简介

LightDB分布式支持常规、多机单实例和单机多实例三种部署方式。

  • 常规模式:1台服务器作为协调者节点,N(N > 1)台服务器作为工作节点,每个节点都是高可用方式部署 ,例如1个协调节点2个工作节点,每个节点都按1主1备方式部署,则需要6台服务器。如果每个节点按照1主1备1witness部署,则需要9台服务器。

  • 多机单实例:1台服务器作为协调者节点,N(N > 1)台服务器作为工作节点,每个节点上均有一个数据库实例,且所有实例均按单机模式部署

  • 单机多实例:使用1台服务器同时安装协调者节点和工作节点的实例,且所有实例均按单机模式部署

注意:如果需要在生产环境使用LightDB分布式,则建议只使用常规模式,其余两种模式仅为测试、学习等非生产环境提供。

6.2. 安装分布式常规模式

6.2.1. GUI安装

  • 按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。

    dis-install-gui-start

  • 界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。

    dis-install-gui-conf-mode-2

  • 选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式。

    dis-install-gui-install-mode

  • 选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择常规模式,并使用2个工作节点,同时为每个工作节点部署1个standby节点。

    dis-install-gui-dis-mode

  • 指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击Browse调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。

    dis-install-gui-install-loc

  • 部署协调者节点(Coordinator Node)高可用,点击Add,在弹出的对话框中指定虚拟IP和端口号。

    dis-install-gui-ip-cn-1

  • 为协调者节点指定primarystandby,此处操作步骤和LightDB高可用安装完全相同,详情请参考本文档第5章,此处及后续均不再赘述。

    dis-install-gui-ip-cn-2

  • 部署第一个工作节点(Worker Node)的高可用,点击Add,在弹出的对话框中指定虚拟IP和端口号,端口号可以与协调者节点相同,也可以不同。

    dis-install-gui-ip-dn-1

  • 为第一个工作节点指定primarystandby

    dis-install-gui-ip-dn-2

  • 按相同方法部署第二个工作节点的高可用。

    dis-install-gui-ip-dn-3

  • 将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。

    dis-install-gui-transfer

  • 检查每一台服务器的依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击Check Again重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again,也可以直接点击Ignore All忽略全部警告,直接进入下一步。

    dis-install-gui-pre-check

  • 选择数据库兼容模式

    dis-install-gui-compatible-type

  • OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。

    dis-install-gui-db-proc-type

  • 配置shared_bufferseffective_cache_size大小,以及设置字符集。默认shared_buffers = 25% * 总物理内存,默认effective_cache_size = 70% * 总物理内存,默认字符集为UTF-8,并提供GBKSQL_ASCIILATIN1三个其他选项。

    dis-install-gui-conf-para-mem

    dis-install-gui-conf-para-charset

  • 配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    dis-install-gui-db-pwd

  • LightDB安装信息总览,可以点击SAVE Response File保存为文件。

    dis-install-gui-sum

  • 总览信息确认无误后,点击Install执行安装。

    dis-install-gui-installing

  • 使用ssh客户端登录机器终端,切换到root用户,复制界面显示的命令并执行。执行的命令以实际界面显示的为准。

    # 启动keepalived服务
    # (在协调者节点的所有主,备上执行,witness上不用执行。所有工作节点不需执行)
    cd /home/lightdb/stage/lightdb-x/13.8-23.1/tools/bin
    ./keepalived -f /home/lightdb/stage/lightdb-x/13.8-23.1/etc/keepalived/keepalived.conf
    
    # 启动ntp服务(在所有主,备,witness上执行)
    sh /home/lightdb/lightdb-x-13.8-23.1-10551-el7.x86_64/script/13_ntp_start.sh \
      /home/lightdb/stage/lightdb-x/13.8-23.1
    

    dis-install-gui-keepalived

    启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。

  • 检查分布式集群中各节点的LightDB Database、keepalived以及NTP是否均正确启动。

  • 检测通过,点击Finish关闭安装向导。

    dis-install-gui-finish

6.2.2. 命令行安装

命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。

  • 在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。

    dis-install-cui-start

  • 选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。

    dis-install-cui-conf-mode

  • 选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。

    dis-install-cui-install-mode

  • 选择分布式常规、多机单实例、单机多实例部署方式。这里选择常规模式,并且使用与6.2.1小节相同的节点数量与部署方式。

    dis-install-cui-dis-mode

  • 指定LightDB安装目录(要确保lightdb用户有写入权限)。

    dis-install-cui-install-loc

  • 配置协调者节点高可用。

    dis-install-cui-ip-cn

  • 添加一个work节点,并且配置高可用。

    dis-install-cui-ip-dn-1

  • 添加第二个work节点,并且配置高可用。

    dis-install-cui-ip-dn-2

  • 配置LightDB是否开启归档模式,默认开启。

    dis-install-cui-archive

  • 配置LightDB是否开启增量检查点,默认不开启。

    single-install-cui-incremental-checkpoints

  • 将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。传输完成后会检查依赖包和内核参数。

    dis-install-cui-transfer dis-install-cui-pre-check

  • 选择数据库兼容模式。

    dis-install-cui-compatible-type

  • 选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。

    dis-install-cui-db-proc-type

  • 配置shared_buffers与effective_cache_size大小,以及设置字符集。

    dis-install-cui-conf-para

  • 设置super用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    dis-install-cui-db-pwd

  • 选择继续安装,直至安装完成,然后选择一台服务器作为NTP服务器,此处使用默认值。

    dis-install-cui-finish dis-install-cui-ntp

  • 使用root用户,在协调者节点的 primarystandby上执行界面提示的启动 keepalived 的命令(所有工作节点不需执行)。 启动 ntp 的命令需要在所有机器上执行。

    dis-install-cui-keepalived

    启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。

  • 上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出Install Finish信息,并自动退出安装向导。

6.3. 安装分布式多机单实例模式

6.3.1. GUI安装

  • 按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。

    dis-ms-install-gui-start

  • 界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。

    dis-ms-install-gui-conf-mode-2

  • 选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式版。

    dis-ms-install-gui-install-mode

  • 选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择多机单实例模式,并使用2个工作节点。

    dis-ms-install-gui-dis-mode

  • 点击Add,添加1个协调者节点和2个工作节点的IP与端口号。

    dis-ms-install-gui-ip

  • 将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。

    dis-ms-install-gui-transfer

  • 检查每一台服务器的依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击Check Again重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again,也可以直接点击Ignore All忽略全部警告,直接进入下一步。

    dis-ms-install-gui-pre-check

  • 选择兼容模式

    dis-ms-install-gui-compatible-type

  • OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。

    dis-ms-install-gui-db-proc-type

  • 指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击Browse调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。

    dis-ms-install-gui-install-loc

  • 配置shared_bufferseffective_cache_size大小,以及设置字符集。默认shared_buffers = 25% * 总物理内存,默认effective_cache_size = 70% * 总物理内存,默认字符集为UTF-8,并提供GBKSQL_ASCIILATIN1三个其他选项。

    dis-ms-install-gui-conf-para-mem

    dis-ms-install-gui-conf-para-charset

  • 配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写), 密码不支持以#开头。

    dis-ms-install-gui-db-pwd

  • LightDB安装信息总览,可以点击SAVE Response File保存为文件。

    dis-ms-install-gui-sum

  • 总览信息确认无误后,点击Install执行安装。

    dis-ms-install-gui-installing

  • 安装完成后,选择一台服务器作为NTP服务器,此处使用默认值。

    dis-ms-install-gui-ntp

  • 使用root用户,在所有协调者节点和工作节点上执行界面中提示的命令以启用NTP服务,然后点击Next。

    dis-ms-install-gui-keepalived

  • 这里提示是否安装LVS,本次安装是单CN模式,不需要安装LVS,直接选择否。

    dis-ms-install-gui-lvs

  • 检测通过,点击Finish关闭安装向导。

    dis-ms-install-gui-finish

6.3.2. 命令行安装

命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。

  • 在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。

    dis-ms-install-cui-start

  • 选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。

    dis-ms-install-cui-conf-mode

  • 选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。

    dis-ms-install-cui-install-mode

  • 选择分布式常规、多机单实例、单机多实例部署方式。这里选择多机单实例模式,并且使用与6.3.1小节相同的节点数量与部署方式。

    dis-ms-install-cui-dis-mode

  • 分别配置协调者节点和工作节点

    dis-ms-install-cui-ip

  • 将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。

    dis-ms-install-cui-transfer

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

    dis-ms-install-cui-pre-check

  • 选择数据库兼容模式。

    dis-ms-install-cui-compatible-type

  • 选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。

    dis-ms-install-cui-db-proc-type

  • 指定LightDB安装目录和实例目录(要确保lightdb用户有写入权限)。

    dis-ms-install-cui-install-loc

  • 配置LightDB是否开启归档模式,默认开启。

    single-install-cui-archive

  • 配置LightDB是否开启增量检查点,默认不开启。

    single-install-cui-incremental-checkpoints

  • 配置shared_buffers与effective_cache_size大小,以及设置字符集。

    single-install-cui-conf-para

  • 设置super用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    dis-ms-install-cui-db-pwd

  • 选择继续安装,直至安装完成

    dis-ms-install-cui-installing

  • 使用root用户,在所有协调者节点和工作节点上执行界面中提示的命令以启用NTP服务,然后按任意键继续

    dis-ms-install-cui-ntp dis-ms-install-cui-keepalived

  • 提示安装LVS,本次安装是单CN模式,不需要安装LVS,直接选择否。

    dis-ms-install-cui-lvs

6.4. 安装分布式单机多实例模式

6.4.1. GUI安装

  • 按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。

    dis-sm-install-gui-start

  • 界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。

    dis-sm-install-gui-conf-mode-2

  • 选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式。

    dis-sm-install-gui-install-mode

  • 选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择单机多实例模式,并使用2个工作节点。

    dis-sm-install-gui-dis-mode

  • 检查依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击Check Again重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again,也可以直接点击Ignore All忽略全部警告,直接进入下一步。

    dis-sm-install-gui-pre-check

  • 选择数据库兼容模式

    dis-sm-install-gui-compatible-type

  • OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。

    dis-sm-install-gui-db-proc-type

  • 指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击Browse调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。

    dis-sm-install-gui-install-loc

  • 点击Add,依次添加协调者节点和工作节点的实例目录与端口号,各个节点的端口号不能相同。

    dis-sm-install-gui-port-set

  • 配置shared_bufferseffective_cache_size大小,以及设置字符集。默认shared_buffers = 25% * 总物理内存,默认effective_cache_size = 70% * 总物理内存,默认字符集为UTF-8,并提供GBKSQL_ASCIILATIN1三个其他选项。

    dis-sm-install-gui-conf-para-mem

    dis-sm-install-gui-conf-para-charset

  • 配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写), 密码不支持以#开头。

    dis-sm-install-gui-db-pwd

  • LightDB安装信息总览,可以点击SAVE Response File保存为文件。

    dis-sm-install-gui-sum

  • 总览信息确认无误后,点击Install执行安装。

    dis-sm-install-gui-installing

  • 安装完成后,会提示安装LVS,我们这个安装形式不需要LVS,选择不安装。

    dis-sm-install-gui-lvs

  • 安装成功

    dis-sm-install-gui-finish

6.4.2. 命令行安装

命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。

  • 在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。

    dis-sm-install-cui-start

  • 选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。

    dis-sm-install-cui-conf-mode

  • 选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。

    dis-sm-install-cui-install-mode

  • 选择分布式常规、多机单实例、单机多实例部署方式。这里选择单机多实例模式,并且使用与6.4.1小节相同的节点数量与部署方式。

    dis-sm-install-cui-dis-mode

  • 指定实例目录(要确保lightdb用户有写入权限),并依次添加协调者节点和工作节点的端口号,各个节点的端口号不能相同。

    dis-sm-install-cui-install-loc

    dis-sm-install-cui-port-set

  • 配置LightDB是否开启归档模式,默认开启。

    dis-sm-install-cui-archive

  • 配置LightDB是否开启增量检查点,默认不开启。

    single-install-cui-incremental-checkpoints

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

    dis-sm-install-cui-pre-check

  • 选择数据库兼容模式。

    dis-sm-install-cui-compatible-type

  • 选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。

    dis-sm-install-cui-db-proc-type

  • 配置shared_buffers与effective_cache_size大小,以及设置字符集。

    dis-sm-install-cui-conf-para

  • 设置super用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。

    dis-sm-install-cui-db-pwd

  • 输入yes开始正式安装。

    dis-sm-install-cui-installing

  • 安装完成后,会提示安装LVS,我们这个安装形式不需要LVS,选择不安装。

    dis-sm-install-cui-lvs

7. 卸载

7.1. 界面卸载

  • 进入LightDB安装目录下的uninstall目录,对于本文档演示所用的范例来说就是/home/lightdb/stage/uninstall

    uninstall-ls

  • 配置DISPLAY环境变量,运行uninstall.sh卸载脚本,输入yes选择GUI卸载。

    uninstall-gui-start

  • 有三个卸载选项,仅卸载数据库实例、仅卸载数据库与LightDB EM、全部卸载,默认为仅卸载数据库实例,此处选择全部卸载。

    uninstall-gui-uninstall-opt

  • 以LightDB分布式卸载为例,如下图所示,若想保留某个节点不卸载,可点击Delete将其从卸载列表中去除,之后还可以通过Add Server将其重新添加回来。

    uninstall-gui-uninstall-server

  • 确认卸载信息,无误后点击Uninstall执行卸载。

    uninstall-gui-uninstall-sum

  • 等待卸载完成。

    uninstall-gui-uninstall-uninstalling

  • 点击finish退出。

    uninstall-gui-uninstall-finish

  • 如果是高可用环境,则使用root账号登录主,备停止keepalived进程。

  • 如果是通过LightDB安装的NTP服务,则使用root账号登录主,备,witness停止ntp进程。

7.2. 命令行卸载

  • 进入LightDB安装目录下的uninstall目录,对于本文档演示所用的范例来说就是/home/lightdb/stage/uninstall

    uninstall-ls

  • 配置DISPLAY环境变量,运行uninstall.sh卸载脚本,输入no选择命令行卸载。

    uninstall-cui-start

  • 有三个卸载选项,仅卸载数据库实例、仅卸载数据库、全部卸载(数据库和实例),默认为仅卸载数据库实例

    uninstall-cui-uninstall-opt

  • 以LightDB分布式卸载为例,选择3继续(可以使用Delete移除某些不想卸载的主机)

    uninstall-cui-uninstall-server

  • 检测到有LightDB实例,二次提示是否确定卸载(请注意核查,避免数据被误删除)。

    uninstall-cui-uninstall-check

  • 等待卸载完成。

    uninstall-cui-uninstall-finish

  • 如果是高可用环境,则使用root账号登录主,备停止keepalived进程。

  • 如果是通过LightDB安装的NTP服务,则使用root账号登录主,备,witness停止ntp进程。

8. 安装LightDB-X客户端

8.1. 命令行安装

  • 将LightDB-X client安装包拷贝到服务器的安装目录下,对于本文档演示所用的范例来说安装包是LightDB1.0-x-client-V202304-00-001-el7-x86_64-debug.zip,安装目录是 /root

    [root@localhost ~]# ls
    anaconda-ks.cfg  Desktop  Documents  Downloads  LightDB1.0-x-client-V202304-00-001-el7-x86_64-debug.zip  Music  original-ks.cfg  Pictures  Public  Templates  Videos
    [root@localhost ~]#
    [root@localhost ~]# pwd
    /root
    [root@localhost ~]#
    
  • 解压LightDB-X client安装包。

    [root@localhost ~]# unzip LightDB1.0-x-client-V202304-00-001-el7-x86_64-debug.zip
    Archive:  LightDB1.0-x-client-V202304-00-001-el7-x86_64-debug.zip
       creating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/
       creating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/lt_distributed_probackup.py
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/lt_distributed_dump.py
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/lt_distributed_restore.py
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/ltlog.py
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/base.py
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/ltuldr
      inflating: lightdb-x-client-13.8-23.3-16127-el7.x86_64/bin/lt_basebackup
    
  • cd到LightDB-X client解压后生成的目录中,本例中就是lightdb-x-client-13.8-23.3-16127-el7.x86_64目录,bin目录中存放的就是客户能够使用的脚本和可执行文件,lib目录存放的是被依赖的so文件,include目录存放的是头文件。

    [root@localhost ~]# ls lightdb-x-client-13.8-23.3-16127-el7.x86_64
    bin  include  lib
    [root@localhost ~]#
    
  • 使用bin中提供的lt_distributed_dump.pylt_distributed_restore.pylt_distributed_probackup.py脚本,依赖python3,如果本地没有安装,则需要安装python3环境。

    # centos7默认不安装,执行下面的命令安装python3
    sudo yum install -y python3
    
  • 配置环境变量。

    export LTHOME=/root/lightdb-x-client-13.8-23.3-16127-el7.x86_64
    export PATH=${LTHOME}/bin:${PATH}
    export LD_LIBRARY_PATH=${LTHOME}/lib:${LD_LIBRARY_PATH}
    
  • 以上步骤都执行成功,则LightDB-X client安装成功。