(1)检查环境:
卸载用不到的 pg 或其他 pg 系数据库。
(2)开启防火墙端口:
firewall-cmd --add-port=5866/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
(3)安装数据库软件:
首先校验安装包:
md5sum -c hgdb6.0.2-enterprise-centos7-x86-64-20210222.rpm.md5
结果:hgdb6.0.2-enterprise-centos7-x86-64-20210222.rpm: OK
这样的结果才可以继续安装,安装命令如下:
rpm -ivh hgdb6.0.2-enterprise-centos7-x86-64-20210222.rpm
如果校验失败,请联系再次上传校验,或者联系瀚高工程师检查安装包。
(4)创建相关目录:
这里的/data目录一般是指大容量磁盘的挂载目录。如果目录名不是data,需要修改很多地方,详情咨询瀚高工程师,指导下进行修改。
在/data目录下创建highgo目录,用于存储瀚高数据库数据等。在之下又创建了data和hgdbbak目录,分别用于数据库实例数据和备份数据。
最后我们把数据的实际目录data在安装目录“/opt/HighGo6.0.2-cluster/”下做了一个软链接。
mkdir -p /data/highgo/data
mkdir -p /data/highgo/hgdbbak/archive
ln -sf /data/highgo/data /opt/HighGo6.0.2-cluster/data
chown -R highgo.highgo /data/highgo
chown -R highgo.highgo /opt/HighGo6.0.2-cluster/data
chmod 0700 /data/highgo/data
注意:如果目录有所出入,请使用正确的路径修改一下。
(5)配置环境变量:
企业版 6.0.2 会自动创建用户 highgo 并配置环境变量,自动追加到文件“.bash_profile”最后一行,如:
$ cat /home/highgo/.bash_profile
.bash_profile
…
export PATH
source /opt/HighGo6.0.2-cluster/etc/highgodb.env
如果没有,请手动追加。
(6)初始化操作
切换到操作系统用户 highgo 下执行以下命令进行初始化:
initdb -A md5 -D $PGDATA -E 'UTF8'
期间有两次输入密码的操作,要记牢密码。
(7)密码文件:
主要用于免密登录。
创建文件 /home/highgo/.pgpass,输入以下内容:
localhost:5866:highgo:highgo:Hello@123
修改权限(必需)
chmod 0600 /home/highgo/.pgpass
(8)配置客户端验证:
允许所有IP的主机可以连接该数据库。
修改文件 /opt/HighGo6.0.2-cluster/data/pg_hba.conf,添加 0.0.0.0/0 那一行,如:
IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
(9)启动实例:
pg_ctl start
(10)标准参数:
注意:根据实际物理内存,修改shared_buffers为物理内存的1/4。
psql highgo highgo <<EOF
alter system set listen_addresses = '*';
alter system set port = 5866;
alter system set max_connections = 3000;
alter system set shared_buffers = '1GB';
alter system set checkpoint_completion_target = 0.9;
alter system set log_destination = 'stderr';
alter system set logging_collector = on;
alter system set log_directory = 'hgdb_log';
alter system set log_filename = 'highgodb_%d.log';
alter system set log_truncate_on_rotation = on;
alter system set log_rotation_age = '1d';
alter system set log_rotation_size = 0;
alter system set log_connections=off;
alter system set log_disconnections=off;
alter system set log_line_prefix = '%m [%p] %u %h %d ';
alter system set log_statement = 'all';
alter system set checkpoint_timeout='15min';
alter system set maintenance_work_mem='2GB';
alter system set min_wal_size ='800MB';
alter system set max_wal_size ='3200MB';
alter system set ssl=off;
EOF
重启数据库生效:
pg_ctl restart
(11)修改密码有效期为永久
用户密码默认有效期是7天,如果不想改密码一直用,将有效期修改为永久即可,命令如下:
psql highgo highgo <<EOF
select set_secure_param('hg_idcheck.pwdvaliduntil','0');
EOF
重启生效:
pg_ctl restart
(12)自启动配置
如果企业版是集群版本,需要按以下步骤操作才能自动启动,如:
cd /opt/HighGo6.0.2-cluster/etc/
cp hgdb-cluster-6.0.2.single hgdb-cluster-6.0.2.single.bak
cp hgdb-cluster-6.0.2.cluster hgdb-cluster-6.0.2.bak
ln -sf hgdb-cluster-6.0.2.single hgdb-cluster-6.0.2
然后停掉数据库:
[highgo@Node03 etc]$ pg_ctl stop
切换到 root 用户下,使用systemctl启动,如:
[root@Node03 ~]# systemctl start hgdb-cluster-6.0.2.service
[root@Node03 ~]# systemctl status hgdb-cluster-6.0.2.service
● hgdb-cluster-6.0.2.service - highgodb-6.0.2
Loaded: loaded (/usr/lib/systemd/system/hgdb-cluster-6.0.2.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-10-19 14:05:42 CST; 15s ago
Process: 5014 ExecStart=/opt/HighGo6.0.2-cluster/etc/hgdb-cluster-6.0.2 start (code=exited, status=0/SUCCESS)
Process: 5012 ExecStartPre=/usr/bin/sleep 30 (code=exited, status=0/SUCCESS)
Main PID: 5023 (postgres)
CGroup: /system.slice/hgdb-cluster-6.0.2.service
├─5023 /opt/HighGo6.0.2-cluster/bin/postgres -D /opt/HighGo6.0.2-cluster/data
├─5024 postgres: logger
├─5026 postgres: checkpointer
├─5027 postgres: background writer
├─5028 postgres: walwriter
├─5029 postgres: autovacuum launcher
├─5030 postgres: stats collector
└─5031 postgres: logical replication launcher
Oct 19 14:05:11 Node03 systemd[1]: Starting highgodb-6.0.2...
Oct 19 14:05:42 Node03 hgdb-cluster-6.0.2[5014]: Starting HighGo Database Server:
Oct 19 14:05:42 Node03 systemd[1]: Started highgodb-6.0.2.