先簡單介紹下背景:近年來由於和美國打貿易戰,我們國家對計算機基礎設施和軟件國產化的需求越來越強烈,目標是自主安全可控。數據庫作為基礎軟件,自然也迎來了發展的春天。目前我國常用的國產數據庫有人大金倉、南大通用、達夢、瀚高等。瀚高數據庫是基於postgres開源數據庫開發的數據庫。
一、瀚高數據庫快速安裝(快速測試用,非運維和性能測試用)
瀚高數據庫(highgo database)支持在Linux、Windows、國產硬件平台操作系統如龍芯+中標麒麟、飛騰+銀河麒麟、兆芯+中科方德等環境上安裝,並支持圖形化安裝、命令行安裝、靜默模式安裝和rpm安裝等各種安裝方式。
以下以Redhat Enterprise Linux Server 7.3(Maipo), Kernel 3.10.0-514.el.x86-64 on an x86-64上的瀚高數據庫企業版5.6.5的rpm安裝為例進行快速安裝(快速測試用,非運維用,不包含操作系統參數和數據庫參數配置及調優。參數配置可參考另一篇筆記)。其他安裝可參考官方安裝手冊。
1、 下載安裝包和手冊。
從官網下載瀚高數據庫安裝包及安裝手冊。瀚高數據庫提供標准版、企業版和安全版三種版本。主要使用的是企業版和安全版兩種。企業版可以試用一年。
下載企業版5.6.5(Linux版本)
安裝包:http://www.highgo.com/uploads/HighGoDB/hgdb5.6.5-enterprise-rhel7-x86-64.rpm
安裝手冊:http://www.highgo.com/attachs/file/1906/2814443230539.pdf
2、 在虛擬機(Oracle VM VirtualBox)上安裝rpm包。
虛擬機安裝Redhat Enterprise 64bit,
使用UltraISO將rpm打包成iso文件,在VM設置里將光驅點開選擇該iso文件,如下圖所示:
在vm命令行里掛載光盤文件:mount /dev/sr0 /media/cdrom
進入光盤掛載目錄並安裝rpm:
cd /media/cdrom
rpm -ivh hgdb5.6.5-enterprise-rhel7-x86-64.rpm
rpm安裝完成,數據庫目錄已建立(/opt/HighGo5.6.5),超級管理員highgo已建立,密碼無,進程可通過ps –ef|grep postgres查到,端口號默認為5866。highgo用戶下的~/.bash_profile環境變量已添加(如下圖)。
3、 切換用戶為highgo,修改密碼。
設置操作系統中highgo用戶密碼:passwd highgo
切換用戶為highgo:su - highgo
注意:使用su -,可以使環境變量生效。或者切換用戶后運行source ~/.bash_profile。
若環境變量不生效,運行psql會報錯,如下圖:
運行psql命令正常如下圖:
設置數據庫用戶highgo的psql登錄密碼:
$PGDATA/pg_hba.conf里設置了不同主機和網段是否有訪問數據庫的權限以及是否需要輸入密碼,如下圖。
設置密碼的方法如下:
1) 在pg_hba.conf的local為trust(默認)的狀態下,數據庫本地登錄psql(此時無需輸入密碼);
2) 輸入修改密碼的命令(大小寫不敏感):
[highgo@hgdb~]$ psql
highgo=# alter user highgo WITH PASSWORD 'highgo123';
highgo=# \q
3) 將pg_hba.conf中需要密碼驗證的列修改為md5,運行pg_ctl reload之后可使用密碼登錄psql。
4、 默認外部主機不能訪問該數據庫,所以需要關閉SELINUX、防火牆以及修改數據庫本身的網絡訪問限制。
關閉SELINUX(Secure Enhanced Linux):
[root@hgdb~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config
[root@hgdb~]# setenforce 0
[root@hgdb~]# cat /etc/selinux/config | grep SELINUX=disabled
[root@hgdb~]# getenforce
[root@hgdb~]# disabled
關閉防火牆:
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# systemctl status firewalld.service
或者添加數據庫端口訪問權限:
[root@localhost ~]# firewall-cmd --list-ports
[root@localhost ~]# firewall-cmd --add-port=5866/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-ports
5866/tcp
數據庫修改網絡訪問限制包括以下兩方面:
1) 修改$PGDATA/Pg_hba.conf。
默認外部主機不能訪問數據庫,在$PGDATA/Pg_hba.conf加上最后這行:
TYPE DATABASE USER ADDRESS METHOD
# "local"is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
2) 修改數據庫參數,在psql中執行:
Highgo=# alter system set listen_addresses=’*’;
或者修改$PGDATA/postgresql.conf,編輯listen_addresses=’*’。
查看listen_addresses,在pslq中執行:
highgo=# show listen_addresses;
修改完以上兩條,執行pg_ctl restart使配置生效。
做完以上第4步操作后,可以從其他主機的應用(包括hgdbAdmin)訪問該數據庫。
=============以下是補充========================================================
1. 試用到期或者License過期之后需要將更新的License放置在目錄下:$PGDATA/hgdb.lic
使license生效:pg_ctl reload
查看license:check_lic hgdb.lic
2.安裝數據庫包括以下內容:
a.建立數據庫引擎:數據庫引擎提供了數據的存儲、訪問和保護的服務。它管理着
用戶數據的存儲,為用戶數據訪問提供了接口,並通過用戶權限管理來保護數據的安全。
b.安裝以下工具:
psql:瀚高數據庫的基於命令行的數據庫管理終端。
hgdbAdmin:瀚高數據庫的管理和開發的圖形化界面工具。HGDB V5 linux 平台不支持安裝 hgdbAdmin 組件。可在 windows 系統安裝單獨的 hgdbAdmin 工具對數據庫進行圖形化管理。
c.應用程序開發相關組件,包括頭文件、庫文件、JDBC/ODBC驅動等。用戶可根據具體情況決定是否安裝。
3.對虛擬機網絡設置使宿主機可以訪問虛擬機:
設置完成后reboot虛擬機,重啟后可通過ifconfig查看ip,使用工具ssh從宿主機登錄該虛擬機,例如使用MobaXterm,該工具可免費使用,包含了sftp、telnet、x11等功能,且方便復制屏幕內容、鼠標上下滾動屏幕等。
二、瀚高數據庫安裝前后參數查看配置
1. 檢查主機名
[root@localhost ~]# hostnamectl status
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: e35979acf2cb40bba78e108f655384c8
Boot ID: 3e49aa0a703b4965a8cdd00c5fe5bd24
Virtualization: kvm
Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
Kernel: Linux 3.10.0-514.el7.x86_64
Architecture: x86-64
2.設置時區時間
查看當前時區時間:
[root@localhost ~]# timedatectl status
Local time: 日 2020-02-16 16:12:36 CST
Universal time: 日 2020-02-16 08:12:36 UTC
RTC time: 六 2020-02-15 20:06:19
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
設置時區:timedatectl –-set-timezone Aisa/Shanghai
設置時間:date –s “20200216 17:30:00”