• [问题求助] 数据库已经在正常运行,但我切换到 su - omm用户后,运行 gs_ctl stop 报错(错误为 gs_ctl 命令没有找到)
    数据库已经在正常运行,但我切换到 su - omm用户后,运行 gs_ctl stop 报错(错误为 gs_ctl 命令没有找到)执行 gs_ctl status 和gs_ctl   start 也报同样的错误 这是去年安装时配置的mkdir -p /data/{openGauss,backup,archive_wals,core_pattern}chmod 700 /data/{openGauss,backup,archive_wals,core_pattern}chown -R omm:dbgrp /data/{openGauss,backup,archive_wals,core_pattern}mkdir -p /opt/openGausschown omm:dbgrp -R /opt/openGauss/chmod 755 /opt/openGauss/这是去年安装时配置的环境变量# 安装完成,环境变量修改cdecho 'export PGPORT=15400' >> ~/.bashrcecho 'export PGDATA=/data/openGauss' >> ~/.bashrcsource ~/.bashrc 这是去年安装时配置的集群配置文件<CLUSTER><PARAM name="clusterName" value="openGauss" /><PARAM name="nodeNames" value="ogserver"/><PARAM name="gaussdbAppPath" value="/opt/openGauss/app" /><PARAM name="gaussdbLogPath" value="/var/log/omm" /><PARAM name="tmpMppdbPath" value="/opt/openGauss/tmp"/><PARAM name="gaussdbToolPath" value="/opt/openGauss/install/om" /><PARAM name="corePath" value="/opt/openGauss/corefile"/><PARAM name="backIp1s" value="$SERVER_IP"/></CLUSTER>
  • [问题求助] gaussdb集中式25.1.32版本,为何gs_total_memory_detail当中dynamic_used_memory比process_used_memory要大?gaussdb内存划分为哪些板块?
    gaussdb集中式25.1.32版本,为何gs_total_memory_detail当中dynamic_used_memory比process_used_memory要大?gaussdb内存划分为哪些板块?各个板块与gs_total_memory_detail视图中的memorytype如何对应?
  • [问题求助] gaussdb锁机制和阻塞
    1、Gaussdb数据库有哪些锁,分别是什么锁,是否会导致会话阻塞或者死锁
  • GaussDB优化
    获取函数DDLselect  oid  from  pg_proc  where  procname  =  '函数命 ’ ;select  pg_get_functiondef(oid);把函数的中的SQL取出来优化: 1.调整分布 ,建索引student  表改用 name  分布teacher  表改用 REPLICATION  分布student表建组合索引(classname ,  name),单个索引(classname)跑拿出SQL的执行计划,优化单个SQL后,再去根据单个SQL执行计划出来的路径绑定存储过程的SQL PATCH2 .使用SQL  patch  绑定hint  分布式需要在所有cnselect  reset_unique_sql( 'GLOBAL ’ , 'ALL ’ ,0) ;管理员用户root连接业务数据库set  track_stmt_stat_level  =  'L0 ,L1 ’ ;调用函数–  获取单个 SQL的 unique_sql_id查询视图dbe_perf .summary_statement获取 unique_sql_idselect  unique_sql_id ,query  from  dbe_perf .summary_statement  where  query  like 'select%student% ’ ;创建调优SQL  PATCH,使该SQL语句走IndexOnlyScan select  *  fromdbe_sql_util .create_hint_sql_patch('patch1 ’ ,unique_sql_id , 'IndexScan(t1) ');dbe_sql_util .create_hint_sql_patch('patch1 ’ ,unique_sql_id , 'set(enable_index_ nestloop  on) ') ;执行如下命令删除SQL  PATCHselect  *  from  dbe_sql_util .drop_sql_patch('patch1 ');–  获取存储过程中的SQL的unique_sql_idselect  unique_query_id ,query  from  statement_history  where  query  ilike 'select%student% ’  or  query  ilike  'call  get_select1() ’ ;–  查询创建的patchselect  *  from  gs_sql_patch;select  unique_sql_id ,query ,node_NAME  from  dbe_perf .summary_statement  where query  like  'call% ’  or  query  like  'select%student% ’ ;level1.调整分布列;2.聚合 ,排序字段建索引3.表达式索引4.自定义函数下推5.改列存 ,改astore启用列存参数gs_guc set -Z coordinator -Z datanode -N all -I all -c " enable_cstore = on"建表附带: with(storage_type=aSTORE,orientation=column)向量化参数是否友提升 set try_vector_engine_strategy=force;获取函数DDL的方式:select oid from pg_proc where procname = ‘函数命’;select pg_get_functiondef(oid);
  • GaussDB TPCC 压测
    GaussDB TPCC 压测资源下载 请从以下地址获取所需资源包:• Apache Ant: https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.15-bin.zip• BenchmarkSQL: https://sourceforge.net/projects/benchmarksql/files/benchmarksql-5.0.zip/download• GaussDB 驱动: https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1730887196055/GaussDB_driver.zip *(注:请替换为实际的内网或官方下载地址)*1. 资源准备在开始压测前,请确保已下载以下资源包:• Apache Ant: apache-ant-1.10.15-bin.zip• BenchmarkSQL: benchmarksql-5.0.zip• GaussDB 驱动: GaussDB_driver.zip 2. 环境依赖安装登录三台 GaussDB 服务器,执行以下命令安装必要的依赖工具:yum install wget fio iotop java-1.8.0-* -y 3. BenchmarkSQL 安装与初始化3.1 传输安装包通过桌面连接工具将安装包传输至第一台 GaussDB 服务器:scp /home/user/Downloads/benchmarksql-5.0.zip \    /home/user/Downloads/GaussDB_driver.zip \    /home/user/Downloads/apache-ant-1.10.15-bin.zip \    root@{$gaussdbip}:/home/Ruby/ 3.2 解压与配置在 GaussDB 服务器上执行以下命令:chown Ruby:Ruby /home/Ruby/benchmarksql-5.0.zip \                /home/Ruby/apache-ant-1.10.15-bin.zip \                /home/Ruby/GaussDB_driver.zipsu - Rubysource /home/Ruby/gauss_env_fileunzip apache-ant-1.10.15-bin.zipunzip benchmarksql-5.0.zipunzip GaussDB_driver.zipcd /home/Ruby/benchmarksql-5.0 3.3 使用 Ant 初始化环境/home/Ruby/apache-ant-1.10.15/bin/ant成功回显示例:Buildfile: /home/Ruby/benchmarksql-5.0/build.xmlinit:compile:    [javac] Compiling 11 source files to /home/Ruby/benchmarksql-5.0/builddist:      [jar] Building jar: /home/Ruby/benchmarksql-5.0/dist/BenchmarkSQL-5.0.jarBUILD SUCCESSFULTotal time: 2 seconds 4. 配置文件修改4.1 创建测试配置进入 BenchmarkSQL 安装目录并创建配置文件:cd /home/Ruby/benchmarksql-5.0/runcp props.pg props_test 4.2 编辑 props_test使用 vi props_test 修改配置如下:db=postgresdriver=org.postgresql.Driverconn=jdbc:postgresql://${当前CN的IP地址}:8000/db_tpcc?currentSchema=db_tpcc&autoBalance=true&loggerLevel=OFFuser=tpccpassword=${password}warehouses=500loadWorkers=16terminals=150# To run specified transactions per terminal- runMins must equal zerorunTxnsPerTerminal=0# To run for specified minutes- runTxnsPerTerminal must equal zerorunMins=5# Number of total transactions per minutelimitTxnsPerMin=0# Set to true to run in 4.x compatible mode. Set to false to use the# entire configured database evenly.terminalWarehouseFixed=true# The following five values must add up to 100# The default percentages of 45, 43, 4, 4 & 4 match the TPC-C specnewOrderWeight=46paymentWeight=46orderStatusWeight=0deliveryWeight=8stockLevelWeight=0# Directory name to create for collecting detailed result data.# Comment this out to suppress.resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS# osCollectorScript=./misc/os_collector_linux.pyosCollectorInterval=1# osCollectorSSHAddr=user@dbhostosCollectorDevices=net_eth0 blk_sda 5. 驱动替换将 GaussDB 驱动替换 BenchmarkSQL 默认的 PostgreSQL 驱动:cd /home/Ruby/GaussDB_driver/Centralized/Kylinv10_arm_64tar -zxvf GaussDB-Kernel_505.2.0_Kylin_64bit_Jdbc.tar.gzmv gsjdbc4.jar /home/Ruby/benchmarksql-5.0/lib/postgres/cd /home/Ruby/benchmarksql-5.0/lib/postgres/rm -f postgresql-9.3-1102.jdbc41.jar 6. 数据导入与压测执行6.1 执行导数操作cd /home/Ruby/benchmarksql-5.0/runnohup /home/Ruby/benchmarksql-5.0/run/runDatabaseBuild.sh /home/Ruby/benchmarksql-5.0/run/props_test &查看运行日志:tail -f ./nohup.out 6.2 调整建表脚本(如需要)若需使用通用建表脚本,执行以下操作:cd /home/user/benchmark/runmv /home/user/benchmark/run/sql.postgres/tableCreates.sql \   /home/user/benchmark/run/sql.postgres/tableCreates.sql.bakcp /home/user/benchmark/run/sql.common/tableCreates.sql \   /home/user/benchmark/run/sql.postgres/tableCreates.sql 6.3 配置初始化参数编辑 props.pg 文件:vim props.pg注意:IP 连接串配置为实验实例的 DN 的 IP 和端口。数据库名、用户名 user、密码 password 为新创建的测试库及测试用户信息。关键参数建议:• warehouses=2:导入数据量设置为 2 仓(预计耗时 5 分钟)• loadWorkers=1:导入并发数• runMins=3:每次运行时间 3 分钟• terminals=10:压测并发数保存并退出::wq! 6.4 导入初始化数据./runDatabaseBuild.sh props.pg 6.5 启动压测cd /home/user/benchmark/run./runBenchmark.sh props.pg 7. 监控与参数调优7.1 安装监控工具在数据库主 DN 服务器上安装 sysstat:yum install sysstat 7.2 磁盘监控压测期间观测磁盘使用情况:iostat -xm 2 7.3 磁盘调度策略优化修改数据库节点的磁盘调度策略为 mq-deadline:echo 'mq-deadline' > /sys/block/vdb/queue/scheduler 7.4 数据库参数调优警告:修改以下参数值会造成资源额外消耗,建议修改前进行充分评估。一般在超重负载的场景下可能影响性能,需要配置此参数。修改预写日志文件数:gs_guc set -I all -N all -Z datanode -c "advance_xlog_file_num=100"修改 WAL 文件初始化数量:gs_guc set -I all -N all -Z datanode -c "wal_file_init_num=20" 检查防火墙规则。iptables -L -n --line-number以下命令注入网络连通性异常,5000端口拒绝数据包。iptables -I OUTPUT -p tcp --dport 5000 -j REJECTiptables-save主机iptables规则禁用5000端口,删除相应iptables规则。 iptables -D OUTPUT 1iptables-saveiptables -L -n --line-number
  • [运维管理] 创建行级访问控制⾃定义函数
    创建行级访问控制自定义函数CREATE OR REPLACE FUNCTION create_user_and_grant(IN p_username VARCHAR)RETURNS intLANGUAGE plpgsqlSECURITY DEFINER – 关键:以函数所有者(管理员)权限执行,确保有权限建用户和改表结构AS $$BEGIN    – 1. 创建用户 (默认密码设为 Gauss_135)    – quote_ident 防止 SQL 注入,%I 代表标识符    EXECUTE format(‘CREATE USER %I PASSWORD ‘‘Gauss_135’’’, p_username);– 2. 授予 Schema 的 USAGE 权限 (入场券)    EXECUTE format(‘GRANT USAGE ON SCHEMA u1 TO %I’, p_username);– 3. 授予表的 SELECT 权限 (基础查询权)    – 注意:原图这里写的是 t3,根据你的需求描述应为 t2,此处已修正    EXECUTE format(‘GRANT SELECT ON u1.t2 TO %I’, p_username);– 4. 开启行级安全 (RLS)    – 注意:如果表已经开启过,再次执行会报错。生产环境建议加判断或忽略错误    BEGIN        EXECUTE ‘ALTER TABLE u1.t2 ENABLE ROW LEVEL SECURITY’;    EXCEPTION WHEN OTHERS THEN        – 如果已开启则跳过,或者你可以选择注释掉这一行手动执行一次        NULL;     END;– 5. 创建/更新行级策略 (核心修改部分)    – 逻辑:假设用户名与 depa 字段值对应 (例如用户名为 user_dep5,则只能看 dep5)    – 这里的 USING 条件被动态拼接,不再是写死的 ‘dep5’    EXECUTE format(        ‘CREATE POLICY pol_%I ON u1.t2 FOR SELECT TO %I USING (depa = %L)’,         p_username,       – 策略名称的一部分,保证唯一性        p_username,       – 策略适用的目标用户        p_username        – 【关键点】将用户名作为字符串值传入比较条件    );RETURN 1;END;;; ;
  • [技术干货] 《GaussDB实战指南》之 玩转GaussDB动态脱敏
    干货全拿走,学会就涨薪”   先立flag,后面慢慢写
  • [运维管理] DWS 线下8.2.1版本,开启系统表的vacuum以后为什么系统表的脏页还是一直在增加?怎么样让释放和占用的达到平衡?如果必须手动做vacuum full是否可以不停业务做?一直增加会有什么影响?
    DWS 线下8.2.1版本,开启系统表的vacuum以后为什么系统表的脏页还是一直在增加?怎么样让释放和占用的达到平衡?如果必须手动做vacuum full是否可以不停业务做?一直增加会有什么影响?
  • [用户实践] 《GaussDB实战指南》之 一文教你如何在GaussDB数据库中使用账本数据库
    “干货全拿走,学会就涨薪”  账本数据库设置启用账本数据库参数```su - Ruby/usr/sbin/chroot /var/chrootsource /home/Ruby/gauss_env_filegs_guc reload -Z coordinator -Z datanode -N all -I all -c "enable_ledger=on";```在数据库中创建防篡改Schema```CREATE SCHEMA blocks WITH BLOCKCHAIN;```创建账本表。```CREATE TABLE blocks.t1(id int, name varchar);```更新、删除账本表中的数据```INSERT INTO blocks.t1 VALUES(1, 'alex');INSERT INTO blocks.t1 VALUES(2, 'bob');SELECT *, hash_83f153 FROM blocks.t1;UPDATE blocks.t1 SET name = 'bob2' WHERE id = 2;DELETE FROM blocks.t1 WHERE id = 1;SELECT *, hash_83f153 FROM blocks.t1;```查询历史表```SELECT * FROM blockchain.blocks_t1_hist;历史表表名可以通过 \d+ 表名看到```查看历史摘要```SELECT * FROM gs_global_chain;```校验账本表、历史表和全局表:```SELECT pg_catalog.ledger_hist_check('blocks', 't1');SELECT pg_catalog.ledger_gchain_check('blocks', 't1');如果校验通过,函数返回t,反之则返回f。```与普通表交互从普通表插入数据```create table blocks.tt2 (like u1.t2 including indexes ) ;insert into blocks.tt2 select * from u1.t2;```插入数据到普通表```create table u1.tt2 (like u1.t2 including indexes ) ;insert into u1.tt2 select * from blocks.tt2;```参数改回 off ```su - Ruby/usr/sbin/chroot /var/chrootsource /home/Ruby/gauss_env_filegs_guc reload -Z coordinator -Z datanode -N all -I all -c "enable_ledger=off";
  • [问题求助] Gaussdb 从505.1 升级到505.2,普通用户不能执行purge recyclebin了
    505.1 普通用户可以执行 purge recyclebin,但是升级到505.2之后普通用户执行purge recyclebin报错了:Only superuser can do purge recyclebin operation 哪里可以找到新版本和旧版本的区别呢,如何规避这些升级之后的区别的坑呢
  • [其他问题] Spark操作Gaussdb报错,怎么解决?急
    org.postgresql.util.PSQLException: The authentication type 5 is not supported. Check that you have configured the pg_hba.conf file to include the client's IP address or subnet, and that it is using an authentication type supported by this driver.at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:556)at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:195)at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactoryImpl.java:65)at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:124)连接Gaussdb库,使用的是<dependency> <groupId>com.huaweicloud.dws</groupId> <artifactId>huaweicloud-dws-jdbc</artifactId> <version>8.3.0</version></dependency>试过:1、在连接的配置参数是将spark.yarn.user.classpath.first、spark.driver.userClassPathFirst、spark.executor.userClassPathFirst三个参数均设置true,但是没啥用
  • [问题求助] 如何和GaussDB做互认证,或者兼容性证书
    数据库使用GaussDB,投标需要互认证证书。如何获取这个证书。
  • 开源的opengauss怎么下载
    想自己搭建学习,请问下开源的opengauss怎么下载
  • [问题求助] gsperfserviceinstall.sh等一系列相关脚本的使用方法
    在研究gaussdb的时候,发现自带perf性能工具,有一系列perf相关的脚本,比如gsperfserviceinstall.sh,gsperfservicekill.sh,gsperfservicedaemon.sh......等脚本,这些脚本有没有readme或者help文件,最终该如何使用。
  • [问题求助] 轻量化GaussDB 安装时需要设置服务器时区为UTC吗?
    在GaussDB轻量化安装部署文档中,TPOPS管控安装时配置时钟同步时有说明需要设置服务器时区为UTC,那么想问下这个在数据库服务器上需要设置UTC吗?设置UTC和不设置UTC对数据库的使用会有什么影响吗?
总条数:380 到第
上滑加载中