【最佳实践】瀚高数据库企业版v9 安装部署之静默安装
瀚高数据库企业版v9需要在普通用户下,通常会先新建一个用户highgo
。
操作系统:Centos 7.9
,架构:x86_64
瀚高数据库:企业版v9
(若想拿到安装包,联系瀚高400-708-8006
)
(说明:以下每一节的命令操作,均可以复制粘贴直接执行)
Here we go! >>
01. 组和用户
登录root
用户,创建用户组highgo
以及新用户highgo
:
/usr/sbin/groupadd highgo
/usr/sbin/useradd -m -g highgo highgo -c "Highgo DataBase Server"
echo "highgo:666666" | chpasswd
Debian
系操作系统请这样创建:
adduser highgo --ingroup highgo --comment "Highgo DataBase Server" --disabled-password
echo "highgo:666666" | chpasswd
说明:
- -c 后面说明的是用户的用途;
- echo 后面是密码,当前设置“Hello@123”;
02. 相关目录和权限
用户root
创建以下目录并设置相应的权限,便于highgo
用户能够继续操作和运行:
mkdir -p /opt/highgo/hgdb-enterprise-9.0.1
mkdir -p /home/highgo/data
mkdir -p /home/highgo/hgdbbak/archive
chown -R highgo:highgo /opt/highgo
chown -R highgo:highgo /home/highgo
ln -vsf /home/highgo/data /opt/highgo/hgdb-enterprise-9.0.1/data
说明:
- 目录
/home/highgo/data
,此目录非常重要,用于存储瀚高数据库数据。如果/home
目录空间不足,建议挂在大容量磁盘;- 目录
/home/highgo/hgdbbak
,主要用于存放数据库备份和归档文件;- 数据目录
/home/highgo/data
在安装目录/opt/highgo/hgdb-enterprise-9.0.1
下做了一个软链接。
03. 环境变量
切换或重新登录到highgo
用户下。
su - highgo
配置用户highgo
的环境变量:
cat >> ~/.bash_profile <<-EOF
################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb start ##################
export HG_BASE=/opt/highgo
export HGDB_HOME=\$HG_BASE/hgdb-enterprise-9.0.1
export PGPORT=5866
export PGDATABASE=highgo
export PATH=\$HGDB_HOME/bin:\$PATH
export PGDATA=\$HGDB_HOME/data
################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb end ####################
EOF
说明:
- 全部复制执行即可,不要只复制里面的 export 命令行,如果真要这么做,请把
$
前面的\
去掉;- 如果是
Debian
系的操作系统,环境变量需要配置在.bashrc
下。
重新登录highgo
用户使环境变量生效,也可以执行source
命令使环境变量生效:
source ~/.bash_profile
04. 安装软件
将安装包hgdb-ee-9.0.1-build23071421-linux.x86_64.bin
和授权文件license.dat
上传到用户highgo
的主目录下(即:/home/highgo
)。修改安装包权限:
chmod a+x hgdb-ee-9.0.1-build23071421-linux.x86_64.bin
然后,创建静默安装文件:
cat > install.propertise <<-"EOF"
USER_INSTALL_DIR=/opt/highgo/hgdb-enterprise-9.0.1
USER_SHORTCUTS=/home/highgo/hgdb
CHOSEN_INSTALL_SET=Minimal
LICENSE_FILE=/home/highgo/license.dat
EOF
说明:
- USER_INSTALL_DIR:数据库软件安装路径;
- USER_SHORTCUTS:快捷方式;
- CHOSEN_INSTALL_SET:安装功能集;
- LICENSE_FILE;授权文件路径,你需要放到这个路径下,供安装过程使用。
此时当前目录/home/highgo
下文件清单如下:
$ ls
data hgdbbak hgdb-ee-9.0.1-build23071421-linux.x86_64.bin install.propertise license.dat
然后再安装:
./hgdb-ee-9.0.1-build23071421-linux.x86_64.bin -i silent -f install.propertise
05. 初始化数据库实例
接下来我们就需要初始化了,一般国产环境初始化命令如下所示:
initdb -A md5 -D $PGDATA --pwfile=<(printf "%s\n" "Hello@123") -E 'UTF8' -m pg
说明:
- 参数
-A
后面指定的是数据库用户密码加密方式,通常使用的是md5
;- 参数
--pwfile
指定三圈用户的密码;- 参数
-m
指定数据库模式,可以指定为oracle
或pg
。
06. 免密登录文件
创建免密登录文件:
cat > ~/.pgpass <<-EOF
host:port:database:user:password
localhost:5866:*:highgo:Hello@123
EOF
修改权限:
chmod 0600 ~/.pgpass
说明:免密登录文件一般在定时备份时使用比较方便,以及
psql
命令行登录时也可以免密登录。
07. 客户端验证
需要设置一下,否则只能本机访问数据库服务,命令如下:
cat >> $PGDATA/pg_hba.conf <<-EOF
################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb start ##################
# IPv4 local connections:
host all all 0.0.0.0/0 md5
################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb end ####################
EOF
说明:
- 上面设置允许所有可达主机访问该数据库;
- 密码加密方式是
md5
,根据需要可以改为其他的加密方式;- 可以更细粒度来设置这里从而达到安全访问的要求。
08. 启动数据库
接下来,我们就可以启动数据库了,命令如下:
pg_ctl start
09. 标准参数设置
以下是常用参数设置,可以根据需要进行微调:
psql highgo highgo <<-EOF
alter system set listen_addresses = '*';
alter system set max_connections = 2000;
alter system set work_mem='16MB';
alter system set shared_buffers = '1GB';
alter system set checkpoint_completion_target = 0.8;
alter system set log_destination = 'csvlog';
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_rotation_age = '1d';
alter system set log_rotation_size = 0;
alter system set log_truncate_on_rotation = on;
alter system set log_statement = 'ddl';
alter system set log_connections=on;
alter system set log_disconnections=on;
alter system set checkpoint_timeout='30min';
alter system set maintenance_work_mem='1GB';
alter system set archive_mode = on;
alter system set archive_timeout = '30min';
alter system set archive_command = 'cp %p /home/highgo/hgdbbak/archive/%f';
alter system set log_line_prefix = '%m [%p] %a %u %d %r %h';
EOF
注意:根据实际物理内存,修改
shared_buffers
为物理内存的1/4。
重启生效:
pg_ctl restart
10. 服务设置
可以使用守护服务启动数据库。切回用户root
,执行以下命令,创建服务单元文件:
cat > /usr/lib/systemd/system/hgdb-ee-9.service <<-"EOF"
[Unit]
Description=hgdb-ee-v9
Requires=network.target local-fs.target
After=network.target local-fs.target
[Service]
Type=forking
User=highgo
Group=highgo
Environment=PGDATA=/opt/highgo/hgdb-enterprise-9.0.1/data
OOMScoreAdjust=-1000
ExecStart=/opt/highgo/hgdb-enterprise-9.0.1/bin/pg_ctl start -D ${PGDATA}
ExecStop=/opt/highgo/hgdb-enterprise-9.0.1/bin/pg_ctl stop -D ${PGDATA}
ExecReload=/opt/highgo/hgdb-enterprise-9.0.1/bin/pg_ctl reload -D ${PGDATA}
TimeoutSec=60
[Install]
WantedBy=multi-user.target graphical.target
EOF
说明:
- 如果普通用户不是
highgo
,注意修改上面单元文件例的User
和Group
;- 注意环境变量
PGDATA
的路径以及下面pg_ctl
的路径,要使用绝对路径。
重载服务单元:
systemctl enable hgdb-ee-9
启动数据库服务:
systemctl start hgdb-ee-9
11. 开启防火墙端口:
firewall-cmd --add-port=5866/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
12. 卸载数据库:
先停掉数据库服务:
systemctl stop hgdb-ee-9
如果没有自动服务管理,登录highgo
执行以下命令停掉服务:
pg_ctl stop
执行目录/home/highgo/hgdb
下的uninstall
:
./uninstall
<< There you go!
总结
瀚高数据库企业版v9安装相对之前的安全版比较简单易懂。安装方式除了静默还有图形、命令交互方式,后面有时间我会更新一下,不断完善一下企业版v9的安装。文中若有不妥或错误的地方,或者建议请留言。