一、openGuass介绍
openGaussDB(openGauss)是华为云深度融合在数据库领域多年的经验,结合企业级场景需求,推出的新一代企业级分布式数据库,支持集中式与分布式两种部署形态。在支撑传统业务的基础上,持续构建竞争力特性,为企业面向5G时代的挑战,提供了无限可能。(来自华为云官方)。openGauss 于2019年9月19日正式开源,于2020年6月30日正式开放源代码,并成立openGuass社区。官方网站地址 https://opengauss.org。
openGuass 底层框架源自 PostgreSQL,内建 PostgreSQL 版本为 9.2.4 版本。版本定义在
include/postgresql/server/pg_config.h
/* PostgreSQL version as a string */
#define PG_VERSION "9.2.4"
兼容 Oracle 数据类型和函数
如varchar2(n) 数据类型
定义在 include/ecpgtype.h
enum ECPGttype {
ECPGt_varchar2
}
add_months()
定义在include/postgresql/server/utils/timestamp.h
extern Datum add_months(PG_FUNCTION_ARGS);
等。
openGauss 也是一款分布式数据库,内部实现采用pgxc架构。
二、版本及特性介绍
openGauss-1.0.0 为 openGuass 的第一个版本。
版本介绍
数据类型,表,临时表,视图,索引,序列,存储过程,函数,触发器等SQL功能;
数据类型,表,临时表,视图,索引,序列,存储过程,函数,触发器等SQL功能;
认证,权限管理,网络通信安全,数据库审计等安全特性;
主备双机,物理备份,逻辑备份,极致RTO高可用功能;
大并发链接,分区,plan hint,NUMA化优化高性能能力。
特性介绍
标准SQL支持
支持标准的SQL92/SQL99/SQL2003/SQL2011规范,支持GBK和UTF-8字符集,支持SQL标准函数与分析函数,支持存储过程。
数据库存储管理功能
支持表空间,可以把不同表规划到不同的存储位置。
提供主备双机
事务支持ACID特性、单节点故障恢复、双机数据同步,双机故障切换等。
应用程序接口
支持标准JDBC 4.0的特性、ODBC 3.5特性。
管理工具
提供安装部署工具、实例启停工具、备份恢复工具。
安全管理
支持SSL安全网络连接、用户权限管理、密码管理、安全审计等功能,保证数据库在管理层、应用层、系统层和网络层的安全性。
三、基本架构
openGuass支持SQL 2003 语法标准,支持主备部署的高可用关系型数据库。适合如下场景:
- 多种存储模式支持符合业务场景
- NUMA 化数据结构支持高性能
- 主备模式,CRC校验支持高可用
应用场景:
交易型应用
大并发、大数据量、以联机事务处理为主的交易型应用,如电商、金融、O2O、电信CRM/计费等,应用可按需选择不同的主备部署模式。
物联网数据
在工业监控和远程控制、智慧城市的延展、智能家居、车联网等物联网场景下,传感监控设备多,采样率高,数据存储为追加模型,操作和分析并重的场景。
四、安装指南
openGauss 支持单机安装和主备环境安装,此处示例仅仅演示单机安装。
单机环境介绍:
CPU:AMD-2700x
内存:32G
CPU核数:8核
4.1 软件依赖环境
#yum install -y libaio-devel\
flex \
bison \
ncurses-devel \
glibc-devel \
patch \
lsb_release
4.2 关闭防火墙和SELinux
#systemctl stop firewalld
#systemctl disable firewalld
#setenforce 0
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
4.3 禁用SWAP内存
#swapoff -av
swapoff /dev/mapper/rhel-swap
4.4 设置网卡MTU值
推荐 8192,不小于1500
[root@opengauss ~]# ifconfig ens33 mtu 8192
[root@opengauss ~]# ifconfig ens33 | grep mtu
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 8192
4.5 了解用户和用户组
为了安全管控,建议安装用户为自定义用户组,软件包已自带 gs_preinstall 脚本检查,相应用户及用户组会自动创建并创建安装目录
4.6 配置数据库名称及各项目录
openGauss 以xml 文件读取数据库名称及相应目录
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- 整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="opengauss" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="opengauss" />
<!-- 节点IP,与nodeNames一一对应 -->
<PARAM name="backIp1s" value="10.10.20.173"/>
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/var/log/omm" />
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />
<!--数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
<!--数据库core文件目录-->
<PARAM name="corePath" value="/opt/huawei/corefile"/>
<!-- openGauss类型,此处示例为单机类型,“single-inst”表示单机一主多备部署形态-->
<PARAM na