瀚高数据库安全版v4.5.7_凝思v6.0.60_root 运行部署

瀚高数据库安全版v4.5.7root用户运行配置

导读

目前凝思操作系统大多数用在电力行业,本文主要目的是说明一下如何在凝思v6.0.60系统下安装部署瀚高数据库安全版v4.5.7。

主要面向电力行业等使用凝思操作系统的用户。文档编写所基于的环境:

信息项 版本 备注
操作系统 凝思v6.0.60
架构 x86_64
瀚高数据库 安全版v4.5.7

提示

  1. 有的凝思v6.0.60系统安装完后,需要先安装cups补丁,否则在安装数据数据库时会有错误窗口提示,且无法添加SBstart等脚本服务自启动。补丁文件为“linx-cups-meta_1.0_amd64.deb”,deb安装命令为:sudo dpkg -i linx-cups-meta_1.0_amd64.deb;
  2. 下面每一节的操作,均可以复制粘贴到Linux命令行下执行,注意不要再psql命令行下执行。

Here we go! >>


01. 安装软件

登录root用户,将安装包上传到默认目录/root/下,校验安装包完整性:

md5sum -c hgdb4.5.7-see-linx60-x86_64-20230608.deb.md5

输出:

hgdb4.5.7-see-linx60-x86_64-20230608.deb: 确定

这样就ok,继续安装数据库包:

dpkg -i hgdb4.5.7-see-linx60-x86_64-20230608.deb

输出:

选中了曾被取消选择的软件包 hgdb-see-4.5.7。
(正在读取数据库 ... 系统当前共安装有 224140 个文件和目录。)
正在解压缩 hgdb-see-4.5.7 (从 hgdb4.5.7-see-linx60-x86_64-20230608.deb) ...
正在设置 hgdb-see-4.5.7 (4.5.7) ...
update-rc.d: using dependency based boot sequencing
insserv: warning: script 'linx_smpd' missing LSB tags and overrides
/etc/init.d

说明:警告信息是操作系统脚本linx_smpd写的不标准,缺少LSB标签。这个警告可以忽略。

02. 相关目录和权限

创建以下目录并设置相应的权限,便于root用户能够继续操作和运行:

mkdir -p /data/highgo/data
mkdir -p /data/highgo/hgdbbak/archive
ln -sf /data/highgo/data /opt/HighGo4.5.7-see/data

说明

  1. 这里的/data目录一般是指大容量磁盘的挂载目录。如果目录名不是data,需要修改很多地方,详情咨询瀚高工程师,指导下进行修改;
  2. /data目录下创建highgo目录,用于存储瀚高数据库数据等。在之下又创建了datahgdbbak目录,分别用于数据库实例数据和备份数据;
  3. 最后我们把数据的实际目录data在安装目录/opt/HighGo4.5.7-see/下做了一个软链接。

03. 环境变量

使用户root的环境变量生效:

source ~/.bashrc

说明:安装会在.bashrc下添加一行source /opt/HighGo4.5.7-see/etc/highgodb.env

04. 字符集设置

凝思v6.0.60的默认字符集是zh_CN.GB18030

需要将当前会话字符集改成UTF8,如:

export LANG=zh_CN.UTF8 

如果有必要,可以改为永久的字符集设置。

05. 初始化数据库簇

接下来我们就需要初始化了,一般国产环境初始化命令如下所示:

initdb -A sm3 -e sm4 -c "echo 12345678" -D $PGDATA -E 'UTF8' \
--pwfile=<(printf "%s\n%s\n%s\n" "Hello@123456" "Hello@123456" "Hello@123456") 

说明

  1. 这里要设置运行时的字符集环境变量LANG=zh_CN.UTF8,因为操作系统默认是LANG=zh_CN.GB18030,初始化会报错;
  2. 参数-A后面指定的是数据库用户密码加密方式,一般是国密sm3,或者通常使用的md5
  3. 参数-e后面指定的是数据加密方式,如果不想加密,可以去掉-e sm4 -c "echo 12345678"部分;
  4. 参数--pwfile指定三圈用户的密码。这里的密码“Hello@123456”不是最终密码,后面我们改有效期的时候会更换掉。

06. SSL 证书

SSL 证书是数据库启动需要的文件,创建命令如下:

hg_sslkeygen.sh /opt/HighGo4.5.7-see/data

说明:这里也要设置字符集环境变量LANG=zh_CN.UTF8

07. 免密登录文件

创建免密登录文件:

cat > ~/.pgpass <<-"EOF"
host:port:database:user:password
localhost:5866:*:sysdba:Hello@123456
localhost:5866:*:syssao:Hello@123456
localhost:5866:*:syssso:Hello@123456
EOF

修改权限:

chmod 0600 ~/.pgpass

说明:免密登录文件一般在定时备份时使用比较方便,以及psql命令行登录时也可以免密登录。

08. 客户端验证

需要设置一下,否则只能本机访问数据库服务,命令如下:

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               sm3
################## add by Highgo at `date +%Y-%m-%d_%H:%M:%S` for hgdb end ####################
EOF

说明

  1. 上面设置允许所有可达主机访问该数据库;
  2. 密码加密方式是sm3,根据需要可以改为其他的加密方式,如:md5
  3. 可以更细粒度来设置这里从而达到安全访问的要求。

09. 启动数据库

接下来,我们就可以启动数据库了,命令如下:

pg_ctl start

10. 标准参数设置

以下是常用参数设置,可以根据需要进行微调:

psql highgo sysdba <<-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 /data/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

11. 改善性能

以下参数影响数据库性能,执行命令关掉来改善,如下:

psql highgo syssso <<-EOF
select set_secure_param('hg_macontrol','min');
select set_secure_param('hg_rowsecure','off');
select set_secure_param('hg_showlogininfo','off');
select set_secure_param('hg_clientnoinput','0');
select set_secure_param('hg_idcheck.pwdpolicy','high');
select set_secure_param('hg_idcheck.pwdvaliduntil','0');
EOF

说明:密码复杂度参数是hg_idcheck.pwdpolicy,选项如下所示

  • low:表示密码不受限制;
  • medium:表示密码长度至少为8 位,必须包含字母和数字;
  • high:表示密码长度至少为8 位,必须包含字母、数字和特殊字符。
  • highest:包含常用密码、保留字、关键字等所有密码规则。

重启生效:

pg_ctl restart

12. 修改用户密码

所有用户默认密码有效期是7天,上一步已经把密码默认有效期改为永久。下面修改管理员密码为永久:

psql highgo syssso <<-EOF
alter user current_user password 'Hello@123' valid until 'infinity';
\c - sysdba
alter user current_user password 'Hello@123';
\c - syssao
alter user current_user password 'Hello@123';
EOF

记得将免密文件中的旧密码也替换了:

sed -i 's/Hello@123456/Hello@123/g' ~/.pgpass

13. 关闭审计功能

该功能默认是开启的,但会占用资源。如没有必要,可以考虑关掉。需要提前沟通好有些测评(等保分保)需要开启。关闭命令如下:

psql highgo syssao <<-EOF
select set_audit_param('hg_audit','off');
EOF

重启生效:

pg_ctl restart

14. 安装授权

将授权文件放到目录/opt/HighGo4.5.7-see/data下即可。

15. 服务设置

由于该操作系统只支持SysV init,需要执行以下命令达到以单机启动:

mv /opt/HighGo4.5.7-see/etc/.cluster.mark /opt/HighGo4.5.7-see/etc/.cluster.mark.bak

先关闭数据库服务,然后使用服务命令启动:

pg_ctl stop
/etc/init.d/hgdb-see-4.5.7 start
或
service hgdb-see-4.5.7 start

<< There you go!

总结

凝思操作系统的安装步骤没啥麻烦的,就是操纵系统本身有一些特殊性需要注意。

如果有问题欢迎拨打瀚高服务热线:400-708-8006寻求技术支持。

你可能感兴趣的:(postgresql,数据库,瀚高数据库,凝思,安全版)