企业版单机-通用机部署手册 一、 实施过程 1. 前期准备 1.1 安装包检查 检查确认操作系统版本及cpu架构: (1)Redhat系/银河麒麟v10/UOS20系操作系统举例如下:(国产环境可通过“右键我的电脑—属性”查看)
# cat /etc/*release # lscpu
(2)银河麒麟v10操作系统可通过nkvers命令确认是否为银河麒麟v10sp1或v10sp2版本;如无输出结果,则为银河麒麟v10版本。 (3)使用如下命令确认操作系统支持哪种管理器,便于判断使用rpm包还是deb包:
# rpm --version # dpkg --version
(4)其他linux系列的操作系统依据实际情况判断即可。
注意:安装前请确保使用的介质与实际环境一致,不同环境之间安装包不通用;如无版本强制要求,应选择符合合约约定的大版本下最新已发布的小版本+最新补丁集作为部署版本。 如前期已有适配的版本,建议按适配版本实施。
安装包名称举例如下: 【瀚高数据库安装包】hgdb6.0.4-cluster-xxx-xxx64-xxxxxxxx.rpm 或hgdb6.0.4-cluster-xxx-xxx64-xxxxxxxx.deb
1.2 配置主机名 Redhat系/银河麒麟v10/UOS20系操作系统参考如下: 设置命令:
# hostnamectl set-hostname <主机名>
建议为不同的数据库服务器配置唯一的主机名,并在/etc/hosts文件中添加各节点IP及主机名信息。 命名方式可参考如下:yyxtdb01(应用系统名称+db+序号)。不得超过16个字符;不包含特殊字符,禁止使用下划线。 针对主机名设置银河麒麟厂家答复如下:
举例如下:
# cat /etc/hosts … 192.168.197.11 xxdb01 192.168.197.12 xxdb02 192.168.197.13 xxdb03
1.3 服务器之间网络检查 确保各节点之间网卡支持千兆及以上网络 Redhat系/银河麒麟v10/UOS20系操作系统参考命令如下:(将如下网卡名称ens33替换为实际名称)
[root@xxdb01 ~]# ethtool ens33 Settings for ens33: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
各节点之间测试网络传输速度,注意要测试双向的网络传输速度,命令如下: 结果小于50mb/s具有一定风险
# scp local_file remote_username@remote_ip:remote_folder
1.4 数据库服务器文件系统目录要求 建议如下配置,数据库安装目录、数据目录、归档目录、备份目录单独划分,可减少磁盘IO争用、提升性能,亦可防止所有文件放在一起因备份文件较大进而引起空间爆满造成的数据库hang住现象。
文件系统名称
要求大小
用途
/
>50G
/tmp
>10G
/home
>20G
swap
>32G
/opt
>100G
数据库安装目录
/data
根据应用数据量及增长规划提供。
数据存储目录
/hgdbarch
根据应用业务量评估;建议500G以上
归档日志目录
/hgdbbackup
数据目录的3倍以上
数据备份
如无独立大盘作为数据存储目录,应及时和客户反馈并让其协调存储工程师挂载存储,非必要情况工程师不能擅自挂载存储。
磁盘性能检查:举例如下(测试后将生成的测试文件删除):
(1)模拟数据库读写小数据来测试硬盘的IO,命令如下:
# dd if=/dev/zero of=/opt/test bs=32k count=20k oflag=dsync 20480+0 records in 20480+0 records out 671088640 bytes (671 MB, 640 MiB) copied, 18.2872 s, 36.7 MB/s
如结果低于20MB/s,则说明磁盘性能偏差,需建议客户方协调硬件工程师检查;否则将可能会系统整体性能造成较大的影响。
(2)模拟大文件写入来测试硬盘的IO,命令如下:
[root@db ~]# dd if=/dev/zero of=/opt/test bs=8192k count=100 oflag=dsync 100+0 records in 100+0 records out 838860800 bytes (839 MB) copied, 8.88575 s, 315 MB/s
如结果低于200MB/s,则说明磁盘性能偏差,需建议客户方协调硬件工程师检查;否则将可能会系统整体性能造成较大的影响。 注意:务必不要把if和of的值写反,否则有数据清除的风险。
1.5 数据库服务器内存CPU要求 如为测试环境,则无硬性要求。 如为生产环境,建议内存大于32GB,逻辑CPU个数大于8颗,具体需依据实际业务场景及硬件配置等综合判断。
1.6 操作系统rpm包依赖安装 目前HGDB中所需的操作系统依赖包,均已打包在数据库及集群组件的安装包中,无特殊需求无需单独安装。
1.7 关闭avahi-daemon及NetworkManager服务 操作系统avahi-daemon可能会影响集群正常通信,建议关闭。 Redhat系/银河麒麟v10/UOS20系操作系统举例如下:
# systemctl stop avahi-daemon # systemctl disable avahi-daemon # systemctl stop NetworkManager.service # systemctl disable NetworkManager.service # systemctl status NetworkManager.service
1.8 调整limits.conf 每台服务器使用root用户进行操作 Redhat系/银河麒麟v10/UOS20系操作系统举例如下: 修改/etc/security/limits.conf 配置文件,增加如下内容:
vi /etc/security/limits.conf #For HGDB * soft stack unlimited * hard stack unlimited * soft nproc unlimited * hard nproc unlimited * soft nofile 1048576 * hard nofile 1048576 * soft memlock unlimited * hard memlock unlimited #End for HGDB
编辑vi /etc/pam.d/login 文件,添加一行配置:session required pam_limits.so,如图,保存退出重启服务。(部分操作系统默认含有此行,可不添加)
修改完成后验证:
# ulimit -a SBWHC_PG1:~ # ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 127575 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 131072 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 131072 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
1.9 防火墙配置 Redhat系/银河麒麟V10操作系统修改方式如下: *关闭防火墙【需经客户同意】
# systemctl status firewalld.service # systemctl stop firewalld.service # systemctl disable firewalld.service
关闭selinux:
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config # setenforce 0 # cat /etc/selinux/config | grep SELINUX=disabled # getenforce
如有特殊要求,无法完全关闭防火墙,则开放数据库所需的端口(各节点均开),如下:
firewall-cmd --permanent --add-port=5866/tcp firewall-cmd --add-port=5866/tcp
UOS20操作系统使用如下命令禁用防火墙并禁止开机自启:
root@highgo:~# systemctl stop ufw.service root@highgo:~# systemctl disable ufw.service Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable ufw 或者 root@highgo:~# ufw disable Firewall stopped and disabled on system startup
1.10 配置环境变量 一般数据库节点除配置数据库的环境变量外,还需配置hac及etcd的相关环境变量,示例如下:(如下参数中的路径依据实际情况修改)
[root@xxdb01 ~]# vi /opt/HighGo6.0.4-cluster/etc/highgodb.env export PGDATA=/data/highgo/data #修改PGDATA变量 [root@xxdb01 ~]# cat ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH source /opt/HighGo6.0.4-cluster/etc/highgodb.env #如遇到找不到数据库lib问题,可设置LD_LIBRARY_PATH变量 export LD_LIBRARY_PATH=/opt/HighGo6.0.4-cluster/lib:/usr/lib64:$LD_LIBRARY_PATH
1.11 集群服务器之间时间同步要求 根据客户标准设置OS时区,国内通常为东八区”Asia/Shanghai”. Redhat系/银河麒麟V10/UOS20操作系统参考如下: 使用命令”timedatectl”查看和修改OS时区。 查看OS时区:
# timedatectl status Local time: Thu 2022-04-28 10:36:41 CST Universal time: Thu 2022-04-28 02:36:41 UTC RTC time: Thu 2022-04-28 02:36:41 Time zone: Asia/Shanghai (CST, +0800) Network time on: no NTP synchronized: yes RTC in local TZ: no
修改OS时区:
# timedatectl set-timezone "Asia/Shanghai"
修改OS时间:
[root@xxdb01 ~]# date -s '20200928 11:07:00'
2. 安装过程 2.1 安装各软件包 验证安装包MD5值:
[root@xxdb01 ~]# md5sum hgdb6.0.4-cluster-xxx-xxx64-xxxxxxxx.rpm
查看生成的MD5值,若与MD5文件中一致,则可继续进行下面的操作,若不一致则建议重新上传并检验。
RPM包安装:
[root@xxdb01 highgo]# rpm -ivh hgdb6.0.4-cluster-xxx-x86-64-xxxxxxxx.rpm
可选项:
--nodeps 忽略依赖包进行安装 --force 强制安装
DEB包安装:
查看安装后的状态:
注意:如安装包选择错误或因其他原因需卸载重装,命令参考如下: RPM包卸载
注意:卸载之前需确认数据库进程是否关闭
DEB包卸载
注意:卸载之前需确认数据库进程是否关闭
2.2 配置数据库 2.2.1 初始化数据库 [highgo@xxdb01 etcd]# initdb -D /data/highgo/data 属于此数据库系统的文件宿主为用户 "highgo". 此用户也必须为服务器进程的宿主. 数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化. 默认的数据库编码已经相应的设置为 "UTF8". initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8" 缺省的文本搜索配置将会被设置到"simple" 禁止为数据页生成校验和. Data encryption is disabled. 输入新的超级用户口令: 再输入一遍: 创建目录 /data/highgo/data ... 成功 正在创建子目录 ... 成功 选择动态共享内存实现 ......posix 选择默认最大联接数 (max_connections) ... 100 选择默认共享缓冲区大小 (shared_buffers) ... 128MB selecting default time zone ... PRC 创建配置文件 ... 成功 正在运行自举脚本 ...成功 正在执行自举后初始化 ...成功 同步数据到磁盘...成功 initdb: 警告: enabling "md5" authentication for local connections 你可以通过编辑 pg_hba.conf 更改或你下次 执行 initdb 时使用 -A或者--auth-local和--auth-host选项. 成功。您现在可以用下面的命令开启数据库服务器: pg_ctl -D /data/highgo/data -l 日志文件 start
2.2.2 数据库参数配置 以下参数配置请根据实际情况自行调整。
listen_addresses = '*' max_connections = '800' --最大连接数,请根据实际情况配置,不可设置过高。 shared_buffers = '16GB' checkpoint_completion_target = '0.8' log_destination = 'csvlog' logging_collector = 'on' log_directory = '/data/highgo/hgdb_log' log_filename = 'highgodb_%d.log' log_rotation_age = '1d' log_rotation_size = '0' log_truncate_on_rotation = 'on' log_statement = 'mod' --日志等级,mod可记录dml语句,但占用空间较大。 log_connections = 'on' log_disconnections = 'on' checkpoint_timeout = '45min' temp_buffers = '16MB' work_mem = '8MB' --数据库会话计算进程内存值,不可设置过高,防止OOM。 maintenance_work_mem = '2GB' min_wal_size = '512MB' max_wal_size = '4096MB' effective_cache_size = '10GB' archive_mode = 'on' archive_timeout = '45min' archive_command = ' cp %p /hgbakdata/hgbak/archive/%f' log_line_prefix = '%m [%p] %a %u %d %r %h' compatible_db = 'oracle' --开启oracle兼容 vi $PGDATA/pg_hba.conf 添加以下内容: host all all 0.0.0.0/0 md5
2.2.3 添加软连接 ln -s /data/highgo/data /opt/HighGo6.0.4-cluster/data
2.2.4 开机自启 注:因打包问题可能部分包自启服务名称为hgdb-cluster-6.x.x,请根据现场实际情况进行替换。
systemctl enable hgdb-cluster-6.0.4 mv /opt/HighGo6.0.4-cluster/etc/hgdb-cluster-6.0.4 /opt/HighGo6.0.4-cluster/etc/hgdb-cluster-6.0.4 ln -s /opt/HighGo6.0.4-cluster/etc/hgdb-cluster-6.0.4.single /opt/HighGo6.0.4-cluster/etc/hgdb-cluster-6.0.4
3. 安装postgis 此项在与地理信息相关的业务系统中使用的可能性较大,若无此类需求可不安装此组件。
3.1 安装postgis包 [root@xxdb01 ~]# rpm -ivh postgis3.0-6.0.4-cluster-centos7-x86-64-20220127.rpm
3.2 创建postgis扩展 [highgo@node1 ~]$ psql -U highgo -d highgo psql (HighGo Database 6 Release 6.0.4-64-bit Production) PSQL: Release HighGo Database 6 Release 6.0.4-64-bit Production Type "help" for help. highgo=# create extension postgis; ERROR: could not load library "/opt/HighGo6.0.4-cluster/lib/postgresql/postgis-3.so": libgeos_c.so.1: cannot open shared object file: No such file or directory highgo=# \q [highgo@node1 ~]$ export LD_LIBRARY_PATH=/opt/HighGo6.0.4-cluster/lib [highgo@node1 ~]$ pg_ctl restart [highgo@node1 ~]$ psql -U highgo -d highgo psql (HighGo Database 6 Release 6.0.4-64-bit Production) PSQL: Release HighGo Database 6 Release 6.0.4-64-bit Production Type "help" for help. highgo=# create extension postgis; CREATE EXTENSION highgo=# \dx List of installed extensions Name | Version | Schema | Description ---------------+----------+--------------------+----------------------------------------------------------------------------------------------- mysqlface | 1.0 | public | administrative functions for PostgreSQL orafce | 3.9 | public | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS passwordcheck | 1.0 | information_schema | passwordcheck plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language postgis | 3.1.0dev | public | PostGIS geometry and geography spatial types and functions (5 rows)
4. 测试开发管理工具 如现场环境有开发管理工具则需打开新建连接进行测试确保工具正常使用 示例如下:
4.1 新建连接
4.2 执行测试sql
5. license激活 注意: 1. 激活license之前一定要确认本次实施要求是测试license还是永久license
5.1 数据库启动时会显示剩余时间 日志: 00000: This is a trial edition, validate until 2023-09-28 16:09:09, database will not be able to start up after that time,please apply an official license by that time.
5.2 上传license并复制到data目录修改名称为hgdb.lic [highgo@xxdb01 uplaod]# cp hgdb.lic /opt/HighGo6.0.4-cluster/data/hgdb.lic
5.3 激活 [highgo@xxdb01 data]$ pg_ctl reload server signaled 日志: 00000: 接收到 SIGHUP, 重载配置文件 日志: 00000: 注意 :检测到授权文件已更改,该license为试用版授权,有效期截止到2023-09-28 16:09:09
5.4 检查license,确认激活成功 [highgo@xxdb01 data]$ check_lic -D $PGDATA ############## HIGHGODB LICENSE ################### License status:Normal License validity:2023-09-28 Database Version:Highgo Database6.0.4 Trail Edition ###################################################
##6. 数据库自动备份部署(所有节点均需配置) 备份方式请参考最新版的“瀚高数据库备份手册”。