• [技术干货] openGauss主备搭建
    openGauss主备搭建是一个涉及多个步骤的过程,以下是一个清晰的搭建流程,主要参考了提供的参考文章中的信息:准备阶段1.1 运行环境 确保服务器满足openGauss的安装要求,包括操作系统版本、内存、磁盘空间等。 1.2 依赖包准备 在所有节点上安装必要的依赖包,如libaio-devel, flex, bison, ncurses-devel, glibc-devel, patch, lsb_release, readline-devel, expect, bzip2等。 1.3 关闭防火墙 在所有节点上关闭防火墙,确保openGauss的网络通信不受影响。 1.4 设置字符集、时区和时间 设置所有数据库节点的字符集为相同的Unicode编码。 确保所有节点的时区和时间与当前时间一致。 1.5 其他设置 设置网卡MTU值,推荐值为8192,但要求不小于1500。 创建安装目录及用户,并设置相应的权限。 设置root用户远程登录和修改Banner配置(如果需要)。 2. 搭建主备 2.1 安装包准备 在主节点上准备openGauss的安装包,并上传到指定的安装目录。 2.2 解压安装包 在主节点上解压安装包,并检查安装目录及文件是否齐全。 2.3 配置文件设置 创建一个XML配置文件(如cluster_config.xml),定义openGauss的整体信息和每台服务器上的节点部署信息。 包括数据库名称、节点名称、安装目录、日志目录、临时文件目录、工具目录、core文件目录等。 确保每个节点的IP地址与数据库节点名称列表一一对应。 2.4 加载环境变量 在所有节点上加载openGauss所需的环境变量。 2.5 环境初始化 在主节点上执行环境初始化脚本(如gs_preinstall),创建SSH信任并检查网络信息。 2.6 安装openGauss 在主节点上执行安装脚本(如install.sh),根据配置文件进行安装。 设置数据库密码、主节点端口号等参数。 注意区分是单节点安装还是一主一备安装。 2.7 验证安装 安装完成后,验证主备节点的状态和数据同步情况。 使用gs_ctl query命令查询主备角色状态。 确保主备节点之间的数据同步正常。 3. 注意事项 主备实例之间不可部署在同一台物理机上。 确保所有节点的root密码一致,以便进行SSH信任设置。 在安装过程中,注意检查防火墙、SELinux等安全设置,确保不会对openGauss的运行造成影响。 根据实际情况调整配置参数,如MTU值、内存分配等,以优化openGauss的性能和稳定性。
  • [技术干货] 探索openGauss:开源数据库的创新实践
    在当今数据驱动的时代,高效、可靠、且高度可扩展的数据库系统成为了企业IT基础设施的核心。openGauss,作为一款基于PostgreSQL的开源关系型数据库管理系统,自问世以来,便以其强大的性能、高可用性以及丰富的生态吸引了众多企业和开发者的关注。本文旨在深入浅出地介绍openGauss的基本用法,帮助初学者快速上手,领略其魅力所在。一、openGauss简介 openGauss起源于华为内部使用的高并发、高可用数据库系统,后于2020年正式开源。它不仅继承了PostgreSQL的强大SQL处理能力,还针对企业级应用场景进行了大量优化,特别是在安全性、性能、可扩展性和运维管理方面有着显著提升。openGauss支持多核并行计算、智能自调优、故障自动切换等高级特性,适用于金融、电信、政府等多个行业的核心业务场景。二、安装部署 2.1 环境准备 硬件要求:确保服务器满足最低硬件配置需求,包括CPU、内存、磁盘空间等。 操作系统:openGauss支持多种Linux发行版,如CentOS、EulerOS等,确保系统环境已准备好。 2.2 下载安装包 访问openGauss官方网站或GitHub仓库,下载最新版本的安装包。2.3 安装步骤 解压安装包。 执行安装脚本,按照提示进行配置选择,包括安装路径、集群模式等。 初始化数据库实例,通过提供的初始化脚本创建数据库实例。 启动服务,完成安装后,启动openGauss服务。 三、基本操作 3.1 连接数据库 使用gsql客户端工具连接openGauss数据库:Bash gsql -d -U -W 3.2 数据库管理 创建数据库: Sql CREATE DATABASE mydb; 切换数据库: Sql \c mydb 创建表: Sql CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) ); 3.3 数据操作 插入数据: Sql INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com'); 查询数据: Sql SELECT * FROM users; 更新数据: Sql UPDATE users SET email = 'newemail@example.com' WHERE username = 'user1'; 删除数据: Sql DELETE FROM users WHERE username = 'user1'; 四、高级功能探索 4.1 高可用部署 openGauss支持一主多备的高可用架构,通过其内建的流复制机制实现数据同步,确保在主节点故障时自动切换至备用节点,保障业务连续性。4.2 性能优化 利用openGauss的智能自调优功能,如自动索引建议、SQL执行计划优化等,可以有效提升数据库处理性能。4.3 安全管理 openGauss提供了全面的安全管理机制,包括用户权限管理、SSL加密传输、审计日志记录等,确保数据安全。五、总结 openGauss凭借其开源、高性能、高可靠性的特点,正逐步成为企业数据库选型的重要考虑对象。通过本文的介绍,希望能帮助读者快速入门openGauss,开启数据库技术的新篇章。随着不断的学习与实践,你会发现更多openGauss的强大功能和应用场景,为其在企业数字化转型中的重要作用贡献力量。
  • [问题求助] 实现一次赋权后,新建的表也可以将权限同步给授权用户
    gauss库支不支持一个数据库,设置三个角色,一个admin管理员,只能创建、删除表,另一个app应用用户,只能增删查改admin创建的表,另一个readonly只读用户,只能查询不能修改。我现在遇到一个问题是,admin创建完表后,app用户需要每次都 grant select、insert、update、delete all tables in schame myschame to myrole,有没有办法实现,给app赋权,实现一次赋权后,admin新创建的表也可以同步给app用户 ?还是它本身设计的时候就是这样,考虑到创建表的用户每次创建的表不一定想都授权给给增删查改的用户,所以需要每次新建都授权
  • [问题求助] openGauss有没有设置sql脚本最大长度的参数? 类似于PG的statement_max_length。
    求助: openGauss有没有设置sql脚本最大长度的参数? 类似于PG的statement_max_length,谢谢了!
  • [问题求助] 求与sql server相同的md5加密方法
    大家好,我是从sql server转型到高斯的,sql server有两个函数可以将字符串转换为加密字符串,如: select sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')) 其中,HashBytes('MD5','123456')是将字符串MD5加密为二进制,sys.fn_sqlvarbasetostr是将二进制转换为字符串。我已经试过用高斯的MD5函数,但无法实现以上sql server的完整加密功能。请问该如何做?(因原本我的sql server数据表里保存用户的密码都是使用以上方法加密,所以在数据迁移后也必须继续使用相同功能的函数。)
  • [技术干货] openGauss 5.0 LTS部署至华为云ECS CentOS8.2实操教程
    前言openGauss是一款高可靠、高性能、高安全、易运维的开源关系型数据库管理系统,然而其全功能部署对系统要求非常高。本实操教程能够使个人开发者以及高校师生能够以成本最小的方式快速将openGauss部署到华为云的ECS上,以便快速进行功能验证以及小规模数据库应用开发。本教程预计实现的目标:开通安装有CentOS 8.2的华为云ECS安装并启动openGauss 5.0.0 LTS放通公网访问(本文部署到25432端口)能够使用Navicat等数据库软件以PostgreSQL兼容的方式进行连接本教程仅供实验测试使用,安全性较低,请勿在生产环境按该教程部署一、 开通华为云ECS在华为云控制台中搜索弹性云服务器产品并购买相关参数解释说明与推荐区域:服务器所在的区域,不同区域定价差异较大,可以选择成本较低的区域如西南-贵阳一计费模式:若需要长期部署应用(如课程作业开发),推荐选择包月规格:服务器的配置,为了运行openGauss,内存必须2GB以上,推荐至少4GB,经测试若配置过低会导致数据库无法安装、运行或中途崩溃。成本较低的可以选择通用计算型s6(s6.medium.4),基础报价约86元每月。镜像:服务器预装的操作系统,openGauss只支持OpenEuler和CentOS系列。考虑到一些软件的支持性,本教程采用CentOS 8.2 64bit,尽管官方只说明能够在CentOS7.6上运行,但实测该系统也能够正常运行部署。系统盘:服务器运行的硬盘,若要节省成本可以选择高IO点击下一步(网络配置)网络、子网:保持默认配置即可安全组:为了能够使服务器能够在外网访问数据库端口,我们必须预先放通相关端口,本教程以部署在25432端口为例(修改了默认的端口以降低扫描器发现并爆破密码的几率),此外我们可以顺便放通22、80等常用端口(使用“一键放通常用端口”按钮)IP:为了公网访问,必须购买弹性IP。若服务器应用流量不大,推荐按流量计费,带宽可以选最高的(300M),建议勾选“随实例释放”避免在服务器过期后继续计费。按带宽计费成本非常高,不建议测试使用。点击下一步(高级配置)登录凭证:自行设定云备份:为节省成本可以关闭(不购买)支付:拥有基座课程代金券的同学可以使用代金券连续购买多个月,节省部署成本。(按流量计费的服务器产生的流量可能仍会额外消耗余额)至此,华为云ECS已经创建完成二、安装openGauss创建数据库专用账户openGauss的安全性设计必须以root以外的用户运行首先用刚才的凭证使用root用户连接到服务器在终端中运行以下命令groupadd dbgroup useradd -g dbgroup omm passwd omm 输入你的omm账户密码 这创建了一个omm账户以及一个用户组下载openGauss下载、解压并调整相关文件权限curl -o opengauss.tar.gz https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/x86/openGauss-5.0.0-CentOS-64bit-all.tar.gz mkdir /opt/software/ mkdir /opt/software/openGauss tar -xvf opengauss.tar.gz -C /opt/software/ cd /opt/software/ tar -jxf openGauss-5.0.0-CentOS-64bit.tar.bz2 -C /opt/software/openGauss chown -R omm /opt/software/ 安装依赖对于本文档中的CentOS 8,由于已经停止支持,我们需要切换yum源,以清华大学源为例minorver=8.5.2111 sudo sed -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/$minorver|g" \ -i.bak \ /etc/yum.repos.d/CentOS-*.repo CentOS 8安装供CentOS 7.6使用的OpenGauss会遇到一些问题,我们必须安装一些依赖yum install -y readline-devel libaio libnsl compat-openssl10 cd /usr/lib64 ln -s libreadline.so.7 libreadline.so.6 安装以下的命令将openGauss安装到25432端口,密码请在命令行中“设定的高强度密码”修改su omm cd /opt/software/openGauss/simpleInstall sh install.sh -w 设定的高强度密码 -p 25432 vim ~/.bashrc # *注释*ulimit那行(在行最前加一个#)若没有可以忽略 source ~/.bashrc 配置兼容、外网访问众所周知,openGauss拥有PostgreSQL兼容的接口,若在此进行相关修改便可以在应用处无需修改使用主流软件的PG驱动连接数据库服务器使用。我们下面来修改默认配置使其兼容PG的连接器。cd /opt/software/openGauss/data/single_node vim postgresql.conf 添加/取消注释以下行listen_addresses = '*' local_bind_address = '0.0.0.0' password_encryption_type = 0 vim pg_hba.conf host all all 0.0.0.0/0 md5 启动或重启数据库(omm用户)gs_ctl restart -D $GAUSSHOME/data/single_node 进入数据库命令行(omm用户)创建一个名为postgres的管理用户(因为默认的omm用户无法从外部登录),密码请在命令行中定义gsql -d postgres -p 25432 create user postgres password '你的高强度密码'; GRANT ALL PRIVILEGES TO postgres; \q 退出 至此,你已经可以使用Navicat等软件连接到数据库了。若提示找不到gs_ctl、gsql等命令,请在/opt/software/openGauss/下找到bin目录,并将其加入Path至此,本教程结束~欢迎各位同学交流学习作者:黄浩
  • [用户实践] 锦囊妙计失效了么?我定时备份数据的任务为啥不执行?
    锦囊妙计失效                我定时备份数据的任务为啥不执行?三国演义中有好几处锦囊妙计的情节,目前下发的命令并不会立即执行,而是在之后的某个时间点,或者某种条件满足后,触发执行。典型的有赵云保护刘备去江东招亲前,诸葛亮给的三个锦囊,以及曹操给守合肥的李典,乐进,张辽等的“贼来乃发”纸条。说起来绝大多数是事件触发的锦囊,包括诸葛亮借东风后,让赵云一见东南风起,就去接他,时间触发的一时竟未想到。闲言少叙,言归正传,数据库运营过程中也会有很多后续执行命令的场景,比如定时的数据加载,抽取转换,数据清理等。本文所总结的则是定时备份数据库中数据的过程。由于目前我们的项目已经有好些人在试用了,为了保证数据安全,在数据库宕机后数据不(全部)丢失,我尝试通过定期执行gs_dump命令的方式来备份全量数据。OS:OpenEuler 20.03 LTSOG: openGauss 5.0.0 LTS1. 执行gs_dump的命令:这步相对较为简单,之前经常手动对数据库进行逻辑备份,比如开发库到测试库迁移,测试库到“生产库”迁移等。命令如下:gs_dump -U omm -f /opt/software/openGauss/databak/clob20240611.tar -p 26000 clouddb_rc -F t执行后,在对应文件夹下生成了备份文件,如图: 关于gs_dump命令的参数,仅作简单介绍:-U 数据库用户名;-f 生成的备份文件路径及文件名,注意omm用户对于所在路径要有写权限-p 数据库端口号cl**ec需要备份的数据库名称,根据实际名称修改-F 生成备份文件的格式,其中t表示.tar文件,c表示.sql文件2. 完成可生成根据当前日期时间命名的备份文件的shell文件可通过vim或vi命令编辑sh文件,也可以在windows环境编辑好后再上传至服务器,如先在window环境编辑,则保存时需选择支持unix的编码格式,否则会报错。shell文件如下:#!/bin/bashBACKUP_DIR="/opt/software/openGauss/databak"DB_NAME="cl**ec"TIMESTAMP=$(date +\%F-\%H-\%M-\%S)BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}-${TIMESTAMP}.sql"#切换用户为ommsu - omm <<EOF#执行gs_dump命令gs_dump -U omm -f ${BACKUP_FILE} 2>> ${BACKUP_DIR}/backup.log -p 26000 ${DB_NAME} -F cif [ $? -eq 0 ]; thenecho "Backup succeeded: ${BACKUP_FILE}"elseecho "Backup failed" >&2fi如图: shell文件大意为:首先定义备份文件的路径及文件名为:数据库名称+日期时间戳.sql;切换用户为数据库用户(本文为omm,根据实际情况修改);执行gs_dump命令。shell脚本文件完成后,注意需要通过chmod +x *.sh的命令,增加执行权限。完成后执行shell:sh /opt/software/openGauss/databak/dump_data.sh​备 份文件生成:3 . 编辑操作系统crontab:执行crontab -e,输入如下命令:其中*前面依次为:分钟 (0 - 59)小时 (0 - 23)日 (1 - 31)月 (1 - 12)星期几 (0 - 7)(0 和 7 都表示星期日)我们仅约束了分钟和小时,如下设置表示每天的20:10执行。后面为需要执行的命令,注意命令的路径要写绝对路径。编辑完成后,和vi一样保存退出,如果没有错误,会有如下提示:说明定时执行的任务创建成功了。等时间过了20:10后再查看,就会发现数据备份文件已经生成。查 看crontab日志:也会发现cron命令执行成功了。很顺利是不是?曲折的过程,看到最后的结果无疑是很开心的,然而不能忽略的是中间经历的定时任务他不执行的困惑:日志中写道:未找到gs_dump命令。这个问题,是怎么解决的呢?首先怀疑是环境变量的问题,于是在crontab中加环境变量,在crontab中加source命令,shell脚本的路径又改为绝对路径,gs_dump命令的路径也改为绝对路径等,尝试了不下10来中方法,然而还是没能搞定。后来我歪打歪撞意识到gs_dump是omm用户的命令,我用root用户尝试执行该命令,报的也是找不到命令,那么定时执行时,是不是需要切换下用户呢?于是在shell脚本中增加了su-omm的命令。“Bang~~!”大功告成!
  • [问题求助] openGauss支持哪些编程语言的数据库驱动?
    openGauss支持哪些编程语言的数据库驱动?
  • [问题求助] openGauss为开发者提供了哪些辅助工具或插件?
    openGauss为开发者提供了哪些辅助工具或插件?
  • [问题求助] openGauss是否支持AI相关的数据库特性,如预测性分析或自优化?
    openGauss是否支持AI相关的数据库特性,如预测性分析或自优化?
  • [问题求助] openGauss支持哪些编程语言的数据库驱动?
    openGauss支持哪些编程语言的数据库驱动?
  • [问题求助] openGauss与PostgreSQL的SQL兼容性如何?
    openGauss与PostgreSQL的SQL兼容性如何?
  • [问题求助] openGauss如何支持数据加密,是否包含对称加密算法如AES?
    openGauss如何支持数据加密,是否包含对称加密算法如AES?
  • [问题求助] openGauss在处理高并发场景时,采用了哪些优化策略?
    openGauss在处理高并发场景时,采用了哪些优化策略?
  • [问题求助] openGauss如何实现高可用性和容灾?
    openGauss如何实现高可用性和容灾?
总条数:186 到第
上滑加载中