• [问题求助] 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值太小
  • [运维管理] 关于DataStuio工具启动时,自动创建日志文件夹位置的问题
    datastudio版本:DataStudio_V1R3C20-linux.gtk.x86_64操作系统:麒麟操作系统当我以A用户登陆操作系统时,在终端工具中启动 DataStudio时,软件会在A用户的家目录下自动创建一个workspace文件夹,这是正常操作。在我的这个环境,我仍然使用A用户,我使用一个软件B,调用DataStudio并可以正常启动,但是在A用户的家目录下并没有创建workspace文件夹,而是在软件B的某个目录(/XXX/XXX/bin)下创建的。这样存在一个问题,当用户C登陆操作系统,也使用软件B,调用DataStudio,还是在软件B的某个目录下创建workspace文件夹,这样就造成了某些文件冲突,于是提示不能打开两个DataStudio窗口。问题1:DataStudio创建workspace文件夹时,是如何确定在哪个目录下创建的?有没有办法解决不同用户创建workspace的目录不同。问题2:目前主要的问题是在使用软件B调用DataStudio时,不同的用户也不能打开打二个DataStudio窗口,有没有办法解除DataStudio打开窗口数量的限制。
  • [环境搭建] Linux版客户端启动报错,unable to init server:无法连接:拒绝连接
    在麒麟操作系统是运行报错,用使用具有root权限的账号是可以运行的,但是创建的普通账号就是报错,请问普通账号是需要什么权限呢?datastudio版本:DataStudio_V1R3C20-linux.gtk.x86_64日志文件
  • [技术解读] GaussDB数据库的索引管理
    GaussDB数据库的索引管理目录一、引言二、GaussDB数据库中的索引基本概念2.1 什么是GaussDB索引?2.2 GaussDB索引的作用三、GaussDB支持的索引类型3.1 B-Tree索引3.2 GIN索引3.3 GiST索引3.4 SP-GiST索引四、创建和管理GaussDB索引4.1 创建索引4.2 删除索引4.3 索引的优化和性能考虑五、GaussDB索引的使用注意事项5.1 维护成本5.2 索引选择和优化六、GaussDB索引最佳实践一、引言GaussDB数据库是华为公司倾力打造的自研企业级分布式关系型数据库,索引的设计和管理对于提高查询性能至关重要。下面将通过实际例子深入研究GaussDB数据库的索引管理。二、GaussDB数据库中的索引基本概念2.1 什么是GaussDB索引?GaussDB索引是一种数据结构,用于加速对表中数据的检索和查询。比如,在一个巨大的客户订单表中,可以通过对订单号列创建索引,加速根据订单号查询订单信息的速度。2.2 GaussDB索引的作用GaussDB索引的主要作用是优化查询性能,减少数据检索的开销。通过使用不同类型的索引,GaussDB能够在各种查询场景下提供高效的数据定位和访问。三、GaussDB支持的索引类型3.1 B-Tree索引B-Tree索引是一种平衡树,由根节点、内部节点和叶子节点组成。根节点和内部节点存储键值和指向子节点的指针,叶子节点存储实际的数据。适用场景: 适用于单一值的列,例如整数、字符串等。结构: B-Tree(平衡树)是一种有序树,每个节点包含多个键,并且子节点的键值范围是确定的。优势: 高效支持范围查询、等值查询和排序操作。示例: 在用户表中,通过用户ID列创建B-Tree索引,可以加速按用户ID查询的速度。3.2 GIN索引GIN索引是一种倒排索引,适用于存储和查找由多个键值组成的复合值的数据。它由一个元数据根节点、一个初始条目列表(entry list)和多个从属数据区(pending data pages)组成适用场景: 适用于包含多个数值或文本值的列,例如标签、数组等。结构: Generalized Inverted Index(广义反向索引),可用于加速包含多个项的列的查询。优势: 高效支持包含和排除多个值的查询。示例: 在文章表中,通过对标签列创建GIN索引,可以加速检索包含特定标签的文章。3.3 GiST索引GiST索引是一种平衡树索引,类似于B-Tree索引,但它支持各种各样的数据类型和查询方式。GiST索引由根节点、内部节点和叶子节点组成。每个节点包含一个或多个条目,每个条目由一个键和一些属性组成。适用场景: 适用于各种数据类型,尤其是用于高维数据和非标量数据类型的查询。结构: Generalized Search Tree(广义搜索树),适用于支持多种查询操作。优势: 高效支持范围查询、相似度查询和一些特殊数据类型的查询。示例: 在地理信息系统中,通过GiST索引加速空间数据的查询,例如查询地理位置范围内的数据。3.4 SP-GiST索引SP-GiST索引是GiST索引的一个变体,增加了"空间分区"的特性。SP-GiST索引同样由根节点、内部节点和叶子节点组成。每个内部节点都包含子节点范围的元组描述,叶节点存储实际数据。SP-GiST适用于二维空间数据等。适用场景: 专门用于处理空间数据,提供对复杂空间数据的高效查询支持。结构: Space-Partitioned Generalized Search Tree(空间划分广义搜索树)。优势: 高效支持空间数据的范围查询、相交查询等。示例: 在包含城市坐标的表中,通过创建SP-GiST索引可以加速根据地理位置范围查询城市的速度。四、创建和管理GaussDB索引4.1 创建索引在GaussDB中,可以使用以下SQL语句创建索引:-- 创建B-Tree索引CREATE INDEX btree_index ON user_table USING btree(user_id);-- 创建GIN索引CREATE INDEX gin_index ON article_table USING GIN(tags);-- 创建GiST索引CREATE INDEX gist_index ON spatial_data_table USING GiST(geometry_column);-- 创建SP-GiST索引CREATE INDEX sp_gist_index ON city_table USING SP-GiST(geo_location);4.2 删除索引通过以下SQL语句可以在GaussDB中删除索引:-- 删除索引DROP INDEX btree_index;4.3 索引的优化和性能考虑在创建索引时,需要考虑查询的模式、数据分布和表的大小。例如,对于一个日志表,可能只在时间戳列上创建定期维护的B-Tree索引,以加速按时间范围查询的性能。示例:场景描述假设有一个订单管理系统,其中有一个庞大的订单表(order_table),记录了每个订单的详细信息,包括订单号、客户ID、商品ID、订单金额等。在这个场景下,我们希望优化订单表的查询性能,特别是按照客户ID查询该客户的所有订单记录。创建初始索引首先,我们为订单表的客户ID列创建一个初始的B-Tree索引:-- 创建初始B-Tree索引CREATE INDEX idx_customer_id ON order_table USING btree(customer_id);查询性能分析通过常规查询分析,我们发现在按照客户ID查询订单时,查询性能不如预期。这可能是因为订单表的数据分布较广,B-Tree索引在这种情况下的性能有限。优化索引为了优化索引性能,我们决定尝试使用GIN索引,以适应多值的情况。我们将客户ID列的值转化为数组,然后使用GIN索引:-- 创建GIN索引CREATE INDEX idx_customer_id_gin ON order_table USING GIN(ARRAY[customer_id]);再次查询性能分析通过再次进行客户ID查询,我们发现使用GIN索引后的性能有了明显提升。GIN索引更适用于包含多个客户ID的情况,通过将值存储在数组中,可以更有效地支持这种查询模式。优化结果通过优化索引,我们成功提高了按照客户ID查询订单的性能。然而,需要注意的是,索引的优化是一个动态过程,需要根据实际查询模式和数据分布进行调整。定期监测和评估索引的性能是数据库维护的一部分,以确保系统保持高性能状态。五、GaussDB索引的使用注意事项5.1 维护成本在GaussDB中,索引的维护成本是需要考虑的因素之一。频繁的插入、更新和删除操作可能导致索引的重新构建,影响系统性能。5.2 索引选择和优化过多或不必要的索引可能导致性能下降,因此在设计数据库时,需要仔细选择哪些列需要索引,并根据查询需求进行优化。六、GaussDB索引实践在实际应用中,理解业务需求、数据分布和查询模式是制定索引最佳实践的关键。通过合理配置索引,可以在GaussDB数据库中实现高效、稳定的查询性能。总体而言,深入理解GaussDB数据库索引的原理和使用方法,结合实际业务需求进行灵活配置,将有助于建立高性能、可维护的数据库系统。作者:hhh1218
  • [问题求助] GaussDB 分布式版 对postgis的支持情况
    GaussDB 分布式版可以使用postgis插件吗 目前支持的版本是什么?还是对于地理数据有其他的支持方式?
  • [技术解读] GaussDB数据库SQL系列-LOCK TABLE
    作者:酷哥一、前言GaussDB是一款高性能、高可用的分布式数据库,广泛应用于各类行业和场景。在GaussDB中,锁是实现并发控制的关键机制之一,用于协调多个事务之间的数据访问,确保数据的一致性和完整性。本文将围绕GaussDB数据库的LOCK TABLE 做一简单介绍。二、GaussDB数据库的锁GaussDB提供了多种锁模式用于控制对表中数据的并发访问。这些模式可以用在MVCC(多版本并发控制)无法给出期望行为的场合。同样,大多数GaussDB命令自动施加恰当的锁,以保证被引用的表在命令的执行过程中不会以一种不兼容的方式被删除或者修改。比如,在存在其他并发操作的时候,ALTER TABLE是不能在同一个表上执行的。1、GaussDB中的LOCK TABLELOCK TABLE获取表级锁。如果需要保持数据库数据的一致性,可以使用LOCK TABLE来阻止其他用户修改表。例如,一个应用需要保证表中的数据在事务的运行过程中不被修改。为实现这个目的,则可以对表进行锁定,这样将防止数据不被并发修改。LOCK TABLE只在一个事务块的内部有用,在事务结束时就会被释放。1)语法格式LOCK [ TABLE ] name IN {ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE} MODE2)参数说明1)name:要锁定的表的名称。2)锁的模式:ACCESS SHARE:只读取表而不修改。所有对表进行读取而不修改的SQL语句都会自动请求这种锁。ROW SHARE:允许对表进行并发读取,禁止对表进行其他操作。SELECT FOR UPDATE和SELECT FOR SHARE命令会自动在目标表上请求ROW SHARE锁(且所有被引用但不是FOR SHARE/FOR UPDATE的其他表上,还会自动加上ACCESS SHARE锁)。对于分区表,SELECT FOR SHARE操作还会在DN上获取partition对象的ROW EXCLUSIVE锁进行并发控制。ROW EXCLUSIVE:与ROW SHARE锁相同,ROW EXCLUSIVE允许并发读取表,但是禁止修改表中数据。UPDATE,DELETE,INSERT命令会自动在目标表上请求这个锁(且所有被引用的其他表上还会自动加上的ACCESS SHARE锁)。通常情况下,所有会修改表数据的命令都会请求表的ROW EXCLUSIVE锁。SHARE UPDATE EXCLUSIVE:保护一个表的模式不被并发修改,以及禁止在目标表上执行垃圾回收命令(VACUUM)。VACUUM(不带FULL选项)、ANALYZE、CREATE INDEX CONCURRENTLY命令会自动请求这样的锁。SHARE:允许并发的查询,但是禁止对表进行修改。CREATE INDEX(不带CONCURRENTLY)语句会自动请求这种锁。EXCLUSIVE:允许对目标表进行并发查询,但是禁止任何其他操作。这个模式只允许并发加ACCESS SHARE锁,也就是说,只有对表的读动作可以和持有这个锁模式的事务并发执行。任何SQL语句都不会在用户表上自动请求这个锁模式。然而在某些操作的时候,会在某些系统表上请求它。SHARE ROW EXCLUSIVE:禁止对表进行任何的并发修改,而且是独占锁,因此一个会话中只能获取一次。任何SQL语句都不会自动请求这个锁模式。ACCESS EXCLUSIVE:保证其所有者(事务)是可以访问该表的唯一事务。ALTER TABLE,DROP TABLE,TRUNCATE,REINDEX,CLUSTER,VACUUM FULL命令会自动请求这种锁。在LOCK TABLE命令没有明确声明需要的锁模式时,它是缺省锁模式。2、示例一:ACCESS EXCLUSIVE 模式--创建测试表DROP TABLE IF EXISTS omm2.company;CREATE TABLE omm2.company(id int4 PRIMARY key NOT NULL,name varchar(10) NOT NULL,age int4 NOT NULL,address varchar(20) NOT NULL,salary float4 NOT NULL);--初始化数据INSERT INTO omm2.company VALUES (1, 'Paul', 32, 'California', 20000);INSERT INTO omm2.company VALUES (2, 'Allen', 25, 'Texas', 15000);INSERT INTO omm2.company VALUES (3, 'Teddy', 23, 'Norway', 20000);INSERT INTO omm2.company VALUES (4, 'ZhangSan', 30, 'BeiJing', 30000);--启动一个事务START TRANSACTION;LOCK TABLE omm2.company IN ACCESS EXCLUSIVE MODE;DELETE FROM omm2.company WHERE name ='Allen';COMMIT;解析:“START TRANSACTION;”:启动一个新的事务。在数据库中,事务是一组一起执行的SQL语句,要么全部成功,要么全部失败。这确保了数据的一致性。“LOCK TABLE omm2.company IN ACCESS EXCLUSIVE MODE;”:对omm2.company表进行了排他性锁定。在此模式下,其他会话不能对表进行读写操作,直到这个事务结束。这样可以防止在删除操作过程中其他事务对表产生干扰。“DELETE FROM omm2.company WHERE name ='Allen'; ”:从omm2.company表中删除了所有名为'Allen'的记录。“COMMIT;”:这行代码提交了前面的事务。在事务中执行的任何更改(在本例中是删除操作)在提交后才会永久保存在数据库中。总的来说,这段代码删除了名为'Allen'的所有记录,并确保这个操作在提交之前不会被其他事务干扰。3、示例二:SHARE ROW EXCLUSIVE 模式--复用示例一的测试表CREATE TABLE omm2.company1 AS TABLE omm2.company;--启动一个事务START TRANSACTION;LOCK TABLE omm2.company1 IN SHARE ROW EXCLUSIVE MODE;DELETE FROM omm2.company1 WHERE name ='Allen';COMMIT;解析:“CREATE TABLE omm2.company1 AS TABLE omm2.company;”:创建了一个新的表omm2.company1,其结构复制自已有的表omm2.company。这种操作通常用于创建表的副本,或者为某个操作创建一个临时的、与原表结构相同的新表。“START TRANSACTION; ”:启动一个新的事务。在数据库中,事务是一组一起执行的SQL语句,要么全部成功,要么全部失败,这可以确保数据的一致性。“LOCK TABLE omm2.company1 IN SHARE ROW EXCLUSIVE MODE; ”:对表omm2.company1进行了排他性锁定。在这种模式下,其他会话不能对表进行读写操作,直到这个事务结束,这样可以防止在删除操作过程中其他事务对表产生干扰。“DELETE FROM omm2.company1 WHERE name ='Allen';”:从表omm1.company1中删除了所有名为'Allen'的记录。“COMMIT;”:提交前面的事务。在事务中执行的任何更改(在本例中是删除操作)在提交后才会永久保存在数据库中。三、小结GaussDB数据库的锁机制是其重要的组成部分,用于支持并发控制和事务隔离。GaussDB实现了不同级别的事务隔离和并发控制,满足了不同场景下的需求。当然了,使用GaussDB数据库时也需要注意一些问题,如锁的管理和数据库的规划等。合理的锁管理和数据库规划能够提高系统的性能和可用性,反之则可能导致数据一致性问题或者系统故障。——结束
  • [技术干货] 利用GaussDB的可观测性能力构建故障模型
    作者:白鳝的洞穴D-SMART高斯专版已经开发了几个月了,目前主要技术问题都已经解决,也能够初步看到大概的面貌了。有朋友问我,Gaussdb不已经有了TPOPS了,为什么你们还要开发D-SMART高斯专版呢?实际上TPOPS和D-SMART虽然都可以用于Gaussdb的运维监控,不过其分工还是十分明显的。TPOPS是华为GaussDB自带的运维工具,从数据库部署开始就一直可以使用。TPOPS+DBMind也具有一定的运维分析能力,不过这些功能都是基于传统的运维管理理念的。D-SMART是一个运维知识自动化系统,其目的是实现更加数字化的运维监控、故障预警、根因分析(RCA)、自动化巡检等,今后还会依托D-SMART的数据构建线上的SAAS生态。D-SMART是一个十分强大的知识自动化平台,可以不断沉淀用户自己的运维知识,包括各种健康模型、故障模型和诊断工具。这些都是TPOPS不具备的功能,因此D-SMART可以作为TPOPS的有效补充。另外一方面,D-SMART高斯专版会支持所有的高斯生态产品,包含华为GaussDB集中式/分布式,openGauss、南大通用GBASE 8C、海量Vastbase、神通数据库、磐维、MogDB等。D-SMART是从运维视角来看待GaussDB的。从入口上,D-SMART与TPOPS的视角就完全不同。使用过D-SMART的用户送GaussDB专版没有任何学习成本,可以很轻松的通过工具去对GaussDB集群进行分析。配套的D-SMART V2.6版本提供了一个图形化的集群拓扑。让习惯于图形界面的DBA看起来更加舒适。    在集群拓扑上可以点击CN/DN节点进行下钻。在D-SMART中,每个有分布式CN/DN节点和集中式DN节点三种子类型,目前我们把它们作为PG兼容子类来看待。因为GaussDB和openGauss都有大量的监控视图与PG兼容,可以复用部分PG的工具,因此我们没有给openGauss/GaussDB节点独立的数据库类别。虽然如此,GaussDB、openGauss和PostgreSQL三种数据库子类在可观测性视图方面已经有了很多差异。作为可观测性能力而言,GaussDB>openGauss >PostgreSQL。更强的可观测性意味着更为强大的自动化/智能化分析能力。故障模型告警和诊断工具依然沿用D-SMART传统的模式,目前工具的开发还在持续进行中,不过基于运维知识图谱的通用分析工具已经是可用的了。智能指标分析与告警时序分析、等待事件智能分析等工具已经可以使用了。基于GaussDB强大的可观测能力,目前故障模型的梳理工作也进展顺利,和一些其他的国产数据库不同的是,我们明显感到能够梳理出来的故障模型数量太多了,刚刚发布的时候可能就会有上百个故障模型,比我们2018年发布Oracle版本时的故障模式数量还要多出不少。    故障模型是对数据库运维经验的一种总结,能够构建其丰富的故障模型对于承载大型关键应用系统十分关键。而故障模型的构建依赖于强大的可观测能力,以及将数据库状态指标化的能力,再辅以专家的经验才能完成。这种能力可以让一些原本需要专家才能发现的问题实现自动化发现与自动化预警。目前我们针对GaussDB的故障模型涉及组件健康状态、容量、高可用、并发、负载、性能、资源、实例健康、任务等维度。实际上这是针对GaussDB集群的故障模型,针对每个组件,比如CN/DN,以及承载CN/DN的服务器也都会设计故障模型。这样才能保证整个数据库运行环境出现问题,都能够被提前发现。分布式数据库的运维工具开发起来比较麻烦,在前面的开发过程中我们也遇到了很多问题,比如DN节点的切换后,系统能否立即无缝跟踪到这个变化,如果复制组中存在硬件配置上的不同,可能会影响模型的评估,如何能够在每隔2-3分钟的评估中避开数据错误,这些都在不断的完善中。这个月底希望有一个评估版本可以完成,届时也希望生产环境中有GaussDB的朋友能一起合作来验证工具。有兴趣的朋友可以关注“DBAIOPS社区”公众号给我们留言。
  • [问题求助] GaussDB for mysql
    GaussDB for mysql支不支持国产化适配,支不支持信创改造
  • [用户实践] Kylin V10 SP1安装GaussDB手册(基于云数据库GaussDB管理平台)
    本文很长,里面包含了部署云管平台、安装Gaussdb 260版本遇到的一些问题以及解决的方法,建议先收藏再阅读。部署Gaussdb 260版本需要先部署云管工具,和部署200版本需要安装TPOPS类似,260也需提前安装好管理平台。之前介绍过通过TPOPS安装guassdb,后面有位朋友提醒TPOPS已经被华为弃用了。后来从华为工程师那里得知确实如此,本文就重新介绍通过云数据库GaussDB管理平台来部署GaussDB,官方有部署文档也比较详细,但是有些细节没有说得很清楚,导致部署的时候很是艰难。一、介绍(来自官方手册)云数据库GaussDB管理平台是基于HCS DBS(Database Service)服务孵化的一款可即开即用、稳定可靠、按需扩展、便捷管理的数据库运维管理平台。云数据库GaussDB管理平台不依赖华为云Stack云底座,与华为云Stack标准云部署形成场景互补,可获得与华为云Stack云上一致的用户体验。云数据库GaussDB管理平台当前仅支持HA模式部署,即在三个节点上安装云数据库GaussDB管理平台。HA模式具有高可靠模式;支持跨机房、跨地域部署;可有效避免微服务单点故障、单机故障、单机房故障等异常情况,保证业务稳定运行。注:通过查看安装脚本,管理平台是支持单节点部署二、要求通信X86我简单尝试后放弃了,还是用了Kylin。实验环境[root@test181 ~]# uname -aLinux test181 4.19.90-23.8.v2101.ky10.x86_64 #1 SMP Mon May 17 17:08:34 CST 2021 x86_64 x86_64 x86_64 GNU/Linux三、准备工具、安装包• 安装包准备需要和华为申请安装包和license,乱七八糟加起来有30G。• 操作系统自己想办法四、安装前准备工作1、java环境官方并没有对java版本有要求,建议使用1.8[root@test181 ~]#  java -versionopenjdk version "1.8.0_342"OpenJDK Runtime Environment BiSheng (build 1.8.0_342-b11)OpenJDK 64-Bit Server VM BiSheng (build 25.342-b11, mixed mode)2、expect也没有版本要求,直接yum安装即可yum install expect [root@test181 ~]# expect -versionexpect version 5.45.43、openssl默认都有,一般不用单独安装,如果没有通过操作系统镜像安装即可4、tar默认都有,一般不用单独安装[root@test181 ~]# tar --versiontar (GNU tar) 1.30Copyright (C) 2017 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Written by John Gilmore and Jay Fenlason.5、dos2unix默认都有,一般不用单独安装,否则通过yum install tar -y安装即可。[root@test181 ~]# dos2unix -Vdos2unix 7.4.0 (2017-10-10)With Unicode UTF-16 support.With native language support.With support to preserve the user and group ownership of files.LOCALEDIR: /usr/share/localehttp://waterlan.home.xs4all.nl/dos2unix.htm6、libcgroup默认都有,一般不用单独安装,否则通过yum install libcgroup -y安装即可。[root@test181 ~]# rpm -qa | grep libcgrouplibcgroup-0.41-23.ky10.x86_647、字符集是en_US.UTF-8如果不是,可通过/etc/locale.conf修改[root@test181 ~]# cat /etc/locale.conf LANG="en_US.UTF-8"[root@test181 ~]# source /etc/locale.conf 8、ifconfig默认都有,一般不用单独安装,否则通过yum install ifconfig -y安装即可。9、关闭GSSAPI认证a. 使用vi打开/etc/ssh/sshd_config。vi etc/ssh/sshd_configb. 修改GSSAPIAuthentication的值为no。GSSAPIAuthentication noc. 执行**:wq**保存并退出。d. 重启sshd服务systemctl restart sshd10、python版本必须要是3.7.4或者3.7.9,Kylin V10默认就是3.7.9,所以不需要单独安装Python。[root@test181 ~]# python3 -VPython 3.7.911、关闭防火墙systemctl stop firwalldsystemctl disable firwalld12、关闭selinux1. 使用vim打开config文件。 vim etc/selinux/config1. 修改“SELINUX”的值“permissive”,执行**:wq!**保存并退出修改。 SELINUX=permissive3.重启系统生效reboot注:确保所有节点的所有条件都满足,再进行下一步。否则出现错误,不好排查。五、正式开始所有准备工作就绪,就可以开始了。不管是单节点部署,还是多节点,只需要在其中一个节点操作。1、创建目录/data[root@test181 ~]# mkdir /data2、上传软件包并解压将 DBS-docker-service_2.23.07.260.2023122720369783_all.tar.gz 上传到目录/datatar zxvf DBS-docker-service_2.23.07.260.2023122720369783_all.tar.gz3、上传其他所需安装包到/data/docker-service/pkgs目录下差不多二十来个吧,就问你怕不怕。[root@test181 ~]# ll /data/docker-service/pkgs/total 19806060-rw-r--r-- 1 root root  168679104 Feb 19 15:17 DBS-auth_2.23.07.260.20231221153212.70313242_all.tar.gz-rw-r--r-- 1 root root  234169918 Feb 19 15:18 DBS-common-service_2.23.07.260.202312261914.70760277_all.tar.gz-rw-r--r-- 1 root root  126033339 Feb 19 15:18 DBS-DBMind-Manual_2.23.07.210.202310251420.tar.gz-rw-r--r-- 1 root root   36403487 Feb 19 15:19 DBS-GaussDB-agent_2.23.07.260.70848390_all.tar.gz-rw-r--r-- 1 root root  238567896 Feb 19 15:22 DBS-GaussDB-backupmanager_2.23.07.260.20231223170622_all.tar.gz-rw-r--r-- 1 root root   60700834 Feb 19 15:22 DBS-gaussdb-console_2.23.07.260.70429885_all.tar.gz-rw-r--r-- 1 root root  148811695 Feb 19 15:22 DBS-GaussDBConsole-Server_2.23.07.260.20231226225243.70778480.tar.gz-rw-r--r-- 1 root root  579171792 Feb 19 15:22 DBS-GaussDB-driver.tar.gz-rw-r--r-- 1 root root     165402 Feb 19 15:31 DBS-GaussDB-feature-data_2.23.07.260.20231211141333.69332951_all.tar.gz-rw-r--r-- 1 root root  249134570 Feb 19 15:31 DBS-GaussDB-instancemanager_2.23.07.260.20231226234230_all.tar.gz-rw-r--r-- 1 root root 2156775557 Feb 19 15:31 DBS-GaussDB-Kernel_2.23.07.260.796044464831616.tar.gz-rw-r--r-- 1 root root 1546448988 Feb 19 15:33 DBS-GaussDB-Kylin-Kernel_2.23.07.260.796044464831616.tar.gz-rw-r--r-- 1 root root 6313764593 Feb 19 16:03 DBS-GaussDB-Manual_2.23.07.260.796048944315456.tar.gz-rw-r--r-- 1 root root  212023674 Feb 19 16:12 DBS-GaussDB-open-api_2.23.07.260.20231226232138.70780102_all.tar.gz-rw-r--r-- 1 root root  737048524 Feb 19 16:58 DBS-GaussDB-Server_2.23.07.260.20231228180356.70962999.tar.gz-rw-r--r-- 1 root root 1260229698 Feb 19 17:05 DBS_GaussDB_X86_2R10_BMS_2.23.01.200-20230331112613.tar.gz-rw-r--r-- 1 root root 1204521424 Feb 19 17:05 DBS_GaussDB_X86_2R10_ECS_2.23.01.200-20230116162315.tar.gz-rw-r--r-- 1 root root 1902708824 Feb 19 16:06 DBS_GaussDB_X86_HCE_ECS_2.23.07.200-20230914195612.tar.gz-rw-r--r-- 1 root root  200690701 Feb 19 16:12 DBS-luban_2.23.07.260.20231226220440.70776246_all.tar.gz-rw-r--r-- 1 root root 1175543251 Feb 19 17:01 DBS-MetaDB_Kylin_Centralized_503.1.0.SPC1700.B003.tar.gz-rw-r--r-- 1 root root  229973638 Feb 19 16:11 DBS-monitor-service_2.23.07.260.202312211511.70310489_all.tar.gz-rw-r--r-- 1 root root  256829824 Feb 19 16:39 DBS-OM-Agent-Manual_2.23.07.260.796048944315456.tar.gz-rw-r--r-- 1 root root  184162486 Feb 19 16:11 DBS-ots_2.23.07.260.20231222133123.70415568_all.tar.gz-rw-r--r-- 1 root root    3433930 Feb 19 16:12 DBS-platform-data_2.23.07.260.20231228220057.70981727_all.tar.gz-rw-r--r-- 1 root root  214016922 Feb 19 16:11 DBS-rds-ha-admin_2.23.07.260.202312112053.69373866_all.tar.gz-rw-r--r-- 1 root root  196126792 Feb 19 16:12 DBS-resource-manager_2.23.07.260.202311271720.68102008_all.tar.gz-rw-r--r-- 1 root root       7257 Feb 19 17:08 DBS-tools_2.23.07.200_all.tar.gz-rw-r--r-- 1 root root  170949800 Feb 19 16:11 DBS-workflow_2.23.07.200.202309092109.61758876_all.tar.gz-rw-r--r-- 1 root root  263046780 Feb 19 16:11 GaussDB_image_patch_2.23.07.200.tar.gz-rw-r--r-- 1 root root  211207619 Feb 19 15:16 GaussDB_OS_PATCH_2.23.07.260.20231226095856.zip注:需要保证包的唯一,同一个微服务或组件的包只能上传一个4、修改配置文件修改配置文件/data/docker-service/config/user_edit_file.conf ,单节点配置如下:[root@test181 ~]# cat /data/docker-service/config/user_edit_file.conf [user_edit]ssh_port = 22gauss_path = /opt/gaussdbnode1_ip = 60.60.60.181node2_ip = node3_ip = influxdb_install_ip1 = 60.60.60.181influxdb_install_ip2 = sftp_install_ip1 = 60.60.60.181sftp_install_ip2 = main_path = /opt/cloudnode1_ip2 = 60.60.60.181node2_ip2 = node3_ip2 = log_path = /opt/cloud/logssftp_path = /opt/sftphomeinflux_path = /opt/cloud/influxdbdocker_path = /opt/dockerbackup_path = /opt/backupservice_group_id = 1010service_user_id = 1010uninstall_all = nouse_cgroup = no如果是多节点,则配置好其他几个IP参数即可。配置文件参数说明[user_edit] ssh_port = 22    # 节点之间登录的ssh端口号 gauss_path = /opt/gaussdb    # 元数据库安装目录 node1_ip = 192.168.0.1    # 节点1本机IP地址(执行节点IP地址) node2_ip = 192.168.0.2    # 节点2本机IP地址  node3_ip = 192.168.0.3    # 节点3本机IP地址 influxdb_install_ip1 = 192.168.0.1    # influxdb安装节点1 influxdb_install_ip2 = 192.168.0.2    # influxdb安装节点2 sftp_install_ip1 = 192.168.0.1    # sftp安装节点1 sftp_install_ip2 = 192.168.0.2    # sftp安装节点2 main_path = /opt/cloud    # 微服务运行目录, 目录可自定义,仅支持自定义第一级目录,二级目录cloud不允许修改  node1_ip2 = 100.95.0.1    # 节点1可以和GaussDB实例地址通信的IP地址(执行节点可以和GaussDB实例通信的IP地址,要求可以和GaussDB实例ssh通以及ping通) node2_ip2 = 100.95.0.2    # 节点2可以和GaussDB实例地址通信的IP地址(要求可以和GaussDB实例ssh通以及ping通) node3_ip2 = 100.95.0.3    # 节点3可以和GaussDB实例通信的IP地址(要求可以和GaussDB实例ssh通以及ping通) log_path = /opt/cloud/logs    # 日志目录, 目录可自定义,仅支持自定义第一级目录,二级目录cloud及之后目录不允许修改 sftp_path = /opt/sftphome    # sftp数据目录, 目录可自定义,仅支持自定义第一级目录,二级目录sftphome不允许修改 influx_path = /opt/cloud/influxdb    # influxdb数据目录,需要保证influxDB_install_ip1以及influxDB_install_ip2节点influxd的父目录都有influxdb用户的可执行权限(如遍历父目录,对目录执行chmod a+x /directory_1/directory_2),目录可自定义,仅支持自定义第一级目录,二级目录cloud及之后目录不允许修改 docker_path = /opt/docker    # docker数据目录, 目录可自定义,仅支持自定义第一级目录,二级目录cloud不允许修改,如果用户环境已安装docker,则以用户配置为准,该项配置不生效。 backup_path = /opt/backup    # 备份数据目录, 目录可自定义,仅支持自定义第一级目录,二级目录cloud不允许修改 service_group_id = 1010    # service用户id(需未被使用) service_user_id = 1010    # service用户组id(需未被使用) uninstall_all = no    #  卸载时需将参数值配置成yes,默认为no5、创建目录通过脚本自动创建[root@test181 ~]# sh /data/docker-service/action/mainAction/create_install_dir.sh 'root密码'6、开始安装管理平台登录管理平台https://60.60.60.181:8443/gaussdb/#/login管理平台的默认用户名、密码:admin/Gauss_234[root@test181 ~]# cd /data/docker-service[root@test181 docker-service]# sh appctl.sh install请输入root用户密码:start check host: 60.60.60.181 root passwordcheck host: 60.60.60.181 root password success[WARNING]The non-standard single-node deployment mode does not support the high reliability mode and has the risk of single point failure. Are you sure you want to continue the installation? (y/n):y    --单节点部署,提示高可用风险。输入y确认。。。漫长等待,看机器性能,基本上1小时打底。======== 60.60.60.181: gaussdb_service ========   auth                    |  complete          gaussdb-console         |  complete          luban                   |  complete          ots                     |  complete          GaussDB-open-api        |  complete          GaussDB-instancemanager |  complete          GaussDB-backupmanager   |  complete         install successful  Upload sftp packages successful for 60.60.60.181请登录云数据库GaussDB管理平台查看安装包上传任务状态出现以上提示信息,就表示安装成功了。根据我的经验,第一次就安装成功的几率不大。六、申请license点击《平台管理》中的《License管理》,许可容量,点击申请试用,输入confirm确认即可。七、接入主机在部署GuassDB之前,需要将目标主机接入到管理平台中。主机硬件要求最低:8C 64G,低于这个没法安装。1、目标主机要求1.1、expect也没有版本要求,直接yum安装即可yum install expect [root@test181 ~]# expect -versionexpect version 5.45.41.2 设置时区和时间确保主机的时区和时间一模一样,否则初始化主机会报错。cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtimedate -s "2024/02/20 10:13:50"1.3 [可选]关闭swap交换内存cat /etc/fstab# /dev/mapper/klas-swap   none                    swap    defaults        0 0reboot1.4、字符集是en_US.UTF-8如果不是,可通过/etc/locale.conf修改[root@test181 ~]# cat /etc/locale.conf LANG="en_US.UTF-8"[root@test181 ~]# source /etc/locale.conf 1.5、关闭GSSAPI认证a. 使用vi打开/etc/ssh/sshd_config。vi etc/ssh/sshd_configb. 修改GSSAPIAuthentication的值为no。GSSAPIAuthentication noc. 执行**:wq**保存并退出。d. 重启sshd服务systemctl restart sshd1.6、python版本必须要是3.7.4或者3.7.9,Kylin V10默认就是3.7.9,所以不需要单独安装Python。[root@test181 ~]# python3 -VPython 3.7.91.7、关闭防火墙systemctl stop firwalldsystemctl disable firwalld1.8、关闭selinux1. 使用vim打开config文件。 vim etc/selinux/config1. 修改“SELINUX”的值“permissive”,执行**:wq!**保存并退出修改。 SELINUX=permissive3.重启系统生效reboot1.9 设置MTU建议设置为1500,默认就是1500.1.10、umask小于等于0022l 以root用户登录待添加的主机节点,执行umask命令。若回显小于等于0022,可直接添加主机;若回显大于0022,请执行以下步骤修改umask的值。a. 执行以下命令,进入bashrc文件。 vi etc/bashrcb. 在最下方增加一行,使umask的值等于0022。 umask 0022c. 单击键盘Esc,再执行**:wq!**命令保存并退出。d. 执行以下命令,使修改生效。 source etc/bashrce. 再次执行umask命令,回显等于0022表示修改成功。1.11 允许root相关操作• 主机允许root用户登录。• 主机允许ssh跳转进行scp命令拷贝安装包。• 主机允许expect命令处理ssh交互过程。步骤 2 单击需要查询主机所在的“机房别名/ID”。单击“添加主机”2、准备一块不小于300G的磁盘安装实例由程序自动组盘,除系统盘外所有磁盘作为数据盘使用,并挂载在/var/chroot子目录下。不需要对磁盘做操作,只要准备一块就可以了。并确保/var/chroot目录是不存在的,因为初始化会清空该目录。推荐使用SSD,普通磁盘也可以安装3、添加主机步骤 1 登录云数据库GaussDB管理平台。步骤 1 单击“平台管理 > 数据中心管理”,进入“数据中心管理”页面。确定后,开始执行相关初始化操作。可通过任务中心查看执行情况,如果失败可查看详细报错信息(看了也白看,基本上只能求助官方)。如果问题,初始化成功后,就可以安装数据库实例了。相关参数解释:如果添加主机报错,参考附录部分。如果解决不了,可能需要求助官方了。八、安装实例步骤 1 登录云数据库GaussDB管理平台。步骤 2 单击“安装实例”,进入“安装实例”界面。下一步单击“立即申请”,进入信息确认页,确认实例信息。创建过程比较漫长~~~实例创建成功后,用户可以在“实例管理”页面对其进行查看和管理至此,GaussDB部署已经完成!下一篇将会为大家介绍部署过程中的问题~
  • [问题求助] gaussDB是否支持私有化部署?
    因数据安全的约束,项目数据不能上公有云,请问GAUSSDB支持私有化部署么?具体怎么操作呢?
  • DBAIOPS适配GaussDB工作顺利进行,预期3月底上线该功能
    作者:徐戟(白鳝)GaussDB虽然去年4月份才大规模线下销售,仍然在2023年国产数据库的市场上表现出了十分强劲的增长势头。春节前DBAIOPS社区启动了Gaussdb的适配工作,在适配开始前的分析中,我们发现GaussDB的可观测性能力在国产数据库中是比较优秀的。因此对构建GaussDB的智能运维能力信心十足。基于2023年D-SMART适配Oceanbase的分布式运维平台框架,我们很快完成了GaussDB的指标梳理工作,并完成了初步的采集工作。预计在3月底,社区将会上线GaussDB的相关功能。从上图可以看出,GaussDB为运维诊断提供了十分丰富的可观测性数据。通过我们的Collector采集器用低成本的方式采集回来的数据,通过Monitor加工后形成了十分丰富的指标体系。利用左边GaussDB提供的可观测性能力,我们可以为用户提供右边的多种多样的自动化/智能化运维能力。GaussDB分为集中式和分布式两种部署模式,在指标采集方面,分布式环境的采集十分便捷,只需要连接到某一个CN节点上就可以完成所有的数据库层面的采集工作,GaussDB提供的Global_*和Summary_*视图提供了十分全面的指标数据。不过集中式部署模式略微麻烦一些,在Master DN节点中只有自己的指标数据,Slaver的指标数据必须通过只读方式连接到Slaver DN上去单独采集。    可以看出在一个3节点3分区的GaussDB分布式部署模式的数据库中,采集了4000+的指标,这些指标将会有效实现对GaussDB的精益化管理。当前指标的细化工作还在进行中,Monitor会对原始数据进行更为细致的加工,运维专家也会利用这些原始数据通过对GaussDB的风险、容量、状态变化、故障与性能问题等进行细致的分析,并把分析结果也指标化了。因此等产品发布的时候,指标数量可能还会大幅增加。只有把数据库的方方面面都数字化了,真正的智能化运维工具才能有效地为DBA提供指导。纳管GaussDB数据库变得十分简单了,只需要输入某一个CN节点(对于集中式模式是primary DN)的IP地址和端口号,以及可以采集dbe_perf等SCHEMA中的系统视图信息的数据库账号就可以了(不需要超级用户账号)。  通过节点发现可以自动发现所有的服务器与节点,当集群扩容时可以通过该工具来添加被纳管的CN/DN节点,系统也会定期自动扫描集群的变化,自动纳管节点。  现在我们可以在工具中看到GaussDB分布式部署模式和集中部署模式的基本运行状态了。在这个界面中看到的健康模型目前还在优化调整中,最终发布的版本中将会分别针对集中式和分布式部署模式提供物理机高性能/物理机普通模式,云平台高性能/云平台标准模式等不同的健康模型模板。针对不同的部署模式,将会有不同的GaussDB集群的健康模型。同时还会提供GaussDB CN/DN节点的健康模型,因为可观测性能力的差别,GaussDB CN/DN的健康模型与openGauss略有不同。    汇总信息与基本信息界面与普通的集中式数据库并无太大差别。目前我们部署了GaussDB的260版本(5.0.5内核),3个CN节点,3个SHARDING的部署模式。  从逻辑拓扑上我们可以看到3CN+9DN(3*3)+3 CMS+3 GTM+3 ETCD的拓扑结构。如果需要进行分析,我们还可以进一步下钻,对某个CN或者DN进行下钻分析。D-SMART可以把GaussDB集群中的每个CN/DN都当成一个独立的集中式数据库来处理,可以实现类似于Oracle实例的分析和诊断。这样的话集群对象我们更看重的是集群整体的健康、容量、负载等。而对于某个CN/DN对象,可以以细粒度的方式来进行分析诊断,从而更加精准地定位故障。当某个CN/DN对象中发现隐患的时候,系统也会收到告警。这就避免了因为分布式数据库整体可靠性掩盖了底层对象故障的问题。    数据库工具可以让DBA能够在不切换工具的情况下连到数据库上做一些只读查询,这些功能都是从集中式数据库的功能上直接复制过来的。集中式部署模式是没有CN节点和GTM节点的。我们采取了和分布式部署模式类似的管理模式,针对GaussDB集群构建独立的健康模型,并且能够很好地对主从节点的拓扑进行管理。并把RTO/RPO等指标作为关键的健康因素进行管理。而下钻进入DN节点则可以对具体的数据库实例进行管理和分析。接下来我们将为GaussDB完善日检、巡检、SQL审计等巡检工具,并构建故障模型、运维知识图谱等。并为之编写数百个诊断知识点工具。这些工作都在有序推进,大约下个月底,预览版将会在社区上架。希望正在使用GaussDB的,有智能化运维需求的用户与我们联系,我们可以合作在实际生产环境上不断去完善GaussDB的运维工具。一个好的数据库运维工具,绝对不是开发人员在办公室里能做得好的,必须在实际的生产环境中不断用它去解决问题,才能变成真正对DBA有用的工具。
  • [技术解读] GaussDB数据库SQL系列-动态语句
    一、前言在数据库中构建动态SQL语句是指根据不同的条件或参数创建不同的SQL语句。这通常是为了适应不同的业务需求,提高SQL的灵活性和效率。GaussDB数据库是一款具备高性能、高可用性和高扩展性的关系型数据库,它提供了丰富的功能和工具,支持动态SQL语句的构建。下面我们将介绍如何使用GaussDB数据库构建动态SQL语句。二、构建动态SQL语句的基本步骤和注意事项1、基本步骤分析需求:首先需要明确业务需求,了解需要执行哪些SQL查询操作,并根据需求的不同来动态构建SQL语句。准备参数:根据查询操作的不同,准备相应的参数,如筛选条件、排序规则等。SQL拼接:根据需求和参数,使用字符串拼接方式构建SQL语句。执行查询:使用GaussDB数据库的查询接口,执行构建好的SQL语句并获取查询结果。处理结果:将查询结果进行处理和展示,可以是前端页面或后端接口等形式。2、主要事项避免SQL注入:在拼接SQL语句时,务必注意避免SQL注入的风险,不要直接拼接用户输入的内容。性能优化:对于大规模数据的查询操作,需要进行性能优化,如使用索引、分页查询等方式来提高查询效率。事务处理:如果涉及事务处理,需要使用GaussDB数据库的事务管理功能来确保数据的一致性和可靠性。安全性保障:对于敏感数据的查询操作,需要进行安全性保障,如数据脱敏、权限控制等方式来保护数据的安全。三、GaussDB中执行动态查询语句(示例)GaussDB提供两种方式:使用EXECUTE IMMEDIATE、OPEN FOR实现动态查询。前者通过动态执行SELECT语句,后者结合了游标的使用。当需要将查询的结果保存在一个数据集用于提取时,可使用OPEN FOR实现动态查询。1、方式一:EXECUTE IMMEDIATE--传递并检索值(INTO子句用在USING子句前):CREATE OR REPLACE FUNCTION dynamic_f()RETURNS textLANGUAGE plpgsqlAS $$DECLAREd_id INT := 2;d_name VARCHAR(20);d_salary INT;BEGINEXECUTE IMMEDIATE 'SELECT name,salary FROM company1 WHERE id = :1' INTO d_name,d_salary USING IN d_id;RETURN '姓名:' || d_name || ' , 薪水:¥' ||d_salary;END $$;--执行CALL dynamic_f();主要属性说明: INTO的变量 :用于指定存放单行查询结果的变量。USING IN的变量: 用于指定存放传递给动态SQL值的变量,在SQL拼接时可用占位符,占位符命名以“:”开始,后面可跟数字、字符或字符串,与USING子句的变量一一对应。执行结果:2、方式二:OPEN FOR--使用OPEN FOR打开动态游标来执行CREATE OR REPLACE FUNCTION dynamic_cur()RETURNS textLANGUAGE plpgsqlAS $$DECLAREv_name VARCHAR2(20);v_salary INT;TYPE ref_type IS REF CURSOR; --定义游标类型my_cur ref_type; --定义游标变量BEGINOPEN my_cur FOR 'SELECT name,salary FROM company1 WHERE id = :1' USING '3'; --打开游标, using是可选的FETCH my_cur INTO v_name, v_salary; --获取数据WHILE my_cur%FOUNDLOOPRETURN v_name||'#'||v_salary;FETCH my_cur INTO v_name, v_salary;END LOOP;CLOSE my_cur; --关闭游标END $$;--执行CALL dynamic_cur();主要属性说明'WHILE my_cur%FOUND': 是一个循环控制语句。'my_cur'是一个游标,而'%FOUND'是游标状态。当游标找到符合条件的记录时,这个状态就会为真(也就是说,如果'my_cur%'FOUND为真,那么就继续执行循环中的代码)。当游标没有更多的记录可返回时(或者达到了游标返回的最大记录数),这个状态就会为假,然后循环就会停止。所以,'WHILE my_cur%FOUND'的意思是:当游标'my_cur'还有记录可返回时,就继续执行循环中的代码。执行结果四、GaussDB中的动态非查询语句(示例)其实这个可以简单的理解为非“SELECT语句”,基本写法跟前面的示例类似,下面继续以company1表为例:--使用EXECUTE IMMEDIATE执行动态非查询语句CREATE OR REPLACE FUNCTION dynamic_cur()RETURNS voidLANGUAGE plpgsqlAS $$DECLAREv_id INT := 4;v_name VARCHAR2(10) := 'ZhangSan';v_age INT := 30;v_address VARCHAR2(10) := 'BeiJing';v_salary INT := 30000;v_newname VARCHAR2(10) := 'company4';BEGINEXECUTE IMMEDIATE 'INSERT INTO company1 VALUES(:1, :2, :3, :4, :5)' USING v_id, v_name, v_age,v_address,v_salary;EXECUTE IMMEDIATE 'ALTER TABLE company1 RENAME to ' || v_newname;END $$;--执行CALL dynamic_cur();--查看结果SELECT * FROM company4;执行结果五、小结通过使用GaussDB数据库构建动态SQL语句,数据应用部门可以更好地应对不断变化的数据查询需求,提高应用程序的性能和可维护性。本文主要介绍了如何使用GaussDB数据库构建动态SQL语句的基本步骤和注意事项,并通过实际案例进行了演示,欢迎大家测试、交流。——结束作者:酷哥
  • opengauss2.1升级到opengauss3.0简单指南
    本文记录升级中主要步骤,生产中升级需要做很多的准备工作,主要步骤具体参考官方的升级指南cid:link_01.root用户登录节点,创建升级目录[zf@mogdb-kernel-0003 dblink]$ gsql -d postgres -p 15400 -r gsql ((openGauss 2.1.0 build 590b0f8e) compiled at 2021-09-30 14:29:27 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. [root@mogdb-kernel-0003 dblink]$ mkdir -p /opt/software/gaussdb_upgrade [root@mogdb-kernel-0003 dblink]$ cd /opt/software/gaussdb_upgrade [root@mogdb-kernel-0003 gaussdb_upgrade]$ ls [root@mogdb-kernel-0003 gaussdb_upgrade]$2.下载升级包,并解压下载地址:cid:link_1[root@mogdb-kernel-0003 gaussdb_upgrade]# wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/arm/openGauss-3.0.0-openEuler-64bit-all.tar.gz openGauss-3.0.0-openEuler-64bit-all.tar.gz 100%[======================================================================================>] 107.10M 2.63MB/s   in 27s [root@mogdb-kernel-0003 gaussdb_upgrade]# ls openGauss-3.0.0-openEuler-64bit-all.tar.gz [root@mogdb-kernel-0003 gaussdb_upgrade]# tar -xf openGauss-3.0.0-openEuler-64bit-all.tar.gz [root@mogdb-kernel-0003 gaussdb_upgrade]# ls openGauss-3.0.0-openEuler-64bit-all.tar.gz openGauss-3.0.0-openEuler-64bit-om.sha256 openGauss-3.0.0-openEuler-64bit.tar.bz2 openGauss-3.0.0-openEuler-64bit-cm.sha256   openGauss-3.0.0-openEuler-64bit-om.tar.gz upgrade_sql.sha256 openGauss-3.0.0-openEuler-64bit-cm.tar.gz   openGauss-3.0.0-openEuler-64bit.sha256     upgrade_sql.tar.gz [root@mogdb-kernel-0003 gaussdb_upgrade]# tar -xf openGauss-3.0.0-openEuler-64bit-om.tar.gz3.进去升级目录,执行升级安装cd /opt/software/gaussdb_upgrade/script [root@mogdb-kernel-0003 script]# ./gs_preinstall -U zf -G zf -X /data1/softwarezf/mogdb/clusterconfig.xml Parsing the configuration file. Successfully parsed the configuration file. Installing the tools on the local node. Successfully installed the tools on the local node. Setting host ip env Successfully set host ip env. Are you sure you want to create the user[zf] (yes/no)? yes Preparing SSH service. Successfully prepared SSH service. Checking OS software. Successfully check os software. Checking OS version. Successfully checked OS version. Creating cluster's path. Successfully created cluster's path. Set and check OS parameter. Setting OS parameters. Successfully set OS parameters. Warning: Installation environment contains some warning messages. Please get more details by "/opt/software/gaussdb_upgrade/script/gs_checkos -i A -h mogdb-kernel-0003 --detail". Set and check OS parameter completed. Preparing CRON service. Successfully prepared CRON service. Setting user environmental variables. Successfully set user environmental variables. Setting the dynamic link library. Successfully set the dynamic link library. Setting Core file Successfully set core path. Setting pssh path Successfully set pssh path. Setting Cgroup. Successfully set Cgroup. Set ARM Optimization. Successfully set ARM Optimization. Fixing server package owner. Setting finish flag. Successfully set finish flag. Preinstallation succeeded.4.执行就地升级或者灰度升级就地升级:升级期间需停止业务进行,一次性升级所有节点。gs_upgradectl -t auto-upgrade -X   /data1/softwarezf/mogdb/clusterconfig.xml灰度升级:灰度升级支持全业务操作,也是一次性升级所有节点。gs_upgradectl -t auto-upgrade -X /opt/software/GaussDB_Kernel/clusterconfig.xml --grey切换至数据库用户,我这里是zf,执行升级操作,这里采用就地升级[zf@mogdb-kernel-0003 ~]$ gs_upgradectl -t auto-upgrade -X   /data1/softwarezf/mogdb/clusterconfig.xml Static configuration matched with old static configuration files. Performing inplace rollback. Rollback succeeded. Checking upgrade environment. Successfully checked upgrade environment. Successfully started cluster. Start to do health check. Successfully checked cluster status. Backing up current application and configurations. Successfully backed up current application and configurations. Stop cluster with gs_om successfully. Backing up cluster configuration. Successfully backup hotpatch config file. Successfully backed up cluster configuration. Installing new binary. Restoring cluster configuration. Successfully restored cluster configuration. Successfully started cluster. Stop cluster with gs_om successfully. Modifying the socket path. Successfully modified socket path. NOTICE: Failed to set upgrade_mode to 1, please set it manually. Successfully started cluster. copy certs from /data1/mogdbzf/app_compiled to /data1/mogdbzf/app_02c14696. Successfully copy certs from /data1/mogdbzf/app_compiled to /data1/mogdbzf/app_02c14696. Stop cluster with gs_om successfully. Switch symbolic link to new binary directory. Successfully switch symbolic link to new binary directory. Successfully started cluster. Stop cluster with gs_om successfully. Successfully started cluster. Waiting for the cluster status to become normal. . The cluster status is normal. Start to do health check. Successfully checked cluster status. Upgrade main process has been finished, user can do some check now. Once the check done, please execute following command to commit upgrade: ​   gs_upgradectl -t commit-upgrade -X /data1/softwarezf/mogdb/clusterconfig.xml5.检查升级是否成功[zf@mogdb-kernel-0003 ~]$ gsql -d postgres -p 15400 -r gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=#6.进行提交升级或者回滚一旦提交操作完成,则不能再执行回滚操作。gs_upgradectl -t commit-upgrade -X /data1/softwarezf/mogdb/clusterconfig.xml [zf@mogdb-kernel-0003 ~]$ gs_upgradectl -t commit-upgrade -X /data1/softwarezf/mogdb/clusterconfig.xml NOTICE: Start to commit binary upgrade. Start to check whether can be committed. Can be committed. Start to set commit flag. Set commit flag succeeded. Start to do operations that cannot be rollback. Cancel the upgrade status succeeded. Start to clean temp files for upgrade. Clean up backup catalog files. Successfully cleaned old install path. Stop cluster with gs_om successfully. Successfully started cluster. Clean temp files for upgrade succeeded. NOTICE: Commit binary upgrade succeeded.回滚[zf@mogdb-kernel-0003 ~]$ gs_upgradectl -t auto-rollback -X /data1/softwarezf/mogdb/clusterconfig.xml Static configuration matched with old static configuration files. Performing inplace rollback. Checking static configuration files. Successfully checked static configuration files. Successfully started cluster. Restoring cluster configuration. Successfully rollback hotpatch config file. Successfully restored cluster configuration. Start roll back CM instance. Switch symbolic link to old binary directory. Successfully switch symbolic link to old binary directory. Successfully started cluster. Stop cluster with gs_om successfully. Restoring application and configurations. Successfully restored application and configuration. Restoring cluster configuration. Successfully rollback hotpatch config file. Successfully restored cluster configuration. Clean up backup catalog files. Successfully started cluster. Successfully cleaned new install path. Rollback succeeded. [zf@mogdb-kernel-0003 ~]$ gsql -d postgres -p 15400 -r gsql ((openGauss 2.1.0 build 590b0f8e) compiled at 2021-09-30 14:29:27 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. ​ openGauss=#强制回滚,如果数据库异常,可强制回滚 gs_upgradectl -t auto-rollback -X /opt/software/GaussDB_Kernel/clusterconfig.xml   --force转自:https://www.modb.pro/db/391240
  • [技术干货] GaussDBAPI概览
    API概览通过使用GaussDB接口,您可以使用GaussDB的创建实例、删除实例等功能。类型子类型说明GaussDB 接口实例管理包括创建实例、扩容实例磁盘空间、删除实例、查询实例列表、获取指定实例、CN横向扩容、DN分片扩容、重置数据库密码、修改实例名称接口,查询实例组件列表,规格变更,分片节点主备切换、重启数据库实例、查询实例主备平衡状态、查询解决方案模版配置、查询已绑定的EIP列表、若密码效验、绑定公网IP、解绑公网IP、查询实例SSL证书下载地址、查询租户的实例配额接口。参数配置包括修改指定实例参数、获取参数模板列表、获取指定实例的参数、创建参数模版、删除参数模版、查询参数模版详情、复制参数模版、重置参数组、比较两个参数组模版之间的差异、查询可应用实例列表、校验参数组名称是否存在、应用参数模版、查询参数模版的应用记录、查询参数模版的修改历史接口。备份管理包括设置自动备份策略、查询自动备份策略、查询备份列表、创建手动备份、删除手动备份、查询可恢复时间段、恢复到新实例、查询可用于备份恢复的实例列表、根据时间点或者备份文件查询原实例信息接口。引擎版本和规格包括查询数据库引擎的版本、查询数据库规格、查询引擎列表、查询实例可变更规格接口。查询数据库磁盘类型包括查询数据库磁盘类型接口。管理数据库和用户包括创建数据库、创建数据库用户、创建数据库SCHEMA、授权数据库帐号、重置数据库帐号密码、查询数据库列表、查询数据库用户列表、查询数据库SCHEMA列表接口。标签管理包括查询实例标签、查询项目标签、查询预定义标签、添加实例标签接口。磁盘管理包括查询实例存储空间使用信息接口。配额管理包括修改企业项目配额、查询企业项目配额组接口。任务管理包括获取任务信息、查询任务列表、删除任务记录接口。回收站包括设置回收站策略、查看回收站策略、查询回收站所有引擎实例列表接口。
总条数:600 到第
上滑加载中