瀚高数据库 docker 容器单机运行
鉴于有些高端客户需要容器运行瀚高数据库,本文主要针对这些用户说明一下瀚高数据库镜像的操作。
文档所使用的docker版本是18.03.0
。
已拿到docker镜像包459.tar
,如有需要可以拨打热线电话400-708-8006
。
注意:
- 容器内已经初始化好数据库实例,密码散列算法
sm3
,字符集utf8
;- 随着镜像构建技术的进一步优化,本文的操作可能后期会发生变化,请及时了解相关说明。
Here we go!!! >>>
(1)导入镜像包:
docker load -i 459.tar
(2)对镜像包做个标记,便于后面使用:
docker tag 192.168.95.32/hgdb-images/hgdb-see/x86_64-uos20:4.5.9 hgdb-see:4.5.9
(3)查看镜像导入情况:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.95.32/hgdb-images/hgdb-see/x86_64-uos20 4.5.9 8d69c47fc752 9 days ago 3.56GB
hgdb-see 4.5.9 8d69c47fc752 9 days ago 3.56GB
看到hgdb-see
,tag是4.5.9
即可。
(4)容器运行:
docker run -dit --name=my_hgdb459 -p 5866:5866 \
-v /home/hgdb:/opt/highgo/hgdb-see-4.5.9/data \
hgdb-see:4.5.9
说明:
- 命名容器:
--name=my_hgdb459
,这个参数指定荣启铭为my_hgdb459
,也可以指定其他容易识别的名称;- 宿主机端口:
-p 5866:5866
,容器内部端口是5866
(第2个),-p后紧跟的是宿主机端口号。这里映射到宿主机端口号也是5866,可以指定其他端口号;- 存储映射:
-v /home/hgdb:/opt/highgo/hgdb-see-4.5.9/data
,将容器中的数据目录/opt/highgo/hgdb-see-4.5.9/data
映射到宿主机的目录/home/hgdb
下,这一参数是关键,务必要设置好否则会丢失数据;- 指定镜像名:
hgdb-see:4.5.9
是前面我们标记(TAG)的镜像名,要使用已经存在的镜像名。
需要设置一下,否则只能容器内访问数据库服务,命令如下:
docker exec -i my_hgdb459 cat >> /home/hgdb/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
创建归档目录,因为后面我们要启用归档:
docker exec -i my_hgdb459 mkdir -p /opt/highgo/hgdb-see-4.5.9/data/archive
配置常规参数:
docker exec -i -e PGPASSWORD=Hello@1234 my_hgdb459 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 /opt/highgo/hgdb-see-4.5.9/data/archive/%f';
alter system set log_line_prefix = '%m [%p] %a %u %d %r %h';
alter system set nls_length_semantics = 'char';
EOF
注意:
- PGPASSWORD是瀚高数据库初始密码,后面会修改,要注意这个参数在没一步的变化
- 根据实际物理内存,修改
shared_buffers
为物理内存的1/4。
以下参数影响数据库性能,执行命令关掉来改善,如下:
docker exec -i -e PGPASSWORD=Hello@1234 my_hgdb459 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
重启容器生效:
docker restart my_hgdb459
所有用户默认密码有效期是7天,需要执行以下命令来改为永久:
docker exec -i -e PGPASSWORD=Hello@1234 my_hgdb459 psql highgo syssso <<-EOF
alter user current_user password 'Hello@12345' valid until 'infinity';
\c - sysdba
alter user current_user password 'Hello@12345';
\c - syssao
alter user current_user password 'Hello@12345';
EOF
该功能默认是开启的,但会占用资源。如没有必要,可以考虑关掉。需要提前沟通好有些测评(等保分保)需要开启。关闭命令如下:
docker exec -i -e PGPASSWORD=Hello@12345 my_hgdb459 psql highgo syssao <<EOF
select set_audit_param('hg_audit','off');
EOF
重启容器生效:
docker restart my_hgdb459
安全版默认是一个月的试用期,若要延长使用,可以联系瀚高商务申请延长授权,联系电话400-708-8006
。
拿到授权文件后,安装步骤如下:
(1)放到宿主机目录/home/hgdb
下。
(2)修改授权文件权限:
docker exec -i my_hgdb459 chmod 0600 /opt/highgo/hgdb-see-4.5.9/data/hgdb_0_t.lic
(3)查看确认授权信息:
docker exec -i my_hgdb459 hg_lic -c -F /opt/highgo/hgdb-see-4.5.9/data/hgdb_0_t.lic
(4)安装授权文件:
docker exec -i my_hgdb459 hg_lic -l -F /opt/highgo/hgdb-see-4.5.9/data/hgdb_0_t.lic
结果:
loading succeeded. The new license is an trial version and will expire until 2023-06-30 23:59:59
注意:
这种授权安装方式是瀚高数据库安全版v4.5.8开始启用的新方法,之前的版本(如:v4.5.7)不能使用这种方式。
<< There you go!
目前镜像操作还是比较多,请大家一步一步来。