在Docker中快速体验openGauss数据库
openGauss产品简介
openGauss是华为推出的一款开源、免费的关系型数据库
管理系统,采用木兰宽松许可证v2发行。openGauss内核早期源自PostgreSQL
,深度融合华为在数据库领域多年的深入积累和实践经验,结合企业级场景需求,持续构建竞争力特性。同时openGauss也是一个开源、免费的数据库平台,鼓励社区进行贡献、合作。
openGauss于2020年6月30日正式开源,10月12日发布第一个正式公开版本——openGauss 1.0.1版本,满足企业级用户对数据库的高性能、高可用、高安全要求,它与鲲鹏协同性能优化上,基于2路鲲鹏服务器,1000wh数据量可跑到150万tmpC,相对业界主流产品的性能超过50%,在主备模式下60%满负载故障切换时间10秒以内。
产品特点
openGauss相比其他开源数据库主要有复合应用场景、高性能和高可用等产品特点。
复合应用场景
- 行存储,支持业务数据频繁更新场景。
- 列存储,支持业务数据追加和分析场景。
- 内存表,支持高吞吐,低时延,极高性能场景。
高性能
- 通过多核数据结构,增量检查点,大内存缓冲区管理实现百万级tpmC。
- 服务端连接池,支持万级并发。
高可用
- 支持主备同步,异步多种部署模式。
- 数据页CRC校验,损坏数据页通过备机自动修复。
- 备机并行恢复,10秒内可升主提供服务。
AI能力
- 具备AI4DB能力,包括参数智能调优与诊断、慢SQL发现、索引推荐、时序预测、异常检测等。
- 具备DB4AI能力,兼容MADlib生态,支持70+算法,性能比原生MADlib有数倍提升,支持XGBoost、GBDT等高级算法。
相关资料
openGauss社区官网:https://opengauss.org/zh/
openGauss代码托管平台:https://gitee.com/opengauss
openGauss 1.1.0版本官方文档:https://www.modb.pro/download/35413
在Docker环境中快速体验openGauss数据库
https://hub.docker.com/r/enmotech/opengauss
docker pull enmotech/opengauss:latest
docker rm -f opengauss
docker run -d --name opengauss -h opengauss \
--privileged=true \
-e GS_PASSWORD=lhr@123XXT -e TZ=Asia/Shanghai \
-p 15432:5432 enmotech/opengauss:latest
docker cp /usr/share/zoneinfo/Asia/Shanghai opengauss:/etc/localtime
docker logs -f opengauss
docker exec -it opengauss bash
su - omm
gsql -d postgres -p5432
gsql -d postgres -U gaussdb -W'lhr@123XXT' -h 192.168.66.35 -p15432
-- 用psql也可以登陆openGauss
psql -d postgres -U gaussdb -h 192.168.66.35 -p15432
-- 去掉密码复杂度验证策略
alter system set password_policy=0;
为了更灵活的使用openGuass镜像,可以设置额外的参数。未来我们会扩充更多的可控制参数,当前版本支持以下变量的设定。
- GS_PASSWORD
在你使用openGauss镜像的时候,必须设置该参数。该参数值不能为空或者不定义。该参数设置了openGauss数据库的超级用户omm以及测试用户gaussdb的密码。openGauss安装时默认会创建omm超级用户,该用户名暂时无法修改。测试用户gaussdb是在entrypoint.sh中自定义创建的用户。
openGauss镜像配置了本地信任机制,因此在容器内连接数据库无需密码,但是如果要从容器外部(其它主机或者其它容器)连接则必须要输入密码。
openGauss的密码有复杂度要求,需要:密码长度8个字符及以上,必须同时包含英文字母大小写,数字,以及特殊符号
GS_NODENAME
指定数据库节点名称 默认为gaussdb
GS_USERNAME
指定数据库连接用户名 默认为gaussdb
GS_PORT
指定数据库端口,默认为5432。
root@opengauss:/# su - omm
gsql -d postgres -p5432omm@opengauss:~$ gsql -d postgres -p5432
gsql ((openGauss 2.1.0 build 590b0f8e) compiled at 2021-09-30 14:29:04 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=# select now();
now
-------------------------------
2022-01-06 15:05:18.031958+08
(1 row)
openGauss=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
(4 rows)
openGauss=#
C:\Users\lhrxxt>psql -d postgres -U gaussdb -h 192.168.66.35 -p15432
Password for user gaussdb:
psql (14.0, server 9.2.4)
Type "help" for help.
postgres=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
(4 rows)
gsql客户端安装
mkdir /usr/local/gsql_client
cd /usr/local/gsql_client
wget https://obs.myhuaweicloud.com/dws/download/dws_client_8.1.x_redhat_x64.zip --no-check-certificate
unzip dws_client_8.1.x_redhat_x64.zip
source gsql_env.sh
cat >> ~/.bashrc <<"EOF"
export PATH=/usr/local/gsql_client/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gsql_client/lib:$LD_LIBRARY_PATH
EOF
source ~/.bashrc
gsql -d postgres -U gaussdb -W'lhr@123XXT' -h 192.168.66.35 -p15432 -r
-- 用psql也可以登陆
psql -d postgres -U gaussdb -h 192.168.66.35 -p15432
注意:psql和gsql的lib库不兼容,参考:https://www.xmmup.com/guzhangchulipsqlkehuduanlianjiepgbaocuopsql-error-expected-authentication-request-from-serv.html
若只是客户端,则建议如下配置:
cat > ~/.gsql_env <<"EOF"
export LD_LIBRARY_PATH=/usr/local/gsql_client/lib
export PATH=/usr/local/gsql_client/bin:$PATH
EOF
source ~/.gsql_env
使用:
[root@docker35 ~]# export LD_LIBRARY_PATH=/usr/local/gsql_client/lib
[root@docker35 ~]# export PATH=/usr/local/gsql_client/bin:$PATH
[root@docker35 ~]# gsql -d postgres -U gaussdb -W'lhr@123XXT' -h 192.168.66.35 -p15432 -r
gsql ((GaussDB 8.1.0 build be03b9a0) compiled at 2021-03-12 14:18:02 commit 1237 last mr 2001 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
(4 rows)
postgres=>
html巡检
巡检可以参考:https://www.xmmup.com/opengaussshujukuxunjianjiaoben.html
- 点赞
- 收藏
- 关注作者
评论(0)