• [问题求助] 使用MyBatis操作GaussDB,使用的dbdriver & 操作方法,都跟pgsql完全一样吗?
    使用MyBatis操作GaussDB,使用的dbdriver & 操作方法,都跟pgsql完全一样吗?语法上有没有啥不同点?
  • [问题求助] GaussDB做成分布式,比起单机模式,优缺点分别是什么?
    GaussDB做成分布式,比起单机模式,优缺点分别是什么?还是说分布式比起单机模式,只有优点没有缺点?
  • [问题求助] 在mybatis中使用begin...end结构去批量更新或者批量插入时,sql没问题,拿出来能在gauss中执行,但是在Java层会报错RROR: there is no parameter $1
    在mybatis中使用begin...end结构去批量更新或者批量插入时,sql没问题,拿出来能在gauss中执行,但是在Java层会报错,在查看sql,download_count 入参是Integer类型的传入的值为0PL/pgSQL function inline_code_block line 2 at SQL statement ; bad SQL grammar []; nested exception is com.huawei.gauss200.jdbc.util.PSQLException: [127.0.0.1:62289/127.0.0.1:25108] ERROR: there is no parameter $1   在位置:referenced column: download_count PL/pgSQL function inline_code_block line 2 at SQL statement
  • [运维管理] openEuler系统通过shell脚本安装opengauss 5.0.0企业版
    上次提到的开机自启动的配置,获得了LD的称赞,然而LD的要求,都是“既得陇复望蜀”的,他又期望我们能实现opengauss安装的“自动化”,于是尝试了下用shell脚本部署,附件中的脚本实测有效,openEuler 20.03 LTS通过shell脚本建议操作部署opengauss 5.0.0企业版成功。说明:除了安装opengauss的shell脚本外,还需要准备两个配置文件,一个是opengauss集群的配置文件:cluster_config.xml;另外一个是openeuler的repo文件,yum源需要用到。这两个并非安装脚本内容,因此不多做介绍。安装过程和手工安装基本类似,因此下面简单描述下脚本执行的过程,供参考和指正!1. 执行前首先创建好安装包存放的路径,下载好安装包,并且把安装的shell脚本,以及cluster_config文件,以及openeuler的repo文件,都copy到系统中的某个文件夹下,如:/opt/software/opengaussshellinstall。当然也可以通过wget下载安装包,朋友们感兴趣可以自己调整脚本。其中的...zhaofeng.tar文件为安装成功后需要restore的备份数据。2. 注意安装脚本copy后可能会没有执行权限,需要执行chmod +x shelltest.sh(脚本文件名),修改权限。3. 脚本通过变量读取安装包所在的位置,因此执行命令时需要附上安装包所在的路径:./bin/shelltest.sh /opt/software/opengaussshellinstall4. 脚本大致分为下面几部分:4.1 检查并修改python版本;4.2 安装三方依赖件expect, libaio等,包括脚本中用到的tar以及net-tools;4.3 修改performance.conf文件(本步可选);4.4 修改profile文件,增加opengauss相关的环境变量;4.5 创建opengauss安装路径,copy安装包,cluster配置文件等到opengauss安装路径,默认为/opt/software/opengauss,可根据需要修改脚本,也可以做成变量,感兴趣可以自行调整;4.6 修改cluster文件,替换本机ip地址及hostname,替换app, log等路径;4.7 解压安装包;4.8 preinstall4.9 install4.10 修改postgresql.conf和pg_hba.conf文件,使数据库可以被远程连接;4.11 创建数据库,创建用户,restore之前备份的数据。4.12 重启数据库。如此则整个过程完成。
  • [用户实践] GaussDB云数据库极简版安装与使用-新手指南
    一、前言作为一款领先的企业级数据库管理系统,GaussDB 提供了强大的性能、高度可靠性和丰富的功能,是企业构建可靠、高性能的数据库解决方案的理想选择。本文主要针对高校和个人测试环境,介绍极简版安装和使用过程,更加适合高校学生或者个人功能测试的场景,该软件包中并不包含OM工具,采用脚本可以实现一键式安装部署。二、openGauss极简版单节点安装1.环境准备操作系统:CentOS 7.6或openEuler 20.03LTS关闭操作系统防火墙//显示防火墙状态,active (running)为未关闭,inactive (dead)为已关闭 systemctl status firewalld //关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service2.获取安装包登录openGauss开源社区,选择对应平台的最新安装包下载。对于个人开发者或非企业级环境,下载极简安装包(不安装OM等组件)即可。3.检查安装包解压安装包,检查安装目录及文件是否齐全。在安装包所在目录执行以下命令:tar -jxf openGauss-x.x.x-openEuler-64bit.tar.bz2 ls -lb执行ls命令,显示类似如下信息:total 90296 drwx------ 3 root root 4096 Mar 31 21:18 bin drwx------ 3 root root 4096 Mar 31 21:18 etc drwx------ 3 root root 4096 Mar 31 21:18 include drwx------ 4 root root 4096 Mar 31 21:18 jre drwx------ 5 root root 4096 Mar 31 21:18 lib -rw------- 1 root root 92427499 Apr 1 09:43 openGauss-x.x.x-openEuler-64bit.tar.bz2 drwx------ 5 root root 4096 Mar 31 21:18 share drwx------ 2 root root 4096 Mar 31 21:18 simpleInstall -rw------- 1 root root 32 Mar 31 21:18 version.cfg4.单节点安装(1)创建普通用户omm,切换到此用户下,解压openGauss压缩包到安装目录。tar -jxf openGauss-x.x.x-openEuler-64bit.tar.bz2 -C /opt/software/openGauss(2)假定解压包的路径为/opt/software/openGauss,进入解压后目录下的simpleInstall。cd /opt/software/openGauss/simpleInstall(3)执行install.sh脚本安装openGauss。sh install.sh -w xxxx-w:初始化数据库密码(gs_initdb指定),安全需要必须设置。-p:指定的openGauss端口号,如不指定,默认为5432。-h|—help:打印使用说明。5.安装后检查(1)ps检查$ ps ux | grep gaussdb执行ps命令,显示类似如下信息:omm 2358 9.3 21.8 5767796 758068 ? Ssl 23:09 0:23 /opt/openGauss/bin/gaussdb -D /opt/openGauss/data/single_node omm 2704 0.0 0.0 6352 2188 pts/0 S+ 23:13 0:00 grep --color=auto gaussdb(2)gs_ctl检查$ gs_ctl query -D $GAUSSHOME/data/master -M primary $ gs_ctl query -D $GAUSSHOME/data/master -M standby执行gs_ctl命令,显示类似如下信息:gs_ctl query ,datadir is /opt/software/openGauss/data/single_node HA state: local_role : Normal static_connections : 0 db_state : Normal detail_information : Normal Senders info: No information Receiver info: No information三、openGauss数据库基本操作1.切换用户ommsu - omm2.重新启动数据库gs_ctl stop -D /opt/software/openGauss/data/single_node gs_ctl start -D /opt/software/openGauss/data/single_node3.列出所有可用的数据库gsql -d postgres -p 5432 -l4.登录默认数据库gsql -d postgres5.切换用户\c – username6.创建数据库create database 数据库名 owner 用户名; create database jack_test owner jack;7.给用户授权对某数据库的所有权限grant all privileges on database jack_test to jack;8.为用户追加有创建角色的CREATEROLE权限alter user jack createrole;9.将sysadmin权限授权给用户grant all privileges to jack;四、用 JetBrains DataGrip 连接 GaussDB1.前置操作(1)修改数据库的pg_hba.conf文件,将以下内容添加进pg_hba.conf文件host all all 0.0.0.0/0 sha256​ 并且修改pg_hba.conf文件中的数据库监听地址listen_addresseslisten_addresses = '*'(2)切换至omm用户环境,使用gs_ctl将策略生效。su - omm gs_ctl reload -D /gaussdb/data/db1/2.在DataGrip里添加驱动GaussDB 没有在datagrip 自带的数据源中,所以我们想要使用datagrip连接,先得在datagrip中配置gaussdb的驱动:如图添加驱动文件,更改class和name,点击ok。在此附上驱动链接:链接:百度网盘 请输入提取码 提取码:yjhm3.连接数据库在datasource中找到添加的Gauss并点击添加输入数据库用户的用户名和密码,然后填入URL,其中URL格式为:jdbc:postgresql://[host]:[port]/[database],host为虚拟机中使用NAT连接的网卡的ip地址,端口即gauss数据库运行的端口,database即数据名。还要注意登录的用户不能为数据库的初始用户,因为数据库自身设计不允许。 然后连接成功即可使用。五、小结GaussDB 作为一款领先的企业级数据库解决方案,不仅具备强大的性能和可靠性,还提供丰富的功能和灵活的部署选项,能够满足各种复杂业务场景的需求。在 openGauss 2.0.0 版本中(2021.03.31发布)新增了极简版的软件包,本文简单介绍了相关安装配置操作,极简版安装的使用主体主要针对高校和个人测试环境,相对企业安装流程更简单快捷,更加适合高校学生或者个人功能测试的场景,欢迎进行交流学习。
  • [GaussTech] 【GaussTech技术专栏】关于分布式数据库技术的演进和发展方向
    [toc]一、分布式数据库的演进 1.初始阶段:早期分布式数据库主要基于共磁盘架构,通过多个节点共享存储资源来提高数据处理能力。然而,这种架构存在单点故障和扩展性问题。 2.中间阶段:随着网络和存储技术的发展,分布式数据库逐渐转向无共享架构,每个节点都拥有独立的存储和计算能力。这种架构提高了系统的可扩展性和可靠性。 3.现阶段:当前,分布式数据库正朝着新一代分布式数据库(NDB)的方向发展,它们不仅具备无共享架构的优点,还通过引入分布式事务、分布式SQL查询等特性,进一步提高了系统的性能和易用性。二、分布式数据库的发展方向 1.智能化:未来分布式数据库将更加注重智能化,通过引入机器学习、大数据分析等技术,实现数据库的自适应调优、故障预测和自动修复等功能。 2.云端化:云计算为分布式数据库提供了强大的计算资源和弹性扩展能力,未来分布式数据库将更多地部署在云端,为用户提供按需付费、弹性扩展的服务 一体化:随着大数据、物联网等技术的普3.及,分布式数据库将与其他技术更紧密地结合,形成一体化解决方案,以满足各种复杂场景的需求。 4.安全性:在数据安全日益受到重视的背景下,未来分布式数据库将加强安全性能,提供数据加密、访问控制、审计日志等功能保障用户数据的安全性和隐私性。
  • [GaussTech] 【GaussTech技术专栏】分布式数据库演进方向研究
    前言在探讨哪种分布式数据库架构会得到更多企业的青睐之前,我们首先需要理解分布式数据库技术的演进背景和当前的发展方向。分布式数据库技术的发展受到了多种因素的影响,包括数据量的激增、数据处理的复杂性提高、云计算的普及、以及对数据安全性和灵活性需求的增加。传统的集中式数据库在处理大规模、高并发和分布式场景下遇到了瓶颈,而分布式数据库通过将数据分散存储在多个节点上,能够提供更高的性能、更好的扩展性和更强的容错能力。分布式数据库技术的发展方向分布式事务处理:保证在分布式环境中事务的原子性、一致性、隔离性和持久性。数据分片和分布式查询优化:通过数据分片实现数据在多个节点上的均匀分布,提高查询效率和数据并行处理能力。弹性伸缩和自动化管理:支持根据负载动态调整资源,提高系统的弹性和自动化运维能力。多模型数据支持:支持关系型、文档型、图形型等多种数据模型,以满足不同的业务需求。安全性和合规性:确保数据安全和符合各种数据保护法规。云原生数据库:与云环境深度融合,提供即取即用的服务,简化部署和运维。演进方向预测结合上述技术和市场趋势,我们可以预测以下几种架构可能会得到更多企业的青睐:云原生分布式数据库:随着云服务的普及,云原生分布式数据库因其易于部署、管理和扩展的特性,能够快速适应企业的需求变化,同时降低成本和提高效率。具有高度自动化和智能化的数据库:企业越来越倾向于使用能够自动调整资源、优化查询和提供智能分析功能的数据库,以减少运维负担和提高系统性能。多模型分布式数据库:能够支持多种数据模型的分布式数据库可以更好地满足企业多样化的数据处理需求,特别是对于需要处理非结构化数据的场景。高度安全的数据库:随着数据安全问题的日益突出,具有强加密、访问控制和审计功能的数据库将更受欢迎,特别是在金融、政府和关键基础设施行业。具有数据分片和分布式查询优化能力的数据库:在大数据时代,能够有效处理海量数据和提供高速查询能力的分布式数据库将继续受到重视。在未来,分布式数据库的架构将更加多样化,以适应不同企业的特定需求,并且很可能结合上这两年较热门的AI技术,加上各种分布式处理,让数据库性能和稳定性更上一层楼。
  • [GaussTech] GaussTech技术专栏—要判断哪种GaussDB的架构会得到更多企业的青睐,我们需要综合考虑多个因素,包括业务需求、数据类型、可扩展性、数据集成以及安全稳定性等
    GaussDB作为华为推出的分布式数据库系统,其架构设计和特性使得它能够在多种应用场景下提供高效、可靠的数据存储和处理服务。要判断哪种GaussDB的架构会得到更多企业的青睐,我们需要综合考虑多个因素,包括业务需求、数据类型、可扩展性、数据集成以及安全稳定性等。首先,GaussDB的分布式集群架构通过将多个节点组成一个分布式数据库集群,实现了数据的分布式存储和分布式处理。这种架构对于需要处理海量数据和高并发请求的企业来说,具有显著的优势。它能够大大提高数据存储和处理的能力,满足企业不断增长的业务需求。其次,GaussDB提供了SQL和NoSQL混合引擎,支持关系型和非关系型数据模型,具备高效灵活的数据管理能力。这种混合引擎架构能够满足企业对于不同类型数据的存储和处理需求,提供灵活、可靠的数据管理平台。另外,GaussDB的分层解耦、可插拔架构使得它能够同时支持OLTP(在线事务处理)和OLAP(在线分析处理)业务场景。这种架构的灵活性使得企业可以根据自身业务需求选择适合的部署方案,无论是面向事务处理还是面向数据分析,都能得到良好的性能支持。此外,GaussDB还具备开放生态、灵活管理、企业级服务和安全稳定等优势。它支持线下主备开源版本和线上托管型主备实例和分布式实例,不锁定用户,提供丰富的企业级特性,支持高可用和统一监控平台,集成云上多种安全特性,软硬件完全支持可信。然而,每个企业的具体需求和场景都是独特的,因此在选择GaussDB的架构时,企业应该根据自身情况进行综合评估,选择最适合自己的架构方案。同时,随着技术的不断发展和市场的变化,GaussDB的架构也可能会有新的发展和优化,企业需要持续关注并灵活调整自己的选择。综上所述,GaussDB的多种架构优势以及针对特定领域的优化和生态支持,将使得它在未来得到更多企业的青睐。然而,每个企业的情况和需求都是独特的,因此在选择数据库时,企业还需要根据自身情况进行综合评估,选择最适合自己的解决方案。除了上述提到的优势,GaussDB的未来发展还将受到以下几个方面的推动,从而得到更多企业的青睐:1.金融行业的应用:GaussDB针对金融行业的高可用性和强一致性需求,提供了专门的优化方案。通过强同步复制技术,确保数据在各个节点间的一致性,同时结合多副本和故障自动切换机制,实现业务的高可用性和灾备恢复能力。这种针对金融行业的特性化设计,将使得GaussDB在银行等金融机构中受到青睐。2.云原生环境的适配:随着云原生技术的普及,越来越多的企业开始将应用部署在云上。GaussDB作为一款云原生数据库,能够很好地适应云环境的弹性伸缩、快速部署和自动化管理需求。通过与云服务的深度集成,GaussDB可以实现自动备份、自动扩容、故障自动恢复等功能,极大地简化了数据库的运维工作,降低了企业的IT成本。3.数据安全和隐私保护:在当前数据泄露和隐私侵犯事件频发的背景下,数据安全和隐私保护成为了企业选择数据库时的重要考量因素。GaussDB在数据安全方面进行了多项创新,包括数据加密、访问控制、审计追踪等,确保数据在存储、传输和处理过程中的安全性。同时,GaussDB还提供了数据脱敏、匿名化等隐私保护技术,帮助企业在满足合规要求的同时,保护用户数据的隐私。4.生态支持与合作伙伴:GaussDB作为华为推出的数据库产品,得到了华为强大的生态支持和合作伙伴网络的支持。这意味着,选择GaussDB的企业可以享受到丰富的技术资源、专业的技术支持和广泛的行业合作机会。同时,华为还在不断推动GaussDB与更多行业应用的集成,为企业提供更加全面、高效的数据解决方案。5.持续技术创新与演进:作为一款技术领先的数据库产品,GaussDB不断进行技术创新和迭代。随着新技术的不断涌现和市场需求的变化,GaussDB将不断优化其架构和功能,提升性能、可靠性和易用性。这将使得GaussDB能够更好地满足企业的业务需求,保持其在市场上的竞争力。6.跨行业应用拓展:目前,GaussDB已经在金融、电信、政府等行业得到了广泛应用。随着数字化转型的深入推进,越来越多的行业将开始关注和使用分布式数据库技术。GaussDB凭借其卓越的性能和丰富的功能,有望在未来拓展到更多行业,满足不同行业的特定需求。7.全球化布局与合作伙伴网络:华为作为全球知名的科技企业,已经在全球范围内建立了广泛的合作伙伴网络。GaussDB作为华为的重要产品之一,也将受益于这一全球化布局。通过与全球合作伙伴的紧密合作,GaussDB将进一步扩大其在全球市场的影响力,为更多国家和地区的企业提供优质服务。8.智能化与自动化管理:随着人工智能和机器学习技术的发展,数据库系统的智能化和自动化管理成为了新的趋势。GaussDB将积极引入这些先进技术,实现更加智能的故障预测、性能优化和自动化运维。这将大大降低企业的IT成本,提高数据库系统的稳定性和可靠性。9.绿色可持续发展:在当前全球关注环境保护和可持续发展的背景下,GaussDB也将注重绿色和可持续发展。通过优化资源利用、降低能耗和减少碳排放等方式,GaussDB将努力实现绿色化运行,为企业的可持续发展做出贡献。综上所述,GaussDB凭借其技术创新、跨行业应用拓展、全球化布局、智能化管理以及绿色可持续发展等方面的优势,将在未来得到更多企业的青睐。随着市场的不断变化和技术的不断进步,GaussDB将继续保持其领先地位,为企业提供更加高效、可靠和可持续的数据存储和处理服务。
  • [GaussTech] GaussTech技术专栏—分布式数据库技术未来的发展方向是多元化的
    分布式数据库技术未来的发展方向是多元化的,主要涵盖以下几个方面:扩展性与自动化管理:分布式数据库系统将进一步提升其水平扩展性,这意味着系统可以根据需求动态地增加或减少节点,从而适应不断增长的数据量和访问负载。同时,自动化管理和调优将变得更加重要,包括自动数据分片、数据迁移、负载均衡和故障恢复等功能,这将大大降低管理成本并提高系统稳定性。一致性与可用性的权衡:在保证数据一致性的前提下,分布式数据库系统将致力于提高系统的可用性和性能。一些分布式数据库系统可能会采用较为宽松的一致性模型,如BASE(基本可用、软状态和最终一致性)模型,以在一致性和可用性之间找到更好的平衡点。多模型支持与多租户隔离:随着应用场景的多样化,分布式数据库系统需要支持不同的数据模型,如关系型、文档型、键值型和图形型等。同时,为了满足不同租户的需求并确保数据的安全性,多租户隔离也将成为分布式数据库技术的重要发展方向。与云环境的深度融合:随着云计算的普及,分布式数据库将更多地与云环境进行融合。这种融合不仅可以解决私有部署灵活度低、成本过高的问题,还可以利用公有云资源实现低成本的容灾和算力扩展。此外,多云支持也将成为分布式数据库的一个重要特性,它具备快速部署、快速销毁、前期投入低等特点。高可用能力的提升:分布式数据库将采取更好的方案来提升其高可用能力,包括容灾能力建设和可靠性建设。这将有助于确保在故障发生时,系统能够迅速恢复并继续提供服务,从而实现7×24小时的服务不中断和数据零丢失。智能化与AI集成:随着人工智能技术的快速发展,分布式数据库技术有望与AI技术进一步融合。这种集成将使数据库系统能够自动学习并优化查询性能,预测未来的数据需求,甚至主动进行故障预测和修复。AI的引入将大大提高分布式数据库的智能化水平,使其能够更高效地处理和分析海量数据。安全与隐私保护:随着数据泄露和隐私侵犯事件的频发,数据安全和隐私保护成为了分布式数据库技术发展的重要方向。未来的分布式数据库系统将更加注重数据加密、访问控制、审计追踪等方面的安全设计,以确保数据的安全性和隐私性。实时处理与分析:随着物联网、边缘计算等技术的普及,实时数据处理和分析成为了重要的需求。分布式数据库需要支持实时数据的快速采集、存储和分析,以满足对实时性要求较高的应用场景,如金融交易、物流追踪等。跨平台与标准化:随着技术的不断发展和市场的不断变化,分布式数据库系统需要更好地支持跨平台部署和标准化操作。这将有助于降低系统的迁移成本,提高系统的互操作性和可维护性。绿色与可持续发展:在追求性能和可用性的同时,分布式数据库技术也需要关注绿色和可持续发展。通过优化资源利用、降低能耗和减少碳排放等方式,实现数据库系统的绿色化运行,为环境保护和可持续发展做出贡献。总之,分布式数据库技术的发展将继续向着智能化、安全、实时、跨平台和绿色等方向前进。随着技术的不断进步和应用场景的不断拓展,可以期待分布式数据库在未来将发挥更大的作用,为各行各业提供更加高效、安全、可靠的数据存储和处理服务。
  • [GaussTech] 【参与有奖】分布式数据库技术的演进和发展方向
    这些年大家都在谈分布式数据库,各大企业也纷纷开始做数据库的分布式改造。那么,所谓的分布式数据库到底是什么?采用什么架构?优势在哪?为什么越来越多企业选择它?分布式数据库技术会向什么方向发展?带着这些疑问,一探究竟吧!参与文末的话题互动,更有机会赢取精美奖品~分布式数据库的架构演进随着数据量的爆发增长,传统集中式数据库面临极大的挑战:性能瓶颈:数据规模爆发增长,传统集中式数据库难以维持数据量大时的性能,而分布式数据库的性能可以水平扩展;缺失混合负载能力:数据量爆发增长带来对数据分析(OLAP)需求的增长。企业需要使用两套系统分别支撑事务交易(OLTP)和数据分析(OLAP),不仅造成了大量的数据冗余,同时增加了系统的复杂度和运维难度。而分布式数据库的混合负载能力可大幅度提升分析的时效性,减少数据冗余,并大大提高灵活性;高昂成本:集中式数据库水平扩展难,可靠性需要付出高昂的成本。而分布式数据库的架构支持灵活扩展,实现高可用方案的成本较低。分布式数据库与单机数据库的不同在于其可以将核心功能扩展到多台节点,甚至多个地域,包括事务管理、数据存储和数据查询等。从实现方式上看,分布式数据库主要有3种不同的技术路线:1. 分布式中间件 + 单机数据库。这条路线本质上是分布式系统由两部分组成:a) 上层是分布式中间件:维护一套统一的分片规则,提供SQL 解析,请求转发和结果合并的能力。b) 底层单机数据库:开源MySQL或PG单机数据库,提供数据存储和执行能力。这种方式主要使用比较成熟的内核来解决扩展性的问题,所以生态友好、成本较低,也比较容易实现。不过,缺点也显而易见。比如功能降级、在全局事务能力和高可用等方面存在短板,需要有针对性增强,导致整个方案的复杂度高、机器冗余多。最重要的是,因为使用的是开源产品的内核,数据库会始终受制于开源代码修改、专利、发行方式等很多方面的风险,这种形式显然无法满足当前国内金融、政企客户的需求。2. 基于分布式存储的分布式数据库。这种形态基于分布式存储,再叠加数据库能力。大部分公有云数据库采用这条技术路线。华为云GaussDB(for MySQL)就是这种形态的典型代表。这条路线有限地解决了扩展性问题,数据一致性主要依赖分布式存储引擎。上层的计算节点无状态,共享存储提供跨节点读写。这种架构充分利用分布式存储提供的高级特性,更容易形成技术竞争力。但是这种架构的扩展性有限,尤其是写节点。另外,这种架构对底座(分布式存储)有比较重的依赖,线下实现的成本高。3. 原生分布式数据库。这种形态是基于分布式数据库理论实现的分布式数据库。这条路线是根据分布式一致性协议做底层设计。原生分布式数据库将分布式存储、事务和计算结合在一起,数据由系统自动打散并存储多个副本,通过一致性协议保证多个副本和事务的一致性。这种形态更容易在数据库本身所擅长的领域发挥优势,比如说性能、复杂SQL处理能力、企业级能力。集群的扩展和收缩对应用透明,按需扩展,支持大规模部署限制;数据一致性由事务层一致性协议保护,安全性更高;灵活部署,多活架构,对硬件的依赖低,可以通过普通服务器实现集群和高可用。因为金融政企客户在使用分布式技术之前,往往已经有分库分表、使用分布式中间件产品的经验,所以对原生分布式架构的认可度更高,学习成本也相对较低,因此,这种形态也是国内当前被采用较多的一种。华为云GaussDB分布式数据库就是这种形态的典型代表。GaussDB基于华为在数据库领域20多年的战略投入,已经在金融行业积累了非常丰富的实践经验,是企业数字化转型、核心数据上云、分布式改造的信赖之选。原生分布式数据库的挑战和关键技术原生分布式数据库基于分布式数据库理论,是一款对于用户应用透明的分布式数据库。不过,实现分布式关系数据库有几个关键挑战:第一,安全可信。分布式、云化环境的复杂性增加了安全风险,比如数据泄露和丢失的风险增加,身份认证和访问控制以及数据传输、存储安全的控制难度提升。第二,事务系统的正确性及性能。分布式数据库中经常有一次操作涉及多台数据库的场景,需要一种方案来维护整个数据库集群事务的ACID特性,避免出现部分成功部分失败等无法接受的情况。另外,在大并发场景下事务管理器容易成为性能的单点瓶颈,比如获取事务唯一标识、全局快照、频繁交互导致大量的网络通信和锁等待等。第三,分布式查询能力。在分布式系统中,需要在最短时间内获取准确的查询结果,提升查询性能。第四,高可用能力。分布式数据库需要确保异常场景下(如:节点硬件故障或者Bug宕机等)数据库系统的连续可用。分布式数据库的挑战和关键技术GaussDB分布式数据库研发了一系列高性能、高可用、安全特性迎接上述四大挑战,下面挑选几个有代表性的特性加以说明。全密态传统的加密方式在服务端加密,密钥管理员是可以获取的。而全密态数据库的密钥掌握在用户自己手上,数据库管理员无法获取,加解密过程仅在客户侧完成,数据在存储、传输、查询整个生命周期过程中均以密文形态存在,避免管理员恶意获取密钥解密数据。全密态数据库分布式事务GTM-Lite如下图所示,GaussDB没有采用传统的事务列表的管理方式,而是提供了一个CSN(提交系列号),通过对比CSN的大小来实现事务可见性判断。GTM-Lite技术示意当事务开始时,根据事务隔离级别的不同,从GTM-Lite获取一个CSN值,作为这个事务的查询快照点(如果是可重复读,只需要在事务开始时获取一次CSN值,如果是读已提交,每次SELECT时都需要重新取一次CSN值)。当事务提交时,向GTM-Lite申请一个新的CSN值,作为这个事务提交CSN值,并记录到事务提交记录中。GTM-Lite技术通过CSN提交序列号进行可见性判断,无需耗费大量计算资源来遍历列表;无锁化原子操作提供CSN序列号,无需锁等待;节点间事务交互仅需要一个CSN,网络开销跟事务规模无关。在保证事务全局强一致的同时,提供高性能的事务处理能力,避免了单GTM的性能瓶颈。分布式查询优化1. 分布式执行GaussDB是如何处理分布式数据库集群中的业务应用SQL的呢?1)业务应用的SQL会下发给CN节点;2)CN利用数据库的优化器生成分布式的执行计划,每个DN会按照执行计划的要求处理数据;3)数据基于一致性Hash算法分布在每个DN,因此DN在处理数据的过程中,可能需要从其他DN获取数据,GaussDB提供三种stream流(广播流broadcast、聚合流gather和重分布流redistribute)实现数据在DN间的流动;4)DN将结果集返回给CN进行汇总;5)CN将汇总的结果返回给业务应用。分布式查询示意让我们展开看一下节点间的数据交换。比如某条SQL的执行逻辑如下图所示:SQL执行逻辑以两个DN为例, 在执行过程中,DN会按照redistribute键将数据发送到对应的节点。Redistribute算子接收到C/D两表join的数据之后,根据重分布键计算将数据发给DN1还是DN2,Redistribute Collector收集到重分布之后的数据之后发给上层的Join算子再做Join计算。CN、DN间的数据流动另外,GaussDB的优化器会根据统计信息选取针对当前SQL性能最优的Stream流算子完成CN、DN间的数据流动。2. 全并行架构GaussDB采用全并行架构,从MPP节点并行、SMP线程并行、到SIMD指令并行,到LLVM CodeGen技术,全面挖掘系统计算资源的潜力,提升查询性能。高可用1. GaussDB重做日志重做日志在如下场景可以发挥作用,提升系统的可用性1)当数据库发生故障,如宕机,可以通过重做日志文件恢复数据。2)HA架构下,主备通过重做日志文件进行数据同步。3)备份恢复时,通过归档重做日志文件实现PITR。GaussDB使用WAL (Write Ahead Log) 机制实现重做日志,在提升可用性的同时兼顾性能,即在数据修改时遵循 no-force-at-commit 策略,在提交时并不强制写。为了保证数据在数据库发生故障时可以恢复,通过Redo 机制,用连续的、顺序的日志条目的写出将随机的、分散的数据块的写出推延,这个推延使得数据的写出可以获得批量效应的性能提升。2. 分布式部署GaussDB支持多种高可用部署形态,保证系统的稳定性和可靠性。下面我们看两个典型案例。1)两地三中心。同城有两个双活数据中心,两个数据中心同时承载业务,异地一个容灾数据中心;同城可实现节点级、AZ级、数据中心级等故障高可用,同时提供跨城的异地容灾能力。GaussDB两地三中心高可用部署2)同城3AZ高可用+异地容灾。同城采用逻辑3AZ、3副本部署,异地采用单AZ、3副本部署,提供了同城抵御节点级故障和AZ级故障的能力,跨城的Region级容灾的能力。GaussDB同城3AZ高可用+异地容灾分布式数据库技术的发展方向基于新需求、新场景、以及全池化架构、新网络和大模型等新技术的出现,我们认为分布式数据库技术主要向以下六个方向发展。分布式数据库技术的发展方向高可用能力的持续提升高可用是目前大多数金融政企客户首要关注的问题,特别是对于多地、多中心容灾有要求的客户。针对这样的客户,华为云GaussDB已经提供了多种解决方案,如支持同城双活、异地容灾、两地三中心的解决方案,支持同城双活强同步的解决方案,支持异步数据复制、多地多活的高可用解决方案。面向未来,分布式数据库将具备真正全球部署能力的多活架构。软硬件深度协同硬件和软件两者之间相辅相成,互相促进。利用新型硬件(GPU、FPGA、高速网络)和华为在芯片、服务器、存储、网络、操作系统、数据库的全栈软硬件能力,提升性能和高可用能力。首先,数据库的持久化逻辑,深度整合到了计算与存储分离的技术底座中,分布式数据库可以获得在容量、弹性、扩展性方面的巨大提升,同时能提供给客户一致的体验。其次,从计算节点卸载下推到存储中,特别是对一些复杂的查询处理,同时叠加并行处理能力,使得这些计算逻辑能充分利用下面整个存储池的能力,同时最关键的是能做到对业务透明。最后,就是高性能。高性能的实现除了I/O聚合之外,单条交易的本质就是网络的时延和处理的时延。所以,网络对于分布式数据库的时延(性能)影响是巨大的。总而言之,软硬协同带给我们的不仅仅是性能扩展方面的优势,更是可以通过软硬协同打造真正企业级的可靠性。企业级混合负载 (HTAP)近年来企业级混合负载(HTAP)的兴起,旨在打破事务处理(TP)和分析(AP)之间的壁垒。分布式数据库都应具备混合负载能力,即在支持高并发、事务性请求的同时,对分析型的复杂查询提供了良好的支持,从而大幅度降低成本,同时提高企业决策的效率。HTAP架构的核心技术:第一,透明路由。通过自动选择行存引擎、列存引擎以及行列组合,提供查询的准确性和实时性,增加客户的易用性,提升HTAP产品的商用价值。第二,性能提升。TP要求的是低时延、高吞吐,而AP要求的是复杂查询的能力。常规执行优化技术包括并行执行、编译执行、向量化执行等,在这些技术的基础上进一步加速复杂查询,支撑企业级混合负载。第三,数据新鲜度。保证数据高新鲜度、高性能,保证HTAP架构能够具备更多应对用户的能力。第四,资源隔离。用户对TP性能要求比较高,在引入实时AP的同时,不能影响TP的能力和性能,需要在资源隔离、数据新鲜度以及性能的提升方面做好权衡。云原生多主单一架构其实并不能解决今天行业碰到的所有问题,但云原生多主架构可以帮助解决两类问题:第一个,是高可用的问题,希望能基于多主架构,解决切换时业务中断的问题。第二个,是扩展性的问题,基于多主架构,融合软硬协同的进展,真正能在计算节点以下,持续提升产品的性能和弹性。数据安全可信当今世界,每个国家、组织和个人都在关注安全、合规和隐私的问题,几年前数据无保护随意获取并使用的便利不再,这也促进了技术的进步和落地。未来,全行业都会面临越来越严格的对于可信安全方面的要求。全密态是华为云数据库为了提升隐私保护能力研制的一项关键技术,全密态支持数据在整个计算过程中同样是以密文形式存在,实现了让整个敏感数据在全生命周期当中都得到保护。因此,无论数据处于何种状态,攻击者都无法获取到有效信息,从而保障了企业数据全生命周期的隐私安全。AI-Native机器学习已被广泛用于优化数据管理问题,如数据清理、数据分析、查询重写、数据库诊断等。然而,传统的机器学习算法无法解决泛化和推理问题。幸运的是,大模型(LLM)可以帮助解决这些限制,为智能化数据管理提供了很好的机会。借助AI/LLM,未来分布式数据库将朝着全流程、全链路、高效易用的智能化数据库的方向发展,在数据库咨询、开发、运维等关键阶段,构建相应的自动化能力:第一,咨询阶段,提供专家式辅助,制定精细化方案。HLD助手,结合专家经验,自动生成数据库HLD;DB知识库,通过积累运维工单、答疑、文档手册等,形成数据库行业知识库;问答助手,通过提供ChatBot,实现交互式运维。第二,开发阶段,提供开发辅助,提升SQL开发效率。通过构建NL2SQL转换能力,让自然语言转换为SQL语句;同时,增强的SQL转换能力提升异构数据库间的SQL语句转换自动化率。第三,运维阶段,实现预测性维护,提升系统可靠性。智能巡检,可以构筑Schema/SQL、中间件/告警等全链路可观测可跟踪能力;智能故障处理,通过全链路感知编排,提供精准分析,快速定位故障并给出建议;SQL质量提升能力,可以快速找出问题SQL,诊断根因,提供全局分析。综上,分布式数据库性能卓越,凭借高可用、高可扩展性、高性价比等优势,已经被对数据库要求最严苛的金融行业所认可,并逐渐被应用在更广阔的领域。不过,从总体发展状态来看,目前还处于早期,但发展方向明朗,上升空间很大。参与有奖GaussTech技术专栏第一期话题讨论:对于分布式数据库的未来发展,你怎么看?1.你认为分布式是数据库未来的发展趋势吗?2.哪种架构会得到更多企业的青睐?3.分布式数据库技术又会向什么方向发展?点击链接,即可参与“GaussTech技术专栏第一期”话题讨论,就有机会获得HUAWEI mini蓝牙音箱 _绮境森林、《华为数据之道》书籍、新贵族系列中性笔、平装套芯笔记本、GaussDB字母笔、炫彩马卡龙指甲刀等好礼,快来参与吧!
  • [最新活动] 【获奖名单已公示,见评论区】# GaussTech技术专栏第一期,参与话题讨论,赢好礼!
    欢迎来到华为云GaussTech的世界!GaussTech技术专栏是华为云GaussDB技术的集装箱,汇聚GaussDB数据库最前沿、最热门技术干货,包括技术文章、视频、直播等形式,为开发者们提供经验交流的生态圈。在这里,不管你是技术大佬,还是可爱萌新,只要踊跃互动,发表你的观点,就有机会赢礼品!快来参与吧!活动时间:3月26日~4月12日活动内容:第一期:基于《分布式数据库技术的演进和发展方向》技术文章,探讨:你认为分布式是数据库未来的发展趋势吗?哪种架构会得到更多企业的青睐?分布式数据库技术又会向什么方向发展?参与方式:方式一:在本帖下方互动评论回帖;方式二:带话题“GaussTech技术专栏”自发帖。参与流程具体操作如下:第①步:注册华为云账号 + 实名认证,点击这里。已注册并实名可跳过。第②步:设置论坛昵称,即华为云社区昵称,点我设置。已设置可跳过。第③步:开动你的小脑筋,如果是在本帖下方互动评论,请挥舞键盘吧!如果是带话题自发帖,请点我直接论坛发帖。自发帖请务必在发布文章标题前缀带上【GaussTech技术专栏】即默认参与,发帖分类选择【GaussTech】,标签要用【云数据库GaussDB】。评奖方式:1)在本帖下方互动回帖,高质量评论数量最多的前3名2)在“GaussTech技术专栏“分类里面自发帖,评论数量最多的前3名获奖名次奖品数量第一名HUAWEI mini蓝牙音箱 _绮境森林/《华为数据之道》书籍2第二名新贵族系列中性笔/平装套芯笔记本2第三名GaussDB字母笔/炫彩马卡龙指甲刀2活动规则:1. 回帖/发帖内容需要围绕本期技术文章话题,灌水、与技术无关凑数等相关的回复不计入评论数量。2. 由华为云专家评审团根据本帖/带话题自发帖下方的互动评论数量、质量等综合评选。奖品发放规则:奖项公示:4月12日左右获奖信息收集:4月15~19日奖品发放:4月25日~30日,顺丰包邮PS:如有需要,可以添加小助手微信18209232786,可以进行咨询哦!(避免错过活动公告和获奖公告等重要通知)特别说明:活动期间,作者如果有用脚本刷阅读量、注册僵尸号刷赞等严重违反社区规范的行为,直接取消所有获奖资格。礼包类礼品均为实物礼品。如某项奖品库存不足,运营同学将根据实际库存更换为同等价值的其他奖品,或者通知部分同学延期发货。获奖者不同意此规则视为放弃奖品。如您不认同以上规则,请谨慎参与本次活动,活动最终解释权归华为云数据库所有。
  • [运维管理] 手动挡变自动挡---OpenEuler配置OpenGauss开机自启动
    小项目部署服务器所在的地方,偶尔会有电路检修导致的断点,因此需要关机。当然也会碰到异常断点等导致系统重启的场景。系统重启后总是要手动去执行OpenGauss的服务,殊为不便,一直想着能在系统开机的时候,也同时启动opengauss的服务。奈何自己没有在openEuler系统配置自启动任务的经验,所以一直拖着,直到看到“霸王龙的日常”公众号的文章,和我诉求严丝合缝的匹配,于是照本宣科,依样画葫芦,唯一的差别是我的opengauss版本是5.0.0 LTS。下面是配置过程的记录,以备后查,也供朋友们参考。首先中的首先,感谢霸王龙的日常的分享,原文链接在此: 1. 在系统服务目录中创建服务脚本文件,系统服务目录的路径为:/etc/systemd/system/,命令为:vi /usr/lib/systemd/system/opengauss.service。   文件内容如下图所示,其中用户,用户组以及OpenGauss的安装路径要根据实际值修改,图中是我做实验的用户信息及相关路径,附件中是实验机器添加的服务脚本文件,配置时需参考cluster_config文件,注意不要配置错了:2. 重新加载systemd以识别新增加的服务:   systemctl daemon-reload3. 启用服务:  systemctl enable opengauss.service4. 启动服务以在启动时运行:  systemctl start opengauss.service5. 查看服务状态:  systemctl status opengauss.service6. 重启系统:reboot7. 重启后检查状态:实践证明:重启系统后OpenGauss自动启动起来了,开机自启动功能已配置好了。
  • [技术解读] OpenGauss执行计划代价估算
     OpenGauss支持通过代价估算进行执行计划的调优,代价分为IO 代价和CPU代价,这两个代价都和处理的元组数量正相关;IO代价SeqScan:IO代价为:表数据页总数x seq_page_cost(或者default_ seq_page_cost)IndexScan:IO代价为P* random_page_cost(default_ random_page_cost);其中P是满足数据的页数量,常常通过R(表元组总数x选择率)估算,其中选择率=满足约束的记录数/总记录数,选择率可以通过前面提到的统计信息完成估算CPU代价元组处理代价:将一条磁盘数据转换为元组形式的代价;通过cpu_tuple_cost和cpu_index_tuple_cost表示对普通数据和索引数据的代价数据操作代价:对元组进行投影,或者根据约束表达式判断元组是否满足条件的代价;通过cpu_operator_cost表征。
  • [问题求助] springboot项目使用mybatis-plus集成GaussDB,批量插入报错
    使用mybatis-plus service.saveBatch方法调用异常,提示 Caused by: org.postgresql.util.PSQLException: [10.49.104.175:65143/10.50.191.27:30100] ERROR: bind message supplies 16 parameters, but prepared statement "" requires 32mybatis-plus版本: 3.4.3.4有没有大佬帮忙看下
  • [问题求助] 华为GaussDB 200 安装Manager失败怎么办?
    华为GaussDB 200 安装Manager失败,提示shmmax值太小
总条数:555 到第
上滑加载中