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_fdw
或
wal2sql
,需要正确安装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 -c
、ulimit -n
和ulimit -u
命令确认设置生效。
[lightdb@host102 ~]$ ulimit -c
unlimited
[lightdb@host102 ~]$ ulimit -n
524288
[lightdb@host102 ~]$ ulimit -u
16384
3.8. 开启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.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
为命令行安装。
如果选择GUI安装,需要满足下列条件: - Windows上运行Xmanager - Passive,并通过Xshell SSH连接服务器 - 目标服务器已配置DISPLAY环境变量
export DISPLAY=WindowsIP:0.0
其中,WindowsIP为运行Xmanager - Passive的主机IP地址,冒号:后面的值一般为0.0,具体取决于Xmanager - Passive运行后的状态提示,如下图所示。
目标服务器已安装
libXtst
、gtk2
、libX11
这几个运行GUI需要的依赖包
yum install -y libXtst gtk2 libX11
如果无法满足上述条件,或者已满足上述条件,但仍无法显示GUI安装向导界面,则可以选用命令行安装,二者除了向导方式外,并无任何差异。
4. 安装LightDB单机版
4.1. GUI安装LightDB单机版
按前面所述要求,配置DISPLAY环境变量,在install.sh命令行提示信息中输入yes,按回车键确认,Windows中就会弹出GUI安装向导界面。
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
本文档使用选项二,以展示完整的安装过程。
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们使用默认选择。
选择单机版进入下一步,配置端口号,默认为5432,可自行指定任意合法端口。如果指定了一个非法端口或正在使用的端口,点击Next会无法进入下一步,同时界面中会给出错误提示信息。
检查依赖包和Linux内核参数。如有依赖缺失,则无法进入下一步,必须先安装依赖,再点击
Check Again
重新检查;如有内核参数与推荐配置不符的,则会给出WARNING,此时可以先按建议值重新配置,再点击Check Again
,也可以直接点击Ignore All
忽略全部警告,直接进入下一步。选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击
Browse
调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 25% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
LightDB安装信息总览,确认无误后,点击Install执行安装。(可以点击
Save Response File
把安装信息保存为文件,以后如果需要重新安装时可以简化输入操作)安装成功。
4.2. 命令行安装LightDB单机版
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
选择安装单机版、高可用版或分布式版,键入1安装单机版,键入2选择高可用版,键入3选择分布式版,默认为单机版。
指定端口号,默认为5432。
检查依赖包与Linux内核参数,检查通过后会进入下一步选择,否则会报错并给出提示信息,其中WARNING会默认全部忽略。
选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。
选择OLTP或OLAP,键入1为OLTP,键入2为OLAP,默认为1。
指定LightDB安装目录和实例目录(要确保lightdb用户有写入权限),此处均使用默自定义目录。
配置LightDB是否开启归档模式,默认开启。
配置LightDB是否开启增量检查点,默认不开启。
配置shared_buffers与effective_cache_size大小,以及设置字符集。
设置super用户密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
选择继续安装,直至安装完成。
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安装向导界面。
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。这里选择安装选项二,以展示完整的安装过程
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择高可用版。
选择
VIP Mode
或者NON-VIP Mode
,非VIP模式不再需要填写VIP。NON-VIP Mode
,直接添加高可用集群节点信息即可 。VIP Mode
,点击Add,在弹出的界面中添加虚拟IP,虚拟IP需要与配置的主备服务器在同一个网段,并且虚拟IP在本网段中没有被分配。VIP Mode
,点击虚拟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
忽略全部警告,直接进入下一步。选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。
OLTP/OLAP选择,该选项会影响部分GUC参数的默认值策略,默认为OLTP,此处使用默认值。
指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击
Browse
调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 25% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
LightDB安装信息总览,确认没问题后点击
install
按钮开始正式安装(在这里可以点击SAVE Response File
把安装参数保存为文件,在以后想重新安装时可以简化安装步骤)。总览信息确认无误后,点击Install执行安装。
此时数据库已经安装完成
配置NTP服务,集群多机器之间的时间同步是非常重要的,LightDB默认采用高可用主机时间为参考,向备机和witness机器同步时间。如果你有自己的时间服务器,可以在这里修改为你自己的ntp服务器地址。如果你已经为所有的机器配置了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
启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。
非vip模式
下,无需启动keepalived服务,具体启动命令如下# 非vip模式不需要启动keepalived服务 # 启动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
安装成功
如果因环境等因素限制无法使用keepalived,或者未启用NTP服务,会因检查不通过而无法点击
finish
,则可直接点击Cancel
退出安装向导,此时数据库已经安装成功,但ntp和keepalived可能不正确,需要另外配置。
5.2. 命令行安装LightDB高可用版
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择2。
高可用模式支持
vip模式(默认模式)
和非vip模式
,其中vip模式(默认模式)
提供Virtual IP
和 支持自动故障转移。非vip模式
无法实现自动切换,可使用脚本$LTHOME/bin/lt_master_node_detection.sh完成主节点探测。按照命令行提示信息,依次填写
Virtual IP
,以及primary
、standby
和witness
服务器的IP与同步方式。在节点的选择上,对于一主一从,witness
是可选的,若不想指定可按回车键跳过,而对于一主多从,witness
是必须的;在standby
的同步异步选择上,如果节点处于同一网段,则同步异步都可选择,如果处于不同的网段,则只能是异步;在网段的要求上,至少要有1个standby
和primary
位于同一网段。此处以一主一从一哨兵的方式进行展示。确认集群各节点信息是否填写无误,确认无误后键入1继续,否则键入2进行重设,此处选择1。
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成,直到出现如下图所示的指定端口号的提示信息,端口号默认为5432,本次安装使用5433。
检查依赖包与Linux内核参数。
选择兼容模式,如果你的应用从mysql或oracle迁移而来,则可以对应选择mysql或oracle,LightDB会启用相应的兼容特性。
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
指定LightDB安装目录和实例目录(要确保lightdb用户有写入权限)。
配置LightDB是否开启归档模式,默认开启。
配置LightDB是否开启增量检查点,默认不开启。
配置shared_buffers与effective_cache_size大小,以及设置字符集。
设置管理员用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
选择继续安装,直至安装完成。
配置NTP服务,集群多机器之间的时间同步是非常重要的,LightDB默认采用高可用主机时间为参考,向备机和witness机器同步时间。如果你有自己的时间服务器,可以在这里修改为你自己的ntp服务器地址。如果你已经为所有的机器配置了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
启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。
非vip模式
下,无需启动keepalived服务,具体启动命令如下# 非vip模式不需要启动keepalived服务 # 启动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
上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出
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
运行下面的命令,以查看集群各节点状态。
$LTHOME/bin/ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf node status
查询结果示例,如下图所示。
5.3.1.3. 查看集群状态
查看集群服务状态,需要重点关注的信息有:Role、Status(数据库运行状态)、ltclusterd(ltclusterd守护进程运行状态)、Paused(ltclusterd是否暂停)
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status
注意:上述命令在primary
、standby
、witness
上都可以执行,且各节点上的执行结果应该是完全相同的,若不完全相同,则说明集群状态有异,需及时排查原因。
以主库查询结果为例进行说明,如下图所示,正常状态下期望的结果为:
Name
、Role
应与实际相符Status
应为running
(primary
和witness
前面还应有一个星号*
)ltclusterd
应为running
Paused?
应为no
(除非在相应节点上执行了ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service pause
命令)查看集群IP信息,如虚拟IP
ip a show #查看所有网卡
ip a show [interface] #查看指定网卡
查询结果示例,如下图所示。
5.3.1.4. 查看日志
ltclusterd的日志路径为$LTDATA/../etc/ltcluster/ltcluster.log
,LightDB数据库日志路径为$LTDATA/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 $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
备库重新启动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_commit
及synchronous_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安装向导界面。
界面中包含三个选项,选项一(默认选项)仅安装数据库;选项二除了安装数据库外,还会生成一个默认的实例目录,并使用默认实例启动数据库;选项三为开发者模式,该模式下将使用默认数据库参数,而不会对参数进行自动调优。
选择安装模式,提供单机版、高可用、分布式三个选项,默认为单机版,此处我们选择分布式。
选择分布式部署方式,包括常规(Normal mode)、多机单实例(Multi-server single instance)和单机多实例(Single server multi-instance)三种,关于这三种部署方式的定义,已经在本文档6.1小节中介绍过,这里不再赘述。本次我们选择常规模式,并使用2个工作节点,同时为每个工作节点部署1个standby节点。
指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击
Browse
调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。部署协调者节点(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,此处使用默认值。
配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 25% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。总览信息确认无误后,点击Install执行安装。
使用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
启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。
检查分布式集群中各节点的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小节相同的节点数量与部署方式。
指定LightDB安装目录(要确保lightdb用户有写入权限)。
配置协调者节点高可用。
添加一个work节点,并且配置高可用。
添加第二个work节点,并且配置高可用。
配置LightDB是否开启归档模式,默认开启。
配置LightDB是否开启增量检查点,默认不开启。
将安装包从当前服务器传输到其他机器上,这个过程可能需要几分钟时间,请耐心等待传输完成。传输完成后会检查依赖包和内核参数。
选择数据库兼容模式。
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
配置shared_buffers与effective_cache_size大小,以及设置字符集。
设置super用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
选择继续安装,直至安装完成,然后选择一台服务器作为NTP服务器,此处使用默认值。
使用
root
用户,在协调者节点的primary
和standby
上执行界面提示的启动 keepalived 的命令(所有工作节点不需执行)。 启动 ntp 的命令需要在所有机器上执行。启动keepalived程序后,使用ps查询一下进程,如果发现keepalived没有起来,则查看keepalived配置文件中的对外网卡名称是否配置正确,这里需要配置您的机器对外的网卡名称。
上一步骤中的命令执行完成后,按任意键进入检查过程,检查通过后会输出
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,此处使用默认值。
指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击
Browse
调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 25% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写), 密码不支持以#开头。
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。总览信息确认无误后,点击Install执行安装。
安装完成后,选择一台服务器作为NTP服务器,此处使用默认值。
使用
root
用户,在所有协调者节点和工作节点上执行界面中提示的命令以启用NTP服务,然后点击Next。这里提示是否安装LVS,本次安装是单CN模式,不需要安装LVS,直接选择否。
检测通过,点击
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安装目录和实例目录(要确保lightdb用户有写入权限)。
配置LightDB是否开启归档模式,默认开启。
配置LightDB是否开启增量检查点,默认不开启。
配置shared_buffers与effective_cache_size大小,以及设置字符集。
设置super用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
选择继续安装,直至安装完成
使用
root
用户,在所有协调者节点和工作节点上执行界面中提示的命令以启用NTP服务,然后按任意键继续提示安装LVS,本次安装是单CN模式,不需要安装LVS,直接选择否。
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,此处使用默认值。
指定数据库安装目录和实例目录(要确保lightdb用户有写入权限),(参考 创建LightDB安装目录和实例目录 ),可以在文本框中直接修改或点击
Browse
调出路径选择对话框,来指定其他目录。此外还可以选择是否开启归档模式,默认开启。以及可以选择是否开启增量检查点,默认不开启。点击Add,依次添加协调者节点和工作节点的实例目录与端口号,各个节点的端口号不能相同。
配置
shared_buffers
与effective_cache_size
大小,以及设置字符集。默认shared_buffers
= 25% * 总物理内存,默认effective_cache_size
= 70% * 总物理内存,默认字符集为UTF-8
,并提供GBK
、SQL_ASCII
、LATIN1
三个其他选项。配置super用户(即lightdb)密码,密码长度为6-16个字符,且至少包含数字、英文字母(不限制大小写), 密码不支持以#开头。
LightDB安装信息总览,可以点击
SAVE Response File
保存为文件。总览信息确认无误后,点击Install执行安装。
安装完成后,会提示安装LVS,我们这个安装形式不需要LVS,选择不安装。
安装成功
6.4.2. 命令行安装
命令行安装步骤及选项与GUI安装完全相同,仅在向导信息提示上有所不同,因此本章节不再详细解释其中内容的含义与注意事项。
在install.sh命令行提示信息中输入No,按回车键确认,进入命令行安装交互界面。
选择配置模式,键入1仅安装数据库,键入2会额外创建一个实例,输入3为开发者选项,默认为1,此处选择2。
选择安装单机版、高可用或分布式,键入1安装单机版,键入2选择高可用版,键入3安装分布式版,默认为1,此处选择3。
选择分布式常规、多机单实例、单机多实例部署方式。这里选择单机多实例模式,并且使用与6.4.1小节相同的节点数量与部署方式。
指定实例目录(要确保lightdb用户有写入权限),并依次添加协调者节点和工作节点的端口号,各个节点的端口号不能相同。
配置LightDB是否开启归档模式,默认开启。
配置LightDB是否开启增量检查点,默认不开启。
检查依赖包与Linux内核参数。
选择数据库兼容模式。
选择OLTP/OLAP,键入1为OLTP,键入2为OLAP,默认为1。
配置shared_buffers与effective_cache_size大小,以及设置字符集。
设置super用户密码,键入时密码不可见,密码长度为6-16个字符,且至少包含数字、英文字母, 密码不支持以#开头。
输入
yes
开始正式安装。安装完成后,会提示安装LVS,我们这个安装形式不需要LVS,选择不安装。
7. 卸载
7.1. 界面卸载
进入LightDB安装目录下的
uninstall
目录,对于本文档演示所用的范例来说就是/home/lightdb/stage/uninstall
。配置DISPLAY环境变量,运行uninstall.sh卸载脚本,输入yes选择GUI卸载。
有三个卸载选项,仅卸载数据库实例、仅卸载数据库与LightDB EM、全部卸载,默认为仅卸载数据库实例,此处选择全部卸载。
以LightDB分布式卸载为例,如下图所示,若想保留某个节点不卸载,可点击
Delete
将其从卸载列表中去除,之后还可以通过Add Server
将其重新添加回来。确认卸载信息,无误后点击
Uninstall
执行卸载。等待卸载完成。
点击
finish
退出。如果是高可用环境,则使用root账号登录主,备停止
keepalived
进程。如果是通过LightDB安装的NTP服务,则使用root账号登录主,备,witness停止
ntp
进程。
7.2. 命令行卸载
进入LightDB安装目录下的
uninstall
目录,对于本文档演示所用的范例来说就是/home/lightdb/stage/uninstall
。配置DISPLAY环境变量,运行uninstall.sh卸载脚本,输入no选择命令行卸载。
有三个卸载选项,仅卸载数据库实例、仅卸载数据库、全部卸载(数据库和实例),默认为仅卸载数据库实例
以LightDB分布式卸载为例,选择3继续(可以使用Delete移除某些不想卸载的主机)
检测到有LightDB实例,二次提示是否确定卸载(请注意核查,避免数据被误删除)。
等待卸载完成。
如果是高可用环境,则使用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.py
、lt_distributed_restore.py
、lt_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安装成功。