1.系统环境
操作系统:CentOS 7
安装版本:LightDB1.0-x-V202401-00-000-el7-x86_64
2.安装前准备
(1)关闭防火墙(主+备)
systemctl stop firewalld.service
systemctl disable firewalld.service
(2)关闭selinux(主+备)
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
(3)检查时间和时区(主+备)
timedatectl
改时区:
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai
(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
(5)创建lightdb用户并设置sudo免密
groupadd lightdb
useradd -g lightdb -m lightdb
passwd lightdb
为lightdb用户设置sudo免密,如下图所示,在/etc/sudoers
中新增一行lightdb ALL=(ALL) NOPASSWD:ALL
(6)创建LightDB安装目录和实例目录
mkdir -p /data/lightdb
chown -R lightdb:lightdb /data/lightdb
(7)配置操作系统内核参数
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
(8)配置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
切换到lightdb用户使设置生效
[lightdb@databse ~]$ ulimit -c
unlimited
[lightdb@databse ~]$ ulimit -n
524288
[lightdb@databse ~]$ ulimit -u
16384
(9)开启Swap交换区
将交换区文件创建在/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
(10)配置SSH免密互通
# 免密认证,所有服务器都要执行
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
(11)配置NTP校时服务
主节点:
2.vim /etc/ntp.conf
server 127.127.1.0 #以本机作为时间服务器
fudge 127.127.1.0 startnum 10 #设置服务器层级
restrict 127.0.0.1 # 允许本机使用这个时间服务器
restrict 192.168.40.0 netmask 255.255.255.0 #允许允许192.168.1.0/24网段的所有主机使用该时间服务器进行时间同步
driftfile /var/lib/ntp/ #记录当前时间服务器,与上游服务器的时间差的文件
logfile /var/log/ntp/ntp.log #指定日志文件位置,需要手动创建
systemctl restart ntpd
ntpd -p
备节点:
vim /etc/ntp.conf
server 192.168.153.14 #设置以192.168.1.111做为本机的时间服务器
restrict 127.0.0.1
logfile /var/log/ntp/ntp.log #指定日志文件位置,需要手动创建
systemctl stop ntpd
ntpdate 192.168.40.11
(12)上传安装包到/home/lightdb,更改属主
3.高可用部署
export DISPLAY=192.168.40.1:0.0
./install.sh
yes
sudo sysctl -w fs.file-max=524288
ERROR
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libzstd-1.5.5-1.el7.x86_64.rpm
yum install libzstd*
1qaz@WSX
重做2.(11)
使用ssh客户端登录机器终端,切换到root
用户
主备都执行,witness不执行
cd /data/lightdb/lightdb-x/13.8-24.1/tools/bin/
./keepalived -f /data/lightdb/lightdb-x/13.8-24.1/etc/keepalived/keepalived.conf
主备witness都执行
sh /home/lightdb/lightdb-x-13.8-24.1-22185-el7.x86_64/script/13_ntp_start.sh /data/lightdb/lightdb-x/13.8-24.1/
安装完成。
4.升级python3
详见:在Linux下升级到Python3的两种方法_linux pythin3.7升级-CSDN博客
[root@dba ~]# python -V
Python 2.7.5
wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
解压
tar -zxvf Python-3.7.7.tgz
安装依赖包:
yum update -y
yum install -y make gcc gcc-c++
cd Python-3.7.7/
./configure
编译和安装
make
make install
设置3.x为默认版本:
ls -la /usr/bin | grep python
原来的python的软连接重命名:
mv /usr/bin/python /usr/bin/python.bak
将python链接至python3:
find / -name python
在解压缩后的文件中查看当前路径
pwd
ln -s /home/ec2-user/Python-3.7.7/python /usr/bin/python
配置yum:
升级Python版本之后将由默认的python指向了python3,yum不能正常使用,需要更改yum的配置文件:
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
将
#!/usr/bin/python 改为 #!/usr/bin/python2.7
pip下载地址:
https://pypi.python.org/pypi/pip
安装pip:
tar -xvzf pip-20.0.2.tar.gz
cd pip-20.0.2
python setup.py install
5.集群常用命令
查看节点间同步状态及延迟
SELECT * FROM pg_stat_replication; --主库查询
SELECT * FROM pg_stat_wal_receiver; --备库查询
查看各节点状态
$LTHOME/bin/ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf node status
查看集群状态
ltcluster -f $LTDATA/../etc/ltcluster/ltcluster.conf service status
启动/停止集群
lightdb_service.py -c start/stop