LightDB是恒生电子推出的同时支持在线事务处理与在线分析处理的融合型分布式数据库产品,具备SQL兼容性高、容量弹性伸缩、金融级高可用、现代硬件融合、纯内存计算等核心特性,主要适用于对可用性、一致性要求较高的系统。本文主要介绍一下LightDB数据库的安装。
产品架构
安装包的获取
LightDB安装的可以从官网获取,官网地址LightDB:更快、更稳、更懂金融的分布式关系型数据库
lightdb-x-***对应LightDB数据库安装的包,用户根据实际的服务器机器选择对应的版本
light-em- 对应LightDB数据库运维监控的安装包,light-em的包和lightdb-x的包大版本13.3-22.1必须保持一致
1 前言
恒生电子企业级数据库LightDB安装包名格式为:
lightdb-x-version-revision-os.arch.zip
- lightdb-x:数据库名
- version:数据库版本号,目前最新为13.3-22.1,13.3表示基于PostgreSQL 13.3版本,22.1表示2022年第1个Release版本
- revision:源代码提交编号
- os:安装包适用的操作系统,目前支持CentOS7/RHEL7和银河麒麟(Kylin)服务器V10系列
- arch:安装包适用的CPU架构,分为x86_64和aarch64
目前支持如下平台:
- x86_64, CentOS/RHEL >= 7.6
- x86_64(海光处理器),Kylin高级服务器V10
- aarch64,CentOS/RHEL >= 7.6
- aarch64,Kylin高级服务器V10SP2
注意:若要在aarch64 Kylin V10SP1
操作系统上安装使用LightDB,需要先按照本文档3.5小节所述安装所需的依赖,然后再额外安装readline-8
,最后再使用aarch64 Kylin V10SP2
安装包安装LightDB。
本文档主要介绍LightDB 在x86_64 CentOS 7.6
平台的安装过程及注意事项,其他支持的操作系统如有差异,请根据实际情况灵活调整。
安装过程会自动在/home/lightdb/.bashrc
中配置PATH
、PGHOME
、PGDATA
等环境变量,安装完成后,需重新登录Shell会话生效。
2 推荐配置
配置参数 | 最低配置 | 推荐配置 |
---|---|---|
CPU | 16核 | 96核 |
内存 | 64GB | 256GB |
存储 | 60GB,SSD NVMe | 1TB以上SSD NVMe或PMEM |
网络 | 千兆网络 | 千兆网络 |
3 安装前准备
本章节所有准备工作,如无特殊说明,均需要在root用户下进行。
3.1 防火墙配置
如果您的环境有防火墙,则需要在防火墙中开启以下端口:
端口 | 协议 | 用途 |
---|---|---|
默认5432 | TCP | 数据库服务 |
17331 | TCP | EM服务 |
18331 | TCP | EM服务 |
123 | UDP | NTP校时服务 |
其中,数据库服务的端口5432为默认值,这个值在安装过程中可以自行指定,如果希望使用其他端口,则在此处需要将5432修改为实际值,其余用作EM服务和NTP校时服务的三个端口为固定值。
***注意:请务必确保上述四个端口未作他用。***以下为防火墙配置步骤。
- 如果使用firewall防火墙,请执行以下命令,其中第一条命令中的5432需修改为实际使用的端口
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --permanent --add-port=17331/tcp
firewall-cmd --permanent --add-port=18331/tcp
firewall-cmd --permanent --add-port=123/udp
- 如果使用iptables防火墙,请执行以下命令,其中第一条命令中的5432需修改为实际使用的端口
iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -p tcp --dport 17331 -j ACCEPT
iptables -A INPUT -p tcp --dport 18331 -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 检查主机名
使用hostname
命令查看主机名,如果是localhost
或localhost.localdomain
,则需要修改主机名,主机名可自行指定。
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname lightdb
3.4 检查时间和时区
查看当前时区设置。
[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.5 安装依赖包
# 安装包通用运行依赖,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不可用,也可从iso镜像文件,或网络获取rpm包。
3.6 配置/etc/hosts
在/etc/hosts文件中添加ip与hostname信息,格式为ip hostname
,如下例所示。
[root@lightdb ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.20.43.155 master
10.20.43.157 standby
3.7 创建lightdb用户并设置sudo免密
- 创建lightdb用户与用户组
groupadd lightdb
useradd -g lightdb -m lightdb
passwd lightdb
- 为lightdb用户设置sudo免密,如下图所示,在
/etc/sudoers
中新增一行lightdb ALL=(ALL) NOPASSWD:ALL
3.8 创建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.9 配置操作系统内核参数
3.9.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的配置与使用情况,如下图所示。
3.9.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 -c
、ulimit -n
和ulimit -u
命令确认设置生效。
3.10 更改/var/log/messages默认权限
注意:本步骤仅在安装LightDB EM时需要,如果不安装EM,则可以跳过本章节。
修改/etc/logrotate.d/syslog
文件(在Kylin Linux中为/etc/logrotate.d/rsyslog
),确保/var/log/messages
包含如下内容:
/var/log/messages
{
create 0644
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
然后执行如下命令,使设置生效。
logrotate --force /etc/logrotate.d/syslog
logrotate --force /etc/logrotate.d/rsyslog (适用于Kylin Linux)
3.11 开启Swap交换区
使用free -h
查看是否已开启Swap交换区,如未配置,则可以按以下步骤配置开启。
- 创建交换区空白文件,文件大小即为交换区大小,如果磁盘空间充足,建议当物理内存不超过128GB时,Swap大小设为物理内存的一半,建议当物理内存大于128GB时,Swap大小设为固定128GB。下面的示例将交换区文件创建在/swap,大小为2GB,目的仅用于示例。实际配置请按照上述建议决定交换区大小,并选择合适的磁盘路径来放置交换区文件。
dd if=/dev/zero of=/swap bs=1M count=2048 # Swap交换区大小 = 2048MB
- 使用
mkswap
格式化文件
mkswap -f /swap
- 修改交换区文件权限为0600
chmod 0600 /swap
- 启用刚刚创建的交换区
swapon /swap
- 设置开机自动启用,修改
/etc/fstab
文件,添加如下配置
/swap swap swap defaults 0 0
3.12 配置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.13 配置NTP校时服务
注意:本步骤仅在安装LightDB高可用、分布式常规模式、分布式多机单实例模式三种情形时需要,如果安装单机版或分布式单机多实例模式,则可跳过本章节。关于分布式常规模式、分布式多机单实例模式的定义,请参考本文档6.1 LightDB分布式三种部署模式简介。
配置NTP校时服务的方法在安装过程中会有引导信息提示,详细步骤在后续章节中具体说明。如果您希望自行配置NTP服务,请务必确保用于安装LightDB的服务器全部配置完成,不能出现部分启动了NTP、部分未启动的情形,否则LightDB将在校验NTP服务启动情况这一步骤失败。
3.14 准备LightDB安装包
根据前言中介绍的安装包名规则和目标主机的实际情况,选择正确的LightDB安装包上传到/home/lightdb
目录,并确保安装包的用户与用户组均为lightdb。
解压安装包,进入解压后目录。
运行install.sh
脚本,进入安装过程,根据安装向导提示信息,此处有两种安装方式,输入Yes
为GUI安装,输入No
为命令行安装。
如果选择GUI安装,需要满足下列条件:
- Windows上运行Xmanager - Passive,并通过Xshell SSH连接服务器
- 目标服务器已配置DISPLAY环境变量
export DISPLAY=Windows IP:0.0
其中,Windows IP为运行Xmanager - Passive的主机IP地址,冒号:后面的值一般为0.0,具体取决于Xmanager - Passive运行后的状态提示,如下图所示。
- 目标服务器已安装
libXtst
、gtk2
、libX11
这几个运行GUI需要的依赖包
yum install -y libXtst gtk2 libX11
如果无法满足上述条件,或者已满足上述条件,但仍无法显示GUI安装向导界面,则可以选用命令行安装,二者除了向导方式外,并无任何差异。
3.15 设置sysstat自启动
systemctl enable sysstat
systemctl start sysstat
4 安装LightDB单机版
4.1 GUI安装LightDB单机版
-
按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。
-
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
-
本文档使用选项二,以展示完整的安装过程。
-
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们使用默认选择。
-
选择单机版进入下一步,配置端口号,默认为5432,可自行指定任意合法端口。如果指定了一个非法端口或正在使用的端口,点击Next会无法进入下一步,同时界面中会给出错误提示信息。
-
检查依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击
Check Again
重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again
,也可以直接点击Ignore All
忽略全部警告,直接进入下一步。
-
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
-
指定数据库安装目录和实例目录。目录必须事先创建,并正确设置所属用户(组)(步骤详见本文档3.8),默认安装目录为
/usr/local/lightdb
,默认实例目录为/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,可以在文本框中直接修改或点击Brows
调出路径选择对话框,来指定其他目录。
-
配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 15% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。
-
配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写)、下划线中的两种。
-
选择是否安装Enterprise Manager(LightDB EM,LightDB数据库监控管理平台),默认不安装,此处选择安装EM。
-
LightDB安装信息总览,可以点击
Save Response File
保存为文件。
-
总览信息确认无误后,点击Install执行安装。
-
安装成功,界面提示框中会显示LightDB EM的URL地址、登录用户名和默认密码,请牢记以上信息,确认无误后点击Finish退出。
4.2 命令行安装LightDB单机版
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
-
在start.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
-
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
-
选择安装单机版、高可用版或分布式版,键入1安装单机版,键入2选择高可用版,键入3选择分布式版,默认为单机版。
-
指定端口号,默认为5432。
-
检查依赖包与Linux内核参数,检查通过后会进入下一步选择,否则会报错并给出提示信息,其中WARNING会默认全部忽略。
-
选择OLTP或OLAP,键入1为OLTP,键入2为OLAP,默认为1。
-
指定LightDB安装目录和实例目录,默认为
/usr/local/lightdb
和/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,此处均使用默自定义目录。
-
配置shared_buffers与effective_cache_size大小,以及设置字符集。
-
设置super用户密码,键入时密码不可见。
-
选择是否安装LightDB EM,键入1不安装,键入2安装,默认为不安装,此处选择安装。
-
选择继续安装,直至安装完成,请牢记提示信息中的LightDB EM URL地址、登录用户名和默认密码。
5 安装LightDB高可用版
安装LightDB高可用,要求每一台主机都先完成3.1-3.11所述准备工作,然后按3.12所述打通SSH免密,最后按3.13所述在作为Primary的主机上准备安装包。
5.1 GUI安装LightDB高可用版
-
按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。
-
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
-
本文档使用选项二,以展示完整的安装过程。
-
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择高可用版。
-
点击Add,在弹出的界面中添加虚拟IP,虚拟IP需要与配置的主备服务器在同一个网段。
-
点击下图红框所示的Add,为每一台服务器指定IP、角色(
primary
、standby
、witness
)和同步方式(none
、sync
、async
),primary
和witness
只能选择none
,standby
可以在sync
和async
中选择其一,如果选错,点击Next会无法进入下一步,同时界面中会有错误信息提示。配置完成后,点击Add
进行添加,添加后还可以通过Delete
删除。
-
LightDB高可用版支持一主一从、一主多从两种部署方式。在节点的选择上,对于一主一从,
witness
是可选的,而对于一主多从,witness
是必须的;在standby
的同步异步选择上,如果节点处于同一网段,则同步异步都可选择,如果处于不同的网段,则只能是异步;在网段的要求上,至少要有1个standby
和primary
位于同一网段。此处以一主一从一哨兵为例进行展示。
-
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。
-
配置端口号,默认为5432,可自行指定任意合法端口,如果指定了一个非法端口或正在使用的端口,点击Next会无法进入下一步,同时界面中会给出错误提示信息。
-
检查每一台服务器的依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击
Check Again
重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again
,也可以直接点击Ignore All
忽略全部警告,直接进入下一步。
-
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
-
指定数据库安装目录和实例目录。目录必须事先创建,并正确设置所属用户(组)(步骤详见本文档3.8),默认安装目录为
/usr/local/lightdb
,默认实例目录为/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,可以在文本框中直接修改或点击Brows
调出路径选择对话框,来指定其他目录。
-
配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 15% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。
-
配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写)、下划线中的两种。
-
选择是否安装Enterprise Manager(LightDB EM,LightDB数据库监控管理平台),默认不安装,如果选择安装,则会仅安装在
primary
中。此处我们选择安装LightDB EM。
-
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。
-
总览信息确认无误后,点击Install执行安装。
-
安装完成后,选择一台服务器作为NTP服务器,此处使用默认值
primary
。
-
使用
root
用户,在**primary
和所有standby
服务器上依次执行cd /home/lightdb/lightdb/keepalived-1.3.5-x86/sbin
、./keepalived -f /home/lightdb/lightdb/lightdb-x/13.3-22.1/etc/keepalived/keepalived.conf
以启用keepalived;在primary
、所有standby
、以及witness
**服务器上执行sh /home/lightdb/lightdb-x-13.3-22.1-4135-el7.x86_64/script/13_ntp_start.sh /home/lightdb/lightdb/lightdb-x/13.3-22.1
以启用NTP服务,然后点击Next(注意:实际命令以界面中提示的为准,此处仅代表本文档安装使用的示例)。
-
检查集群中各节点的LightDB Database、LightDB EM、keepalived以及NTP是否均正确启动。
-
安装成功,界面提示框中会显示LightDB EM的URL地址、登录用户名和默认密码,请牢记以上信息,确认无误后点击Finish退出。
-
如果因环境等因素限制无法使用keepalived,或者未启用NTP服务,会因检查不通过而无法点击
finish
,如果此时LightDB Database和LightDB EM均已正确启动,则可直接点击Cancel
退出安装向导。
5.2 命令行安装LightDB高可用版
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
-
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
-
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
-
选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择2。
-
按照命令行提示信息,依次填写
Virtual IP
,以及primary
、standby
和witness
服务器的IP与同步方式。在节点的选择上,对于一主一从,witness
是可选的,若不想指定可按回车键跳过,而对于一主多从,witness
是必须的;在standby
的同步异步选择上,如果节点处于同一网段,则同步异步都可选择,如果处于不同的网段,则只能是异步;在网段的要求上,至少要有1个standby
和primary
位于同一网段。此处以一主一从一哨兵的方式进行展示。
-
确认集群各节点信息是否填写无误,确认无误后键入1继续,否则键入2进行重设,此处选择1。
-
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成,直到出现如下图所示的指定端口号的提示信息,端口号默认为5432,本次安装使用5433。
-
检查依赖包与Linux内核参数。
-
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
-
指定LightDB安装目录和实例目录,默认为
/usr/local/lightdb
和/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,此处均使用默自定义目录。
-
配置shared_buffers与effective_cache_size大小,以及设置字符集。
-
设置super用户密码,键入时密码不可见。
-
选择是否安装LightDB EM,键入1不安装,键入2安装,默认为不安装,此处选择安装。
-
选择继续安装,直至安装完成,请牢记提示信息中的LightDB EM URL地址、登录用户名和默认密码,然后指定集群中的一个结点作为NTP服务器,默认为
primary
,此处使用默认值。
-
使用
root
用户,在**primary
和所有standby
服务器上依次执行cd /home/lightdb/lightdb/keepalived-1.3.5-x86/sbin
、./keepalived -f /home/lightdb/lightdb/lightdb-x/13.3-22.1/etc/keepalived/keepalived.conf
以启用keepalived(如果因环境等因素限制确实无法使用keepalived,则可忽略该步骤);在primary
、所有standby
、以及witness
**服务器上执行sh /home/lightdb/lightdb-x-13.3-22.1-4135-el7.x86_64/script/13_ntp_start.sh /home/lightdb/lightdb/lightdb-x/13.3-22.1
以启用NTP服务,然后点击Next(注意:实际命令以界面中提示的为准,此处仅代表本文档安装使用的示例)。
-
上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出
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; --备库查询
查询结果示例,如下图所示。
5.3.1.2 查看各节点状态
分别在primay
、standby
、witness
运行下面的命令,以查看集群各节点状态。
$PGHOME/bin/ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf node status
查询结果示例,如下图所示。
5.3.1.3 查看集群状态
- 查看集群服务状态,需要重点关注的信息有:Role、Status(数据库运行状态)、ltclusterd(ltclusterd守护进程运行状态)、Paused(ltclusterd是否暂停)
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service status
注意:上述命令在primary
、standby
、witness
上都可以执行,且各节点上的执行结果应该是完全相同的,若不完全相同,则说明集群状态有异,需及时排查原因。
以主库查询结果为例进行说明,如下图所示,正常状态下期望的结果为:
-
Name
、Role
应与实际相符 -
Status
应为running
(primary
和witness
前面还应有一个星号*
) -
ltclusterd
应为running
-
Paused?
应为no
(除非在相应节点上执行了ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service pause
命令)
-
查看集群IP信息,如虚拟IP
ip a show #查看所有网卡
ip a show [interface] #查看指定网卡
查询结果示例,如下图所示。
5.3.1.4 查看日志
ltclusterd的日志路径为$PGHOME/etc/ltcluster/ltcluster.log
,LightDB数据库日志路径为$PGDATA/log/
,其中数据库日志文件以日期时间命名,且新文件创建满足如下规律,可按照快速锁定目标日志文件。
- 每次启动都会产生一个新的日志文件
- 若无数据库重启,则每天产生一个新的日志文件
5.3.2 管理
5.3.2.1 主库重启
主库因修改数据库参数或其他原因需要重启,可以按以下步骤操作。
- 先停止备库的
keepalived
(重要),在root用户下执行以下命令
# 1. 获得备库keepalived进程pid
cat /var/run/keepalived.pid
# 2. 杀死keepalived进程
kill keepalived_pid
# 3. 确认keepalived进程确实已不存在
ps aux | grep keepalived
- 主库重启,需要在lightdb用户下执行,重启期间主库不提供服务
# 1. 暂停ltclusterd,防止自动failover
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service pause
# 2. 查看集群状态,确认primary的Paused?状态为yes
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service status
# 3. 先断开所有连接到数据库的客户端和应用程序(否则数据库将stop failed),然后停止主库
lt_ctl -D $PGDATA stop # 默认会回滚所有未断开的连接
# 如果有连接存在导致stop failed,则可以尝试使用
lt_ctl -D $PGDATA stop -m smart
# 如果仍然stop failed,且因条件限制无法或不希望断开所有客户端连接,则可以使用-m immediate强制停止数据库,此方式下没有回滚连接,即强制断开、强制停止,没有完全shutdown,会导致在启动时recovery
lt_ctl -D $PGDATA stop -m immediate
# 4. 等待数据库停止成功,确认步骤3执行结果中出现server stopped信息
# 5. 修改数据库参数,或做其他事情
# 6. 启动主库
lt_ctl -D $PGDATA start
# 7. 等待数据库启动成功,确认步骤6执行结果中出现server started的信息
# 8. 恢复ltclusterd
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service unpause
# 9. 查看集群状态,确认primary的Paused?状态为no
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service status
- 备库重新启动
keepalived
(需root用户),启动方法请参照本文档5.3。
5.3.2.2 备库重启
备库因修改数据库参数或其他原因需要重启,可以在lightdb
用户下按以下步骤操作。
# 1. 暂停ltclusterd,防止自动failover
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service pause
# 2. 查看集群状态,确认standby的Paused?字段为yes
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service status
# 3. 先断开所有连接到数据库的客户端和应用程序(否则数据库将stop failed),然后停止备库
lt_ctl -D $PGDATA stop # 默认会回滚所有未断开的连接
# 如果有连接存在导致stop failed,则可以尝试使用
lt_ctl -D $PGDATA stop -m smart
# 如果仍然stop failed,且因条件限制无法或不希望断开所有客户端连接,则可以使用-m immediate强制停止数据库,此方式下没有回滚连接,即强制断开、强制停止,没有完全shutdown,会导致在启动时recovery
lt_ctl -D $PGDATA stop -m immediate
# 4. 等待数据库停止成功,确认步骤3执行结果中出现server stopped信息
# 5. 修改数据库参数,或做其他事情
# 6. 启动备库
lt_ctl -D $PGDATA start
# 7. 等待数据库启动成功,确认步骤6执行结果中出现server started的信息
# 8. 恢复ltclusterd
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service unpause
# 9. 确认standby的Paused?字段为no
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service status
5.3.2.3 主备切换
在集群状态正常时进行主备切换,可以通过在备机上使用switchover
来自动完成,方法如下。
# switchover会自动对集群做pause和unpuase操作,不需手动执行pause/unpause
# 1. 在备机上试运行
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf standby switchover --siblings-follow --dry-run
# 2. 如果试运行结果最后一行信息为:prererequisites for executing STANDBY SWITCHOVER are met,则表示成功,可以进入下一步
# 3. 在备机上正式运行switchover主备切换
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf standby switchover --siblings-follow
# 4. 在各节点上分别查看集群状态,确认各节点执行结果中primary和standby角色确实已互换
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf service status
5.3.2.4 主库故障恢复
当主库发生故障(如宕机)failover后,备库会自动提升为新主库,以确保集群继续可用。
此后,若原主库故障修复,想重新加入集群,可以使用rejoin使原主库恢复成为新备库,然后再执行一次主备切换,恢复到最初的主备关系。
在原主库上rejoin的步骤如下:
# 1. 确认LightDB已停止
# 2. 确认ltclusterd是否启动,若不存在则启动它
ps aux | grep ltcluster
ltclusterd -d -f $PGHOME/etc/ltcluster/ltcluster.conf -p $PGHOME/etc/ltcluster/ltclusterd.pid
# 3. rejoin试运行,new_primary_host为原,也就是新主的host,new_primary_port为新主端口号
ltcluster -f $PGHOME/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 $PGHOME/etc/ltcluster/ltcluster.conf node rejoin -d 'host=new_primary_host port=new_primary_port dbname=ltcluster user=ltcluster' --verbose --force-rewind
# 6. 按本文档5.4.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 $PGHOME/etc/ltcluster/ltcluster.conf -p $PGHOME/etc/ltcluster/ltclusterd.pid
# 3. 清空实例目录下的内容(若有需要,清空前可先备份)
# 4. clone试运行,new_primary_host为原,也就是新主的host,new_primary_port为新主端口号
ltcluster -h new_primary_host -p new_primary_port -U ltcluster -d ltcluster -f $PGHOME/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 $PGHOME/etc/ltcluster/ltcluster.conf standby clone -F
# 7. 启动数据库
lt_ctl -D $PGDATA start
# 8. 重新注册为standby
ltcluster -f $PGHOME/etc/ltcluster/ltcluster.conf standby register -F
# 9. 按本文档5.4.2.3所述,在新备上执行主备切换,恢复到最初的主备关系
# 10. 确认keepalived是否启动,若不存在则启动它,启动方法请参照本文档5.3
ps aux | grep keepalived
5.3.2.5 备库故障恢复
备库发生故障后的恢复步骤如下:
# 1. 启动lightdb
lt_ctl -D $PGDATA start
# 2. 确认ltclusterd是否启动,若不存在则启动它
ps aux | grep ltcluster
ltcluster -d -f $PGHOME/etc/ltcluster/ltcluster.conf -p $PGHOME/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 $PGDATA reload
下表概括了 synchronous_commit
不同设置对应不同的一致性级别:
synchronous_commit设置 | 本地提交持久化 | 备库提交持久化(数据库奔溃) | 备库提交持久化(OS奔溃) | 备库查询一致 |
---|---|---|---|---|
remote_apply | 是 | 是 | 是 | 是 |
on | 是 | 是 | 是 | |
remote_write | 是 | 是 | ||
local | 是 | |||
off |
更详细的synchronous_commit
及synchronous_standby_names
请参考LightDB官方文档。
6 安装LightDB分布式版
6.1 LightDB分布式三种部署模式简介
LightDB分布式支持常规、多机单实例和单机多实例三种部署方式。
- 常规模式:1台服务器作为协调者节点,N(N > 1)台服务器作为工作节点,每个节点上均有一个数据库实例,且所有实例均按高可用模式部署
- 多机单实例:1台服务器作为协调者节点,N(N > 1)台服务器作为工作节点,每个节点上均有一个数据库实例,且所有实例均按单机模式部署
- 单机多实例:使用1台服务器同时安装协调者节点和工作节点的实例,且所有实例均按单机模式部署
注意:如果需要在生产环境使用LightDB分布式,则建议只使用常规模式,其余两种模式仅为测试、学习等非生产环境提供。
6.2 安装分布式常规模式
6.2.1 GUI安装
-
按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。
-
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
-
本文档使用选项二,以展示完整的安装过程。
-
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式。
-
选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择常规模式,并使用2个工作节点,同时为每个工作节点部署1个standby节点。
-
部署协调者节点(Coordinator Node)高可用,点击Add,在弹出的对话框中指定虚拟IP和端口号。
-
为协调者节点指定
primary
和standby
,此处操作步骤和LightDB高可用安装完全相同,详情请参考本文档第5章,此处及后续均不再赘述。
-
部署第一个工作节点(Worker Node)的高可用,点击Add,在弹出的对话框中指定虚拟IP和端口号,端口号可以与协调者节点相同,也可以不同。
-
为第一个工作节点指定
primary
和standby
。
-
按相同方法部署第二个工作节点的高可用。
-
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。
-
检查每一台服务器的依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击
Check Again
重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again
,也可以直接点击Ignore All
忽略全部警告,直接进入下一步。
-
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
-
指定数据库安装目录和实例目录。目录必须事先创建,并正确设置所属用户(组)(步骤详见本文档3.8),默认安装目录为
/usr/local/lightdb
,默认实例目录为/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,可以在文本框中直接修改或点击Brows
调出路径选择对话框,来指定其他目录。
-
配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 15% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。
-
配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写)、下划线中的两种。
-
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。
-
总览信息确认无误后,点击Install执行安装。
-
安装完成后,选择一台服务器作为NTP服务器,此处使用默认值。
-
使用
root
用户,在**所有primary
和所有standby
上依次执行cd /home/lightdb/lightdb/keepalived-1.3.5-x86/sbin
、./keepalived -f /home/lightdb/lightdb/lightdb-x/13.3-22.1/etc/keepalived/keepalived.conf
以启用keepalived;在所有primary
、所有standby
、所有witness
**上执行sh /home/lightdb/lightdb-x-13.3-22.1-4135-el7.x86_64/script/13_ntp_start.sh /home/lightdb/lightdb/lightdb-x/13.3-22.1
以启用NTP服务,然后点击Next(注意:实际命令以界面中提示的为准,此处仅代表本文档安装使用的示例)。
-
检查分布式集群中各节点的LightDB Database、keepalived以及NTP是否均正确启动。
-
检测通过,点击
Finish
关闭安装向导。
6.2.2 命令行安装
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
-
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
-
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
-
选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。
-
选择分布式常规、多机单实例、单机多实例部署方式。这里选择常规模式,并且使用与6.2.1小节相同的节点数量与部署方式。
-
分别配置协调者节点和工作节点的高可用。
-
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。
-
检查依赖包与Linux内核参数。
-
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
-
指定LightDB安装目录和实例目录,默认为
/usr/local/lightdb
和/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,此处均使用自定义目录。
-
配置shared_buffers与effective_cache_size大小,以及设置字符集。
-
设置super用户密码,键入时密码不可见。
-
选择继续安装,直至安装完成,然后选择一台服务器作为NTP服务器,此处使用默认值。
-
使用
root
用户,在**所有primary
和所有standby
上依次执行cd /home/lightdb/lightdb/keepalived-1.3.5-x86/sbin
、./keepalived -f /home/lightdb/lightdb/lightdb-x/13.3-22.1/etc/keepalived/keepalived.conf
以启用keepalived;在所有primary
、所有standby
、所有witness
**上执行sh /home/lightdb/lightdb-x-13.3-22.1-4135-el7.x86_64/script/13_ntp_start.sh /home/lightdb/lightdb/lightdb-x/13.3-22.1
以启用NTP服务,然后点击Next(注意:实际命令以界面中提示的为准,此处仅代表本文档安装使用的示例)。
-
上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出
Install Finish
信息,并自动退出安装向导。
6.3 安装分布式多机单实例模式
6.3.1 GUI安装
-
按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。
-
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
-
本文档使用选项二,以展示完整的安装过程。
-
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式版。
-
选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择多机单实例模式,并使用2个工作节点。
-
点击Add,添加1个协调者节点和2个工作节点的IP与端口号。
-
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。
-
检查每一台服务器的依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击
Check Again
重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again
,也可以直接点击Ignore All
忽略全部警告,直接进入下一步。
-
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
-
指定数据库安装目录和实例目录。目录必须事先创建,并正确设置所属用户(组)(步骤详见本文档3.8),默认安装目录为
/usr/local/lightdb
,默认实例目录为/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,可以在文本框中直接修改或点击Brows
调出路径选择对话框,来指定其他目录。
-
配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 15% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。
-
配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写)、下划线中的两种。
-
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。
-
总览信息确认无误后,点击Install执行安装。
-
安装完成后,选择一台服务器作为NTP服务器,此处使用默认值。
-
使用
root
用户,在所有协调者节点和工作节点上执行界面中提示的命令以启用NTP服务,然后点击Next。
-
检查分布式集群中各节点的LightDB Database与NTP是否均正确启动。
-
检测通过,点击
Finish
关闭安装向导。
6.3.2 命令行安装
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
-
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
-
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
-
选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。
-
选择分布式常规、多机单实例、单机多实例部署方式。这里选择多机单实例模式,并且使用与6.3.1小节相同的节点数量与部署方式。
-
分别配置协调者节点和工作节点
-
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。
-
检查依赖包与Linux内核参数。
-
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
-
指定LightDB安装目录和实例目录,默认为
/usr/local/lightdb
和/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,此处均使用自定义目录。
-
配置shared_buffers与effective_cache_size大小,以及设置字符集。
-
设置super用户密码,键入时密码不可见。
-
选择继续安装,直至安装完成,然后选择一台服务器作为NTP服务器,此处使用默认值。
-
上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出
Install Finish
信息,并自动退出安装向导。
6.4 安装分布式单机多实例模式
6.4.1 GUI安装
-
按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。
-
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
-
本文档使用选项二,以展示完整的安装过程。
-
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式。
-
选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择单机多实例模式,并使用2个工作节点。
-
检查依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击
Check Again
重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again
,也可以直接点击Ignore All
忽略全部警告,直接进入下一步。
-
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
-
指定数据库安装目录和实例目录。目录必须事先创建,并正确设置所属用户(组)(步骤详见本文档3.8),默认安装目录为
/usr/local/lightdb
,默认实例目录为/usr/local/lightdb/lightdb-x/13.3-21.3/data/defaultCluster/
,可以在文本框中直接修改或点击Brows
调出路径选择对话框,来指定其他目录。
-
点击Add,依次添加协调者节点和工作节点的实例目录与端口号,各个节点的端口号不能相同。
- 配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 15% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。
-
配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写)、下划线中的两种。
-
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。
-
总览信息确认无误后,点击Install执行安装。
-
检测通过,点击
Finish
关闭安装向导。
6.4.2 命令行安装
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
-
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
-
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
-
选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。
-
选择分布式常规、多机单实例、单机多实例部署方式。这里选择单机多实例模式,并且使用与6.4.1小节相同的节点数量与部署方式。
-
依次添加协调者节点和工作节点的实例目录与端口号,各个节点的端口号不能相同。
-
检查依赖包与Linux内核参数。
-
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
-
配置shared_buffers与effective_cache_size大小,以及设置字符集。
-
设置super用户密码,键入时密码不可见。
-
选择继续安装,完成后会自动退出安装向导。
7 卸载LightDB
-
进入LightDB安装目录下的
uninstall
目录,对于本文档演示所用的范例来说就是/home/lightdb/lightdb/uninstall
。
-
配置DISPLAY环境变量(配置方法参考3.14小节),运行uninstall.sh卸载脚本,输入yes选择GUI卸载。
-
有三个卸载选项,仅卸载数据库实例、仅卸载数据库与LightDB EM、全部卸载,默认为仅卸载数据库实例,此处选择全部卸载。
-
以LightDB高可用卸载,如下图所示,若想保留某个节点不卸载,可点击
Delete
将其从卸载列表中去除,之后还可以通过Add Server
将其重新添加回来。
-
确认卸载信息,无误后点击
Uninstall
执行卸载。
-
等待卸载完成。
-
点击
finish
退出。
-
如果在
primary
和standby
上启用了keepalived
,还需要使用root
用户在每一台启用keepalived
的节点上按如下步骤操作。- 执行
cat /var/run/keepalived.pid
,使用kill pid
杀死该进程。 - 再次执行
ps aux | grep keepalived
,确保除了grep --color=auto keepalived
外再无其他输出结果。 - 删除
keepalived
安装目录,在本文安装目录为/home/lightdb/lightdb
的例子下,keepalived
安装目录为/home/lightdb/lightdb/keepalived-1.3.5-x86/
。
- 执行
837012)]
7 卸载LightDB
- 进入LightDB安装目录下的
uninstall
目录,对于本文档演示所用的范例来说就是/home/lightdb/lightdb/uninstall
。
[外链图片转存中…(img-8zkpHTyk-1653878837012)] - 配置DISPLAY环境变量(配置方法参考3.14小节),运行uninstall.sh卸载脚本,输入yes选择GUI卸载。
[外链图片转存中…(img-syywz0k0-1653878837012)] - 有三个卸载选项,仅卸载数据库实例、仅卸载数据库与LightDB EM、全部卸载,默认为仅卸载数据库实例,此处选择全部卸载。
[外链图片转存中…(img-QDQMZgKB-1653878837013)] - 以LightDB高可用卸载,如下图所示,若想保留某个节点不卸载,可点击
Delete
将其从卸载列表中去除,之后还可以通过Add Server
将其重新添加回来。
[外链图片转存中…(img-nDSzSm62-1653878837013)] - 确认卸载信息,无误后点击
Uninstall
执行卸载。
[外链图片转存中…(img-Sqx2eLak-1653878837013)] - 等待卸载完成。
[外链图片转存中…(img-i9b13TcO-1653878837014)] - 点击
finish
退出。
[外链图片转存中…(img-Y9FHNGOZ-1653878837014)] - 如果在
primary
和standby
上启用了keepalived
,还需要使用root
用户在每一台启用keepalived
的节点上按如下步骤操作。- 执行
cat /var/run/keepalived.pid
,使用kill pid
杀死该进程。 - 再次执行
ps aux | grep keepalived
,确保除了grep --color=auto keepalived
外再无其他输出结果。 - 删除
keepalived
安装目录,在本文安装目录为/home/lightdb/lightdb
的例子下,keepalived
安装目录为/home/lightdb/lightdb/keepalived-1.3.5-x86/
。
- 执行