华为云用户手册

  • work_mem 参数说明:设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。 对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,64~2147483647,单位为KB。 默认值: 独立部署: 128MB(60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存);32MB(4核CPU/32G内存);16MB(4核CPU/16G内存) 金融版(标准型): CN:128MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存) DN:256MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存);128MB(80核CPU/640G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存) 企业版: 128MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存) 金融版(数据计算型): 128MB(96核CPU/768G内存,72核CPU/576G内存,64核CPU/512G内存);64MB(32核CPU/256G内存) 设置建议: 依据查询特点和并发来确定,一旦work_mem限定的物理内存不够,算子运算数据将写入临时表空间,带来5-10倍的性能下降,查询响应时间从秒级下降到分钟级。 对于串行无并发的复杂查询场景,平均每个查询有5-10关联操作,建议work_mem=50%内存/10。 对于串行无并发的简单查询场景,平均每个查询有2-5个关联操作,建议work_mem=50%内存/5。 对于并发场景,建议work_mem=串行下的work_mem/物理并发数。 对于BitmapScan的哈希表也会受到work_mem的限制,但不会被严格管控下盘。完全Lossify的情况下,哈希表每占用1MB的内存,对应一次BitmapHeapScan的16GB的页面,达到work_mem上限后,会按此比例随数据访问量线性增长。
  • max_stack_depth 参数说明:设置 GaussDB 执行堆栈的最大安全深度。需要这个安全界限是因为在服务器里,并非所有程序都检查了堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,100~2147483647‬,单位为KB。 默认值: (ulimit -s的设置)- 640 KB的值大于等于2MB时,此参数的默认值为2MB。 (ulimit -s的设置)- 640 KB的值小于2MB时,此参数的默认值为(ulimit -s的设置)- 640 KB。 设置原则: 数据库需要预留640KB堆栈深度,因此此参数可设置的最大值等于操作系统内核允许的最大值(就是ulimit -s的设置)- 640KB。 数据库未运行前设置的该参数值大于(ulimit -s的设置)- 640 KB时会导致数据库启动失败;数据库运行阶段设置该参数值大于(ulimit -s的设置)- 640 KB时该值不生效。 若(ulimit -s的设置)-640KB小于此参数取值范围的最小值时会导致数据库启动失败。 如果设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃。 因为并非所有的操作都能够检测,所以建议用户在此设置一个明确的值。 默认值最大为2MB,这个值相对比较小,不容易导致系统崩溃。
  • resilience_memory_reject_percent 参数说明:用于控制内存过载逃生的动态内存占用百分比。该参数仅在GUC参数use_workload_manager和enable_memory_limit打开时生效。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0。 该参数分为recover_memory_percent,、overload_memory_percent 2部分,这2个部分的具体含义如下: recover_memory_percent:内存从过载状态恢复正常状态的动态内存使用占最大动态内存的百分比,当动态内存使用小于最大动态内存乘以该值对应的百分比后,停止过载逃生并放开新连接接入,取值为0~100,设置为多少表示百分之多少。 overload_memory_percent:内存过载时动态内存使用占最大动态内存的百分比,当动态内存使用大于最大动态内存乘以该值对应的百分比后,表示当前内存已经过载,触发过载逃生kill会话并禁止新连接接入,取值为0~100,设置为多少表示百分之多少。 默认值:'0,0',表示关闭内存过载逃生功能。 示例: resilience_memory_reject_percent = '70,90' 表示内存使用超过最大内存上限的90%后禁止新连接接入并kill堆积的会话,kill会话过程中内存恢复到最大内存的70%以下时停止kill会话并允许新连接接入。 最大动态内存和已使用的动态内存可以通过pv_total_memory_detail视图查询获得,最大动态内存:max_dynamic_memory,已使用的动态内存:dynamic_used_memory。 该参数如果设置的百分比过小,则会频繁触发内存过载逃生流程,会使正在执行的会话被强制退出,新连接短时间接入失败,需要根据实际内存使用情况慎重设置。 use_workload_manager参数关闭的情况下,如果打开bypass_workload_manager,则该参数也会生效,但是因为bypass_workload_manager是SIGHUP类型,reload方式设置后需要重启数据库才会使得当前功能生效。 recover_memory_percent和overload_memory_percent的值可以同时为0,除此之外,recover_memory_percent的值必须要小于overload_memory_percent的值,否则会设置不生效。
  • maintenance_work_mem 参数说明:设置在维护性操作(比如VACUUM、CREATE INDEX等)中可使用的最大的内存。该参数的设置会影响VACUUM、VACUUM FULL、CLUSTER、CREATE INDEX的执行效率。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1024~2147483647‬,单位为KB。 默认值: 独立部署: CN:1GB(60核CPU/480G内存);512MB(32核CPU/256G内存);256MB(16核CPU/128G内存);128MB(8核CPU/64G内存);64MB(4核CPU/32G内存);32MB(4核CPU/16G内存) DN:2GB(60核CPU/480G内存);1GB(32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存);64MB(4核CPU/16G内存) 金融版(标准型): CN:1GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存);512MB(72核CPU/576G内存,64核CPU/512G内存);256MB(60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存) DN:2GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存);1GB(32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存) 企业版: CN:1GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存);512MB(72核CPU/576G内存,64核CPU/512G内存);256MB(60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存) DN:2GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存);1GB(32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存) 金融版(数据计算型): CN:1GB(96核CPU/768G内存);256MB(72核CPU/576G内存,64核CPU/512G内存);128MB(32核CPU/256G内存) DN:2GB(96核CPU/768G内存);1GB(72核CPU/576G内存,64核CPU/512G内存);512MB(32核CPU/256G内存) 设置建议: 建议设置此参数的值大于work_mem,可以改进清理和恢复数据库转储的速度。因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话。 当自动清理线程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值应该不小于work_mem。 如果进行大数据量的cluster等,可以在session中调大该值。
  • enable_memory_limit 参数说明:启用逻辑内存管理模块。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示启用逻辑内存管理模块。 off表示不启用逻辑内存管理模块。 默认值:on 若max_process_memory-shared_buffers-cstore_buffers-元数据少于2G,GaussDB强制把enable_memory_limit设置为off。其中元数据是GaussDB内部使用的内存,和部分并发参数,如max_connections,thread_pool_attr,max_prepared_transactions等参数相关。 当该值为off时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存过多,可能导致操作系统OOM问题。
  • segment_buffers 参数说明:设置GaussDB段页式元数据页的内存大小。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,16 ~ 1073741823,单位为8KB。 segment_buffers需要设置为BLCKSZ的整数倍,BLCKSZ目前设置为8KB,即segment_buffers需要设置为8KB整数倍。改变BLCKSZ的值会改变最小值。 默认值:8MB 设置建议: segment_buffers用来缓存段页式段头的内容,属于关键元数据信息,为了提高性能建议常用的表的段头都能缓存在buffer中,不被置换出去。建议按照表的个数(包括索引和toast表)* 分区数 * 3 + 128 来设置。乘以3是因为每个表(分区)会有一些额外的元数据段,一般一个表有3个段。最后+128因为段页式表空间管理需要一定数量的buffer。 该参数设置过小会导致首次创建段页式表时耗时较久,因此请按照建议进行设置。
  • temp_buffers 参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。 取值范围:整型,100~1073741823,单位为8KB。 默认值:1MB
  • max_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,2097152~2147483647,单位为KB。 默认值: 独立部署:360GB(60核CPU/480G内存);192GB(32核CPU/256G内存);96GB(16核CPU/128G内存);40GB(8核CPU/64G内存);20GB(4核CPU/32G内存);10GB(4核CPU/16G内存) 金融版(标准型): CN:200GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);160GB(96核CPU/768G内存);130GB(80核CPU/640G内存);120GB(72核CPU/576G内存);100GB(64核CPU/512G内存,60核CPU/480G内存);50GB(32核CPU/256G内存);20GB(16核CPU/128G内存);10GB(8核CPU/64G内存) DN:350GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);260GB(96核CPU/768G内存);220GB(80核CPU/640G内存);200GB(72核CPU/576G内存);180GB(64核CPU/512G内存);160GB(60核CPU/480G内存);80GB(32核CPU/256G内存);40GB(16核CPU/128G内存);20GB(8核CPU/64G内存) 企业版: CN:150GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);110GB(96核CPU/768G内存);90GB(80核CPU/640G内存);80GB(72核CPU/576G内存);75GB(80核CPU/512G内存,64核CPU/512G内存);70GB(60核CPU/480G内存);35GB(32核CPU/256G内存);15GB(16核CPU/128G内存);9GB(8核CPU/64G内存) DN:250GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);190GB(96核CPU/768G内存);160GB(80核CPU/640G内存);140GB(72核CPU/576G内存);125GB(80核CPU/512G内存,64核CPU/512G内存);120GB(60核CPU/480G内存);60GB(32核CPU/256G内存);25GB(16核CPU/128G内存);15GB(8核CPU/64G内存) 金融版(数据计算型): CN:100GB(96核CPU/768G内存);60GB(72核CPU/576G内存,64核CPU/512G内存);20GB(32核CPU/256G内存) DN:150GB(96核CPU/768G内存);110GB(72核CPU/576G内存);100GB(64核CPU/512G内存);40GB(32核CPU/256G内存) 设置建议: DN上该数值需要根据系统物理内存及单节点部署主DN个数决定的。计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.7 / (n+主DN个数)。该参数目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点OOM。这个公式中提到vm.min_free_kbytes,其含义是预留操作系统内存供内核使用,通常用作操作系统内核中通信收发内存分配,至少为5%内存。即,max_process_memory=物理内存*0.665/(n+主DN个数),其中,当集群规模小于256时,n=1;当集群规模大于256且小于512时,n=2;当集群规模超过512时,n=3。 CN上该数值内存可设置与DN数值一样。 RAM :集群规划时分配给集群的最大使用内存,实际为服务器的物理内存。 当该值设置不合理,即大于服务器物理内存,可能导致操作系统OOM问题。
  • local_syscache_threshold 参数说明:系统表cache在单个session缓存的大小。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果enable_global_plancache已打开,为保证GPC生效,local_syscache_threshold设置值小于16MB时不会生效,最小为16MB。 如果enable_global_syscache和enable_thread_pool打开,该参数描述的是当前线程和绑定到当前线程上的session缓存的总大小。 取值范围:整型,1*1024~512*1024,单位为KB。 默认值: 独立部署:16MB 金融版(标准型): 32MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存);16MB(72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存) 企业版: 32MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存,72核CPU/576G内存,64核CPU/512G内存);16MB(60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存) 金融版(数据计算型):16MB
  • GLOBAL_THREAD_WAIT_STATUS 通过该视图可以检测所有节点上工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况。 通过GLOBAL_THREAD_WAIT_STATUS视图,可以查看集群全局各个节点上所有SQL语句产生的线程之间的调用层次关系,以及各个线程的阻塞等待状态,从而更容易定位hang以及类似现象的原因。 GLOBAL_THREAD_WAIT_STATUS视图和THREAD_WAIT_STATUS视图列定义完全相同,这是由于GLOBAL_THREAD_WAIT_STATUS视图本质是到集群中各个节点上查询THREAD_WAIT_STATUS视图汇总的结果。 表1 GLOBAL_THREAD_WAIT_STATUS字段 名称 类型 描述 node_name text 节点名称。 db_name text 数据库名称。 thread_name text 线程名称。 query_id bigint 查询ID,对应debug_query_id。 tid bigint 当前线程的线程号。 sessionid bigint session的ID。 lwtid integer 当前线程的轻量级线程号。 psessionid bigint streaming线程的父线程。 tlevel integer streaming线程的层级。 smpid integer 并行线程的ID。 wait_status text 当前线程的等待状态。 wait_event text 如果wait_status是acquire lock、acquire lwlock、wait io三种类型,此列描述具体的锁、轻量级锁、I/O的信息。否则是空。 locktag text 当前线程正在等待锁的信息。 lockmode text 当前线程正等待获取的锁模式。包含表级锁、行级锁、页级锁下的各模式。 block_sessionid bigint 阻塞当前线程获取锁的会话标识。 global_sessionid text 全局会话ID。 父主题: Session/Thread
  • 示例 --创建用户jim,登录密码为********。 openGauss=# CREATE USER jim PASSWORD '********'; --下面语句与上面的等价。 openGauss=# CREATE USER kim IDENTIFIED BY '********'; --如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。 openGauss=# CREATE USER dim CREATEDB PASSWORD '********'; --将用户jim的登录密码由********修改为**********。 openGauss=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********'; --为用户jim追加CREATEROLE权限。 openGauss=# ALTER USER jim CREATEROLE; --锁定jim账户。 openGauss=# ALTER USER jim ACCOUNT LOCK; --删除用户。 openGauss=# DROP USER kim CASCADE; openGauss=# DROP USER jim CASCADE; openGauss=# DROP USER dim CASCADE;
  • 语法格式 1 CREATE USER user_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE }; 其中option子句用于设置权限及属性等信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | { LOG IN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {VCADMIN | NOVCADMIN} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid | DEFAULT TABLESPACE tablespace_name | PROFILE DEFAULT | PROFILE profile_name | PGUSER
  • PG_CONSTRAINT PG_CONSTRAINT系统表存储表上的检查约束、主键、唯一约束和外键约束。 表1 PG_CONSTRAINT字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 conname name 约束名称(不一定是唯一的)。 connamespace oid 包含这个约束的名称空间的OID。 contype "char" c:检查约束。 p:主键约束。 u:唯一约束。 t:触发器约束。 x:互斥约束。 f:外键约束。 s:聚簇约束。 i:无效约束。 condeferrable boolean 这个约束是否可以推迟。 true:表示可以。 false:表示不可以。 condeferred boolean 缺省时这个约束是否可以推迟。 true:表示可以。 false:表示不可以。 convalidated boolean 约束是否有效。目前,只有外键和CHECK约束可将其设置为FALSE。 true:表示有效。 false:表示无效。 conrelid oid 这个约束所在的表,如果不是表约束则为0。 contypid oid 这个约束所在的域,如果不是一个域约束则为0。 conindid oid 与约束关联的索引ID。 confrelid oid 如果是外键,则为参考的表,否则为0。 confupdtype "char" 外键更新动作代码。 a:没动作。 r:限制。 c:级联。 n:设置为null。 d:设置为缺省。 confdeltype "char" 外键删除动作代码。 a:没动作。 r:限制。 c:级联。 n:设置为null。 d:设置为缺省。 confmatchtype "char" 外键匹配类型。 f:全部。 p:部分。 u:未指定(在f的基础上允许匹配NULL值)。 conislocal boolean 是否是为关系创建的本地约束。 true:表示是。 false:表示不是。 coninhcount integer 约束直接继承父表的数目。继承父表数非零时,不能删除或重命名该约束。 connoinherit boolean 是否可以被继承。 true:表示可以。 false:表示不可以。 consoft boolean 是否为信息约束(Informational Constraint)。 true:表示是。 false:表示不是。 conopt boolean 是否使用信息约束优化执行计划。 true:表示使用。 false:表示不使用。 conkey smallint[] 如果是表约束,则是约束控制的字段列表。 confkey smallint[] 如果是一个外键,是参考的字段的列表。 conpfeqop oid[] 如果是一个外键,是做PK=FK比较的相等操作符ID的列表。 conppeqop oid[] 如果是一个外键,是做PK=PK比较的相等操作符ID的列表。 conffeqop oid[] 如果是一个外键,是做FK=FK比较的相等操作符ID的列表。 conexclop oid[] 如果是一个排他约束,是列的排他操作符ID列表。 conbin pg_node_tree 如果是检查约束,那就是其表达式的内部形式。 consrc text 如果是检查约束,则是表达式的可读形式。 conincluding smallint[] 不用做约束,但是会包含在INDEX中的属性列。 consrc在被引用的对象改变之后不会被更新,它不会跟踪字段的名称修改。建议使用pg_get_constraintdef()来抽取一个检查约束的定义。 PG_CLASS的relchecks需要和在该表上为给定关系找到的检查约束的数目一致。 父主题: 系统表
  • 函数支持自治事务 自治事务可以在函数中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与函数语法相同,示例如下。 create table t4(a int, b int, c text); CREATE OR REPLACE function autonomous_32(a int ,b int ,c text) RETURN int AS DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t4 values(a, b, c); return 1; END; / CREATE OR REPLACE function autonomous_33(num1 int) RETURN int AS DECLARE num3 int := 220; tmp int; PRAGMA AUTONOMOUS_TRANSACTION; BEGIN num3 := num3/num1; return num3; EXCEPTION WHEN division_by_zero THEN select autonomous_32(num3, num1, sqlerrm) into tmp; return 0; END; / select autonomous_33(0); select * from t4; 父主题: 自治事务
  • password_reuse_max 参数说明:在使用ALTER USER或者ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用次数检查,仅sysadmin用户可以访问。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 修改密码时会检查配置参数password_reuse_time和password_reuse_max。 当password_reuse_time和password_reuse_max都为正数时,只要满足其中任一个,即可认为密码可以重用。 当password_reuse_time为0时,表示不限制密码重用天数,仅限制密码重用次数。 当password_reuse_max为0时,表示不限制密码重用次数,仅限制密码重用天数。 当password_reuse_time和password_reuse_max都为0时,表示不对密码重用进行限制。 取值范围:整型,最小值为0,最大值为1000。 0表示不检查密码可重用次数。 正整数表示新密码不能为该值指定的次数内使用过的密码。 默认值:0
  • modify_initial_password 参数说明:当 GaussDB安装 成功后,数据库中仅存在一个初始用户(UID为10的用户)。客户通过该账户初次登录数据库进行操作时,该参数决定是否要对该初始账户的密码进行修改。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果安装过程中未指定初始用户密码,则安装后初始用户密码默认为空,执行其他操作前需要先通过gsql客户端设置初始用户的密码。此参数功能不再生效,保留此参数仅为兼容升级场景。 取值范围:布尔型 on表示集群安装成功后初始用户首次登录操作前需要修改初始密码。 off表示集群安装成功后初始用户无需修改初始密码即可进行操作。 默认值:off
  • password_lock_time 参数说明:该参数指定账户被锁定后自动解锁的时间。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 password_lock_time和failed_login_attempts必须都为正数时锁定和解锁功能才能生效。 取值范围:浮点型,最小值为0,最大值为365,单位为天。整数部分表示天数,小数部分可以换算成时、分、秒,如:password_lock_time=1.5,表示1天零12小时。 0表示密码验证失败时,自动锁定功能不生效。 正数表示账户被锁定后,当锁定时间超过password_lock_time设定的值时,账户将会被自行解锁。 默认值:1
  • require_ssl 参数说明:设置服务器端是否强制要求SSL连接,该参数只有当参数ssl为on时才有效。请在使用这个选项之前阅读通过gsql连接实例章节。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示服务器端强制要求SSL连接。 off表示服务器端对是否通过SSL连接不作强制要求。 GaussDB目前支持SSL的场景为客户端连接CN场景,该参数目前建议只在CN中开启。 默认值:off
  • ssl_renegotiation_limit 参数说明:指定在会话密钥重新协商之前,通过SSL加密通道可以传输的流量。这个重新协商流量限制机制可以减少攻击者针对大量数据使用密码分析法破解密钥的几率,但是也带来较大的性能损失。流量是指发送和接受的流量总和。使用SSL重协商机制可能引入其他风险,因此已禁用SSL重协商机制,为保持版本兼容保留此参数,修改参数配置不再起作用。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为2147483647。单位为KB。其中0表示禁用重新协商机制。 默认值:0
  • password_encryption_type 参数说明:该字段决定采用何种加密方式对用户密码进行加密存储。修改此参数的配置不会自动触发已有用户密码加密方式的修改,只会影响新创建用户或修改用户密码操作。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:0、1、2、3 0表示采用md5方式对密码加密。 1表示采用sha256和md5两种方式分别对密码加密。 2表示采用sha256方式对密码加密。 3表示采用sm3方式对密码加密。 MD5加密算法安全性低,存在安全风险,不建议使用。 默认值:2
  • password_reuse_time 参数说明:在使用ALTER USER或者ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用天数检查。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 修改密码时会检查配置参数password_reuse_time和password_reuse_max。 当password_reuse_time和password_reuse_max都为正数时,只要满足其中任一个,即可认为密码可以重用。 当password_reuse_time为0时,表示不限制密码重用天数,仅限制密码重用次数。 当password_reuse_max为0时,表示不限制密码重用次数,仅限制密码重用天数。 当password_reuse_time和password_reuse_max都为0时,表示不对密码重用进行限制。 取值范围:浮点型,最小值为0,最大值为3650,单位为天。 0表示不检查密码可重用的天数。 正数表示新密码不能为该值指定的天数内使用过的密码。
  • failed_login_attempts 参数说明:在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁,仅sysadmin用户可以访问。例如,登录时输入密码失败,ALTER USER时修改密码失败等。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 failed_login_attempts和password_lock_time必须都为正数时锁定和解锁功能才能生效。 取值范围:整型,最小值为0,最大值为1000。 0表示自动锁定功能不生效。 正整数表示当错误密码次数达到failed_login_attempts设定的值时,当前账户将被锁定。 默认值:10
  • comm_ssl 参数说明:启用主DN之间SSL连接。请在使用这个选项之前阅读通过gsql连接实例章节。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示主DN之间启用SSL连接。 off表示主DN之间不启用SSL连接。 该参数目前建议只在DN中开启,CN默认值为off。 开启此参数需要同时确保ssl_cert_file、ssl_key_file和ssl_ca_file参数配置正确,不正确的配置可能会导致集群无法正常启动。 默认值:off
  • ssl 参数说明:启用SSL连接。请在使用这个选项之前阅读通过gsql连接实例章节。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示启用SSL连接。 off表示不启用SSL连接。 GaussDB目前支持SSL的场景为客户端连接CN场景,该参数目前建议只在CN中开启,DN默认值为off。开启此参数需要同时确保ssl_cert_file、ssl_key_file和ssl_ca_file参数配置正确,不正确的配置可能会导致集群无法正常启动。 默认值:on(CN实例);off(DN实例)
  • GTM模式 为适应不同的并发和一致性要求,GaussDB提供了三种不同的GTM模式,GTM,GTM-Lite,GTM-Free。三种模式之间的主要区别是中心事务管理节点GTM的压力和事务处理流程不同,其中GTM模式下,中心事务处理节点的压力最大,比较容易成为性能和并发瓶颈;在GTM-Lite模式下,中心事务处理节点的压力得到减轻,事务处理流程进一步优化,GTM的性能和并发瓶颈得到减轻,在保证一致性的情况下,事务处理能力得到更大限度的提升;在GTM-Free模式下,中心事务管理节点不再参与事务管理,消除了GTM单点瓶颈,可达到更高的事务处理性能,但是在一致性方面,支持所有事务运行完,保证读的外部一致性,不支持分布式事务强一致性读,不支持insert into select * from等依赖于查询结果的事务一致性。 当前版本暂不支持三种模式之间的相互切换,建议使用安装时默认的GTM模式,支持升级前后GTM模式不变化。 相关的GUC参数包括enable_gtm_free和gtm_option,可通过gsql执行show语句查询当前GTM模式: SHOW enable_gtm_free; SHOW gtm_option; 具体模式判断方法如下。 GTM模式:enable_gtm_free=off 且 gtm_option=0; GTM-Lite模式:enable_gtm_free=off 且 gtm_option=1; GTM-Free模式:enable_gtm_free=on 或 gtm_option=2。 GTM-lite模式和GTM模式下,GaussDB支持分布式事务强一致和完整的语法功能。GTM-FREE模式下,由于采用了分布式事务最终一致的执行和并发控制机制,因此约束了部分语法的使用场景和使用方式。如果业务确有使用被限制语法的需求,那么在明确了解最终一致性行为的基础之上,需要对业务进行一定程度的改造。主要涉及的约束语法和改造建议如下: 总体原则:所有用户表必须指定分布键(DISTRIBUTE BY),且选择合理: 考虑数据分布均匀。 尽量选择查询中的关联条件作为分布键,保证关联查询不会引起DN节点之间的数据流动。 考虑将表的主键作为分布键。 SELECT: 表查询时,WHERE条件应包含所有分布键字段等值查询条件。 避免在SELECT目标列中使用子查询,可能导致计划无法下推到DN执行,影响执行性能。 DML: 默认不支持跨节点事务,如果所执行的DML语句包含跨节点事务,会报错处理,具体分为两种场景: 如果用户语句在数据库内部被拆分成多条独立语句执行,会报错:INSERT/UPDATE/DELETE/MERGE contains multiple remote queries under GTM-free mode Unsupport DML two phase commit under gtm free mode. modify your SQL to generate light-proxy or fast-query-shipping plan。这时,需要修改语句,来单节点执行。 举例: insert into t select * from b where b.c = xx; 假设t表和b表的分布键不同,且上述where条件只会过滤出一条数据。在不打开enable_stream_operator的情况下, 上面的查询在数据内部会被拆分成两条独立语句串行执行:首先执行select * from b where b.c = xx从某个DN节点抽取到目标记录;然后再执行insert into t语句,将抽取的目标记录下发到另一个节点DN节点完成插入。在gtm-free模式下,这样的语句执行方式会返回上述报错。类似的,create table as select * from、带子查询的delete/join/insert等语句,也可能会出现类似报错。 业务改造方案:在业务执行之前,需要加上set enable_stream_operator=on命令,打开流算子,使得业务语句可以被整体下推执行。 如果同一个用户语句在数据库内部涉及多节点执行,会报错:Your SQL needs more than one datanode to be involved in。这时,建议对语句进行修改,使得能够单节点执行。 举例: insert into t values(3,3),(1,1); 假设(3,3)和(1,1)被分布在不同的DN节点上,那么上述语句在数据库内部的执行过程会涉及两个DN节点。在gtm-free模式下,这样的语句执行方式会返回上述报错。 业务改造方式:对于上述语句,如果业务确有需要在多个节点上执行,需要在语句中添加一个hint来避免报错,如下: insert /*+ multinode */ into t values(3,3),(1,1); 类似的,对delete和update语句也有类似约束,一般建议用户在delete和update语句的where条件中加上分布键等值过滤条件。 建议开发阶段在jdbc连接串内设置application_type=perfect_sharding_type,这样所有跨节点读写操作的SQL都会报错,用来提示开发人员尽早优化语句。
  • enable_hotkeys_collection 参数说明:开关打开后,自动对数据库内的被访问的键值进行统计。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 如果是通过gs_guc set 方式设置参数,需要重启数据库使得GUC参数生效,重启数据库时会清理热点key信息。 当GUC参数关闭时,调用热点key查询结果将会返回空,并且提示GUC参数关闭。但是开关关闭时,热点key清理接口仍可以正常使用。 取值范围:布尔型 on表示开启计数功能。 off表示关闭计数功能。 默认值:off
  • 注意事项 在非阻塞连接上发送任何命令或数据之后,调用PQflush。如果返回1,则等待套接字变为读或写就绪。如果为写就绪状态,则再次调用PQflush。如果已经读到,调用PQconsumeInput,然后再次调用PQflush。重复,直到PQflush返回0。(必要检查读就绪并使用 PQconsumeInput 耗尽输入,因为服务器可能会阻止尝试向客户端发送数据(例如 NOTICE 消息),并且在客户端读取它的数据之前不会读取客户端的数据。)一旦PQflush返回0,就等待套接字准备好,然后按照上面描述读取响应。
  • GS_JOB_ARGUMENT GS_JOB_ARGUMENT系统表提供了DBE_SCHEDULER定时任务和程序的参数属性。 表1 GS_JOB_ARGUMENT字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 argument_position integer 定时任务或程序的参数位置。 argument_type name 定时任务或程序的参数类型。 job_name text 定时任务或程序名。 argument_name text 定时任务或程序的参数名(定时任务继承了程序的参数名,所以为空)。 argument_value text 定时任务的参数值(程序本身无法绑定值)。 default_value text 程序的参数默认值。 父主题: 系统表
  • MY_TAB_PARTITIONS MY_TAB_PARTITIONS视图显示当前用户下所有分区的信息。当前用户下每个分区表的每个分区都会在USER_TAB_PARTITIONS中有一条记录。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_TAB_PARTITIONS字段 名称 类型 描述 table_owner character varying(64) 分区表的所有者名称。 table_name character varying(64) 分区表的名称。 partition_name character varying(64) 分区的名称。 high_value text 分区的上边界。 tablespace_name name 分区的表空间名称。 schema character varying(64) 分区表的模式。 父主题: 系统视图
  • 注意事项 只有server的所有者或者被授予了server的ALTER权限的用户才可以执行ALTER SERVER命令,系统管理员默认拥有该权限。但要修改server的所有者,当前用户必须是该server的所有者或者系统管理员,且该用户是新所有者角色的成员。 OPTIONS中的敏感字段(如password、secret_access_key)在使用多层引号时,语义和不带引号的场景是不同的,因此不会被识别为敏感字段进行脱敏。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全