华为云用户手册

  • temp_buffers 参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。该参数可在PDB级别设置。 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。 参数类型:整型 参数单位:页(8kB) 取值范围:100 ~ 1073741823 默认值:128(即1MB)。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值100,表示temp_buffers为100*8kB,即800kB;带单位取值16MB,表示temp_buffers为16MB。取值如果要带单位,必须为kB、MB、GB,且取值必须为8kB的整数倍。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • bulk_read_ring_size 参数说明:执行大批量数据查询操作时(例如大表扫描),该操作使用的环形缓冲区的大小。该参数可在PDB级别设置。 参数类型:整型 参数单位:kB 取值范围:256 ~ 2147483647 默认值:16384(即16MB)。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值1024,表示bulk_read_ring_size为1024kB;带单位取值1MB,表示bulk_read_ring_size为1MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • bulk_write_ring_size 参数说明:执行大批量数据写入操作时(例如copy动作),该操作使用的环形缓冲区的大小。该参数可在PDB级别设置。 参数类型:整型 参数单位:kB 取值范围:16384 ~ 2147483647 默认值:2097152(即2GB)。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值16384,表示bulk_write_ring_size为16384kB;带单位取值16MB,表示bulk_write_ring_size为16MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:建议导入压力大的场景中增加数据库节点中此参数取值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_prepared_transactions 参数说明:设置可以同时处于“预备”状态的事务的最大数目。增加此参数的值会使 GaussDB 比系统默认设置需要更多的System V共享内存。 参数类型:整型 参数单位:无 取值范围:0 ~ 262143 默认值: 200(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);0(4核CPU/16G内存)
  • enable_cached_context 参数说明:控制缓存内存上下文的个数。多租场景下,该参数可在PDB级别设置。 参数类型:整型 参数单位:个 取值范围:0 ~ 1024 设置为0时内存上下文优化框架不生效。 设置为非0值时,内存上下文优化框架生效,设置的值为缓存内存上下文的个数。 默认值:128。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • page_version_recycler_thread_num 参数说明:控制回收和校验页面版本信息的线程数量,只在page_version_check取值不为OFF的情况下生效。 参数类型:整型 参数单位:个 取值范围:0 ~ 16 page_version_check参数值为memory时: 0:根据page_version_partitions自动计算,page_version_recycler_thread_num=page_version_partitions/16384。若自动计算结果大于4,则强制设置为4。 非0:将强制使用手动配置的数值。 不允许大于page_version_partitions,如果大于,则会被强制设置为page_version_partitions的值。 page_version_check参数值为persistence时: 小于2时将设置为2,大于等于2时强制使用手动配置的参数。 默认值:0 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • page_version_max_num 参数说明:内存中所能缓存的页面版本信息的最大数量,在page_version_check取值不为off的情况下生效。每个page_version内存占用36字节,请注意内存使用量。 参数类型:整型 参数单位:个 取值范围:0 ~ 2147483647。 0:根据shared_buffers大小自动计算,page_version_max_num=shared_buffers*2。例如,32M shared_buffers对应4096个buffer,所以页面版本信息数量设置为8192个。 非0:将强制使用手动配置的数值。不允许小于page_version_partitions的16倍,如果小于,则会被强制设置为page_version_partitions*16。 默认值:0 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:内存有限的情况下,合理的数量应该是shared_buffers数量的2倍到4倍。对性能有较高要求且内存足够的情况下,建议手动设置为shared_buffers数量的4倍以上,且与page_version_partitions的比值范围为[256, 1024]。 设置不当的风险与影响:如果设置的内存参数数值过大,超过物理内存上限,将会出现数据库由于无法申请到足够的内存而无法成功启动的情况。
  • page_version_partitions 参数说明:内存中缓存页面版本信息的哈希表分区数量,分区数量直接影响哈希查询效率和哈希冲突概率。仅在page_version_check取值不为off的情况下生效。 参数类型:整型 参数单位:个 取值范围:0 ~ 2097152 0:根据page_version_max_num自动计算,page_version_partitions=page_version_max_num/512。若自动计算结果小于4,则强制设置为4。 非0:将强制使用手动配置的数值。最小值为4,如果取值小于4,则会被强制设置为4。 默认值:0 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:对性能有较高要求的情况下,建议手动设置为page_version_max_num的256分之一到1024分之一左右。 设置不当的风险与影响:如果设置的分区数量太大,会降低哈希查询效率;设置的分区数量太小,会增加哈希冲突的概率。
  • verify_log_buffers 参数说明:控制verifyLog buffer大小,只在page_version_check取值为persistence的情况下生效。verifyLog buffer内存按页面管理,每页8kB。 参数类型:整型 参数单位:页(8kB) 取值范围:4 ~ 262144 默认值:4(即32kB) 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。例如,取值131072表示verify_log_buffers为131072 * 8 kB = 1GB;取值131072kB表示verify_log_buffers为131072kB。取值如果带单位,必须为kB、MB、GB,且必须为8kB整数倍。 设置建议:根据系统硬件规格,进行相应的设置。 1GB(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存);16MB(4核CPU/16G内存)。 设置不当的风险与影响:如果设置的内存参数数值过大,超过物理内存上限,将会出现数据库由于无法申请到足够的内存而无法成功启动的情况。
  • enable_memory_context_control 参数说明:设置是否启用检查内存上下文是否超过给定限制的功能。仅适用于DEBUG版本。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用最大内存上下文限制检查功能。 off:表示关闭最大内存上下文限制检查功能。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • huge_pages 参数说明:数据库共享内存的申请是否启用静态内存大页设置。 要启用静态内存大页功能,需要提前在操作系统内核中设置足够数量的静态内存大页资源以供申请,相关参数为vm.nr_hugepages和vm.nr_overcommit_hugepages,它会被设置在/etc/sysctl.conf文件中。 参数类型:字符串 参数单位:无 取值范围: on:表示启用静态内存大页申请,如果申请不到内存大页资源,则数据库启动失败。 off:表示不启用静态内存大页申请,申请普通共享内存。 try:尝试申请静态内存大页资源,如果申请失败,就申请普通共享内存。 默认值:try 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • page_version_check 参数说明:基于页面版本信息,进行底层存储故障校验和页面漏置脏校验的功能总开关,page_version_check是一个三级开关。其中,底层存储故障校验功能是检测从底层存储读取的页面是否为正确版本,防止磁盘掉电等故障情况导致的页面版本信息丢失;页面漏置脏校验功能是检测被修改页面是否忘记置脏,它有一个单独开关page_missing_dirty_check进行控制。 参数类型:枚举类型 参数单位:无 取值范围: off:表示完全关闭底层存储故障校验和页面漏置脏校验的功能开关。 memory:表示打开纯内存态的页面版本校验功能(即底层存储故障校验和页面漏置脏校验),页面版本信息只缓存在内存当中,重启丢失。 persistence:表示打开持久态的页面版本校验功能(即底层存储故障校验和页面漏置脏校验),页面版本信息会持久化到文件中,重启不丢失。 默认值:persistence 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据不同机器规格,建议如下设置:off(4核CPU/16GB内存、4核CPU/32GB内存、8核CPU/64GB内存);persistence(16核CPU/128GB内存、32核CPU/256GB内存、60核CPU/480GB内存、64核CPU/512GB内存、72核CPU/576GB内存、80核CPU/640GB内存、96核CPU/768GB内存、96核CPU/1024GB内存、104核CPU/1024GB内存、128核CPU/1024GB内存、196核CPU/1536GB内存)。 设置不当的风险与影响:开关设置为memory及persistence时,对性能有一定影响,机器规格越小,影响越大(参考:16核CPU/128GB内存,TPCC模型影响7%左右)。在系统需要频繁重启的场景下,建议设置为persistence,能够确保页面版本信息不丢失,但会进一步影响性能。
  • page_missing_dirty_check 参数说明:页面漏置脏校验的功能开关,检测被修改页面是否忘记置脏。page_missing_dirty_check受控于page_version_check,如果page_version_check设置为off,则page_missing_dirty_check设置为on时也不生效。 参数类型:布尔型 参数单位:无 取值范围: on:表示进行页面漏置脏校验。 off:表示不进行页面漏置脏校验。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议在测试场景中开启此开关,能够最大限度在非生产环境中排查出漏置脏代码BUG;在现网时默认关闭页面漏置脏,避免带来额外开销,进而影响性能。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • local_syscache_threshold 参数说明:单个session的系统缓存占用内存的最大值,当实际系统缓存大小超过该阈值时,会触发内存淘汰。如果参数enable_global_plancache已打开,则local_syscache_threshold设置值小于16MB时不会生效,此时为保证GPC生效,该参数取值最小为16MB。如果参数enable_global_syscache和enable_thread_pool已打开,则该参数描述的是当前线程和绑定到当前线程上的session缓存的总大小。该参数可在PDB级别设置。 参数类型:整型 参数单位:kB 取值范围:1024 ~ 524288 默认值: 32MB(196核CPU/1536G内存);16MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存,4核CPU/16G内存)。在PDB场景内,若未设置该参数,则默认值为16MB。
  • uncontrolled_memory_context 参数说明:启用检查内存上下文是否超过给定限制的功能时,设置不受此功能约束的内存上下文。仅适用于DEBUG版本。该参数可在PDB级别设置。 查询该参数时,会在参数值的最前面添加标题含义字符串“MmgrMemoryController white list:”。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_memory_limit 参数说明:设置是否启用逻辑内存管理模块。多租数据库特性(enable_mtd)需要开启该参数。 由于存在固定开销,即shared_buffers和元数据(大约200MB),若max_process_memory减去固定开销小于2GB,GaussDB会强制把enable_memory_limit设置为off。其中元数据是GaussDB内部使用的内存,和部分并发参数,如max_connections,thread_pool_attr,max_prepared_transactions等参数相关。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用逻辑内存管理模块。 off:表示不启用逻辑内存管理模块。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:当该值为off时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存过多,可能导致操作系统OOM问题。
  • max_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 参数类型:整型 参数单位:kB 取值范围:2097152 ~ 2147483647 默认值: 12GB 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置 设置建议:该参数的目的是尽可能保证OS的可靠性,不会因数据库内存膨胀导致节点OOM。数据库节点上该参数值需要根据OS物理内存及单节点部署主数据库节点个数决定,建议计算公式如下:(物理内存大小 - vm.min_free_kbytes) * 0.7 / 节点个数。这个公式中提到vm.min_free_kbytes,其含义是预留OS内存供内核使用,通常用作OS内核中通信收发内存分配,至少为5%内存,即max_process_memory = 物理内存 * 0.665 / 节点个数。 设置不当的风险与影响:若该值设置不合理,比如大于服务器物理内存时,可能导致操作系统OOM问题。 集中式(单节点1D)场景设置: 此典型场景设置是针对主推的规格经过专门的测试调优之后,给出的最优出口值配置,具体配置信息如表1所示。 表1 集中式设置 资源配置 推荐值 256C/2048G 1800GB 192C/1536G 1400GB 128C/1024G 900GB 104C/1024G 900GB 96C/1024G 900GB 96C/768G 680GB 80C/640G 560GB‬ 64C/512G 450GB 60C/480G 420GB 32C/256G 200GB 16C/128G 90GB 8C/64G 40GB 4C/32G 20GB 4C/16G 10GB
  • memorypool_size 参数说明:设置内存池大小。 参数类型:整型 参数单位:kB 取值范围:131072 ~ 1073741823 默认值:524288(即512MB) 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值131072,表示memorypool_size为131072kB;带单位取值128MB,表示memorypool_size为128MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 示例 EXEC SQL SET DESCRIPTOR indesc COUNT = 1; EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = 2; EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = :val1; EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val1, DATA = 'some string'; EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2null, DATA = :val2;
  • 示例 --创建用户jim,登录密码为********。 gaussdb=# CREATE USER jim PASSWORD '********'; --创建用户kim,登录密码为********。 gaussdb=# CREATE USER kim IDENTIFIED BY '********'; --创建用户tom,登录密码为********。 gaussdb=# CREATE USER TOM PASSWORD '**********'; --创建用户TOM,登录密码为********。 gaussdb=# CREATE USER "TOM" PASSWORD '**********'; --如果需要创建具有“创建数据库”权限的用户,则需要加CREATEDB关键字。 gaussdb=# CREATE USER dim CREATEDB PASSWORD '********'; --查看用户dim的权限。 gaussdb=# \du dim List of roles Role name | Attributes | Member of -----------+------------+----------- dim | Create DB | {} (可以看到用户dim具有CREATEDB的权限) --修改用户jim的登录密码。 gaussdb=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********'; --为用户jim追加CREATEROLE权限。 gaussdb=# ALTER USER jim CREATEROLE; --查看用户jim追加的CREATEROLE权限。 gaussdb=# \du jim List of roles Role name | Attributes | Member of -----------+-------------+----------- jim | Create role | {} --将enable_seqscan的值设置为on, 设置成功后,在下一会话中生效。 gaussdb=# ALTER USER jim SET enable_seqscan TO on; --重置jim的enable_seqscan参数。 gaussdb=# ALTER USER jim RESET enable_seqscan; --锁定jim账户。 gaussdb=# ALTER USER jim ACCOUNT LOCK; --解锁jim账户。 gaussdb=# ALTER USER jim ACCOUNT UNLOCK; --修改用户密码。 gaussdb=# ALTER USER dim WITH PASSWORD '********'; --修改用户名。 gaussdb=# ALTER USER dim RENAME TO lisa; --创建具有OPRADMIN权限的用户user1和具有SYSADMIN权限的用户user2。 gaussdb=# CREATE USER user1 WITH OPRADMIN PASSWORD '********'; gaussdb=# CREATE USER user2 WITH SYSADMIN PASSWORD '********'; --查看权限。 gaussdb=# \du user1 List of roles Role name | Attributes | Member of -----------+-----------------------------+----------- user1 | Operatoradmin | {} gaussdb=# \du user2 List of roles Role name | Attributes | Member of -----------+------------------------+----------- user2 | Sysadmin | {} --创建具有CREATEDB权限的角色user3。 gaussdb=# CREATE USER user3 CREATEDB PASSWORD '********'; CREATE ROLE --查看权限。 gaussdb=# \du user3 List of roles Role name | Attributes | Member of -----------+-------------------------+----------- user3 | Create DB | {} --使用ADMIN子句创建新角色user4。 gaussdb=# CREATE USER user4 WITH CREATEDB ADMIN user3 PASSWORD '********'; CREATE ROLE --查看权限。 gaussdb=# \du user3 List of roles Role name | Attributes | Member of -----------+-------------------------+----------- user3 | Create DB | {user4} gaussdb=# \du user4 List of roles Role name | Attributes | Member of -----------+-------------------------+----------- user4 | Create DB | {} --删除角色。 gaussdb=# DROP USER user1; gaussdb=# DROP USER user2; gaussdb=# DROP USER user3; gaussdb=# DROP USER user4; --三权分立配置:设置参数enableSeparationOfDuty为on,则会开启三权分立配置,限制系统管理员的权限。不允许系统管理员创建或更改用户配置,这样可以有效控制系统管理员访问用户私有数据。 --查看三权分立是否打开。 gaussdb=# SHOW enableSeparationOfDuty; enableSeparationOfDuty ------------------------ off (1 row) --执行以下语句修改参数。 gs_guc set -Z coordinator -Z datanode -N all -I all -c "enableSeparationOfDuty = on" --设置成功后,重启数据库生效。 gs_om -t stop gs_om -t start --再次查看三权分立。 gaussdb=# SHOW enableSeparationOfDuty; enableSeparationOfDuty ------------------------ on (1 row) --删除用户。 gaussdb=# DROP USER kim CASCADE; gaussdb=# DROP USER jim CASCADE; gaussdb=# DROP USER lisa CASCADE; gaussdb=# DROP USER TOM CASCADE; gaussdb=# DROP USER "TOM" CASCADE;
  • 语法格式 CREATE USER user_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE }; 其中option子句用于设置权限及属性等信息。 {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | { LOG IN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | 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
  • 时间间隔表达式 语法:INTERVAL EXPR UNIT 说明:EXPR表示数值,UNIT说明符用于解释数值的单位,如HOUR、DAY、WEEK等。关键字INTERVAL和说明符不区分大小写。 时间间隔表达式中UNIT的取值范围如下表1所示,允许任何标点符号分隔EXPR格式。表1中显示的是建议的分隔符。 INTERVAL表达式仅在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时,才支持上述功能。 表1 时间间隔表达式UNIT取值范围 UNIT 取值范围 预期 EXPR 格式 MICROSECOND MICROSECONDS SECOND SECONDS MINUTE MINUTES HOUR HOURS DAY DAYS WEEK WEEKS MONTH MONTHS QUARTER QUARTERS YEAR YEARS SECOND_MICROSECOND 'SECOND_MICROSECOND' MINUTE_MICROSECOND 'MINUTES:SECONDS.MICROSECONDS' MINUTE_SECOND 'MINUTES:SECONDS' HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS' HOUR_SECOND 'HOURS:MINUTES:SECONDS' HOUR_MINUTE 'HOURS:MINUTES' DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS' DAY_MINUTE 'DAYS HOURS:MINUTES' DAY_HOUR 'DAYS HOURS' YEAR_MONTH 'YEAR_MONTH' 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 gaussdb=# SELECT DATE_ADD('2018-05-01', INTERVAL 1 DAY); date_add ------------ 2018-05-02 (1 row) gaussdb=# SELECT DATE_SUB('2018-05-01', INTERVAL 1 YEAR); date_sub ------------ 2017-05-01 (1 row) gaussdb=# SELECT DATE'2023-01-10' - INTERVAL 1 DAY; ?column? --------------------- 2023-01-09 00:00:00 (1 row) gaussdb=# SELECT DATE'2023-01-10' + INTERVAL 1 MONTH; ?column? --------------------- 2023-02-10 00:00:00 (1 row) 父主题: 表达式
  • 示例 示例:调用系统函数。 gaussdb=# EXPLAIN SELECT * FROM generate_series(2,4); QUERY PLAN ------------------------------------------------------------------------ Function Scan on generate_series (cost=0.00..10.00 rows=1000 width=4) (1 row) 上述示例中,Function Scan算子输出信息如下所示。 信息名称 含义 Function Scan 算子的名称。
  • GS_SESSION_STAT GS_SESSION_STAT视图以会话线程或AutoVacuum线程为单位,显示会话状态信息。 表1 GS_SESSION_STAT字段 名称 类型 描述 sessid text 线程标识+线程启动时间。 statid integer 统计会话编号。 statname text 统计会话名称。 statunit text 统计会话单位。 value bigint 统计会话值。 父主题: 其他系统视图
  • DBE_PLDEBUGGER.print_var debug端调试过程中,调用print_var,打印当前存储过程内变量中指定的变量名及其取值,也可在报错断住时,使用此函数来打印变量,如表1所示。该函数入参frameno表示查询遍历的栈层数,支持不加入该参数调用,缺省为查看最上层栈变量。 表1 print_var入参和返回值列表 名称 类型 描述 var_name IN text 变量。 frameno IN integer(可选) 指定的栈层数,缺省为最顶层。 varname OUT text 变量名。 vartype OUT text 变量类型。 value OUT text 变量值。 package_name OUT text 变量对应的package名,预留使用,当前均为空。 isconst OUT boolean 是否为常量。 父主题: DBE_PLDEBUGGER Schema
  • 注意事项 在公有云场景下一般不建议用户使用自定义的表空间。用户自定义表空间通常配合主存(即默认表空间所在的存储设备,如磁盘)以外的其它存储介质使用,以隔离不同业务可以使用的I/O资源,而在公有云场景下,存储设备都是采用标准化的配置,无其它可用的存储介质,自定义表空间使用不当不利于系统长久稳定运行以及影响整体性能,因此建议使用默认表空间即可。 在主备环境下,创建表空间时不允许指定备机上权限不足的文件系统目录。
  • 操作步骤 创建表空间。 执行如下命令创建用户为jack,密码为********。 1 gaussdb=# CREATE USER jack IDENTIFIED BY '********'; 当结果显示为如下信息,则表示创建成功。 1 CREATE ROLE 执行如下命令创建表空间。 1 gaussdb=# CREATE TABLESPACE fastspace RELATIVE LOCATION 'tablespace/tablespace_1'; 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLESPACE 其中“fastspace”为新创建的表空间,“数据库节点数据目录/pg_location/tablespace/tablespace_1”是用户拥有读写权限的空目录。 数据库系统管理员执行如下命令将“fastspace”表空间的访问权限授予数据用户jack。 1 gaussdb=# GRANT CREATE ON TABLESPACE fastspace TO jack; 当结果显示为如下信息,则表示授予成功。 1 GRANT 在表空间中创建对象。 如果用户拥有表空间的CREATE权限,就可以在表空间上创建数据库对象,比如:表和索引等。 在表空间中创建对象有以下两种方式,以创建表为例。 执行如下命令在指定表空间创建表。 1 gaussdb=# CREATE TABLE foo(i int) TABLESPACE fastspace; 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLE 先使用SET default_tablespace设置默认表空间,再创建表。 1 2 3 4 5 --- 假设设置“fastspace”为默认表空间,然后创建表foo2。 gaussdb=# SET default_tablespace = 'fastspace'; SET gaussdb=# CREATE TABLE foo2(i int); CREATE TABLE 查询表空间。 可通过以下两种方式查询表空间。 检查pg_tablespace系统表。执行如下命令可查到系统和用户定义的全部表空间。 1 gaussdb=# SELECT spcname FROM pg_tablespace; 使用gsql程序的元命令查询表空间。 gaussdb=# \db 查询表空间使用率。 查询表空间的当前使用情况。 1 gaussdb=# SELECT pg_tablespace_size('fastspace'); 返回如下信息: 1 2 3 4 pg_tablespace_size -------------------- 2146304 (1 row) 其中2146304表示表空间的大小,单位为字节。 计算表空间使用率。 表空间使用率=pg_tablespace_size/表空间所在目录的磁盘大小。 修改表空间命名。 执行如下命令对表空间fastspace重命名为fspace。 1 2 gaussdb=# ALTER TABLESPACE fastspace RENAME TO fspace; ALTER TABLESPACE 删除表空间。 执行如下命令删除用户jack。 1 2 gaussdb=# DROP USER jack CASCADE; DROP ROLE 执行如下命令删除表foo和foo2。 1 2 gaussdb=# DROP TABLE foo; gaussdb=# DROP TABLE foo2; 当结果显示为如下信息,则表示删除成功。 1 DROP TABLE 执行如下命令删除表空间fspace。 1 2 gaussdb=# DROP TABLESPACE fspace; DROP TABLESPACE 用户必须是表空间的owner或者系统管理员才能删除表空间。
  • 背景信息 通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。这样有以下优点: 如果初始化数据库所在的分区或者表空间已满,又不能逻辑上扩展更多空间,可以在不同的分区上创建和使用表空间,直到系统重新配置空间。 表空间允许管理员根据数据库对象的使用模式安排数据位置,从而提高性能。 一个频繁使用的索引可以存储在性能稳定且运算速度较快的磁盘上,比如一种固态设备。 一个存储归档的数据,很少使用的或者对性能要求不高的表可以存储在一个运算速度较慢的磁盘上。 管理员通过表空间可以设置占用的磁盘空间,用以在和其他数据共用分区的时候,防止表空间占用相同分区上的其他空间。 表空间可以控制数据库数据占用的磁盘空间。当表空间所在磁盘的使用率达到cm_server参数datastorage_threshold_value_check时,数据库将被设置为只读模式,当磁盘使用率降到cm_server参数datastorage_threshold_value_check以下时,数据库将恢复到读写模式。 建议用户使用数据库时,通过后台监控程序或者Database Manager进行磁盘空间使用率监控,以免出现数据库只读情况。 表空间对应于一个文件系统目录,比如“数据目录/pg_location/mount1/path1”是用户拥有读写权限的空目录,那么可以在这个目录下创建一个绝对路径表空间。 使用表空间配额管理会使性能有30%左右的影响,MAXSIZE指定每个数据库节点的配额大小,误差范围在500MB以内。请根据实际的情况确认是否需要设置表空间的最大值。 GaussDB自带了两个表空间:pg_default和pg_global。 默认表空间pg_default:用来存储非共享系统表、用户表、用户表index、临时表、临时表index、内部临时表的默认表空间。对应存储目录为实例数据目录下的base目录。 共享表空间pg_global:用来存放共享系统表的表空间。对应存储目录为实例数据目录下的global目录。
  • GLOBAL_INSTANCE_TIME 提供数据库中所有正常节点下的各种时间消耗信息,如表1所示。 表1 GLOBAL_INSTANCE_TIME字段 名称 类型 描述 node_name name 节点名称。 stat_id integer 统计编号。 stat_name text 类型名称。见INSTANCE_TIME视图。 value bigint 时间值(单位:微秒)。 父主题: Instance
  • 数据库事务正确执行的四个特性是什么? 答:数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)正确执行,必须具备的四个特性ACID,Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)。 Atomicity(原子性):又称为不可分割性。一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。 Isolation(隔离性):又称为独立性。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。 Durability(持久性):事务处理结束后,对数据的修改是永久的,即便系统故障也不会丢失。 父主题: FAQ
共100000条
提示

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