华为云用户手册

  • replconninfo1 参数说明:设置本端侦听和鉴权的第一个节点信息。集群安装成功后自动配置无需手动修改。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。其中空字符串表示没有配置第一个节点信息。 默认值:DN侦听的第一个连接信息。 示例: replconninfo1 = 'localhost=127.0.0.1 localport=XXXX localheartbeatport=XXXX localservice=XXXX remotehost=127.0.0.1 remoteport=XXXX remoteheartbeatport=XXXX remoteservice=XXXX'
  • replconninfo3 参数说明:设置本端侦听和鉴权的第三个节点信息。集群安装成功后自动配置无需手动修改。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。其中空字符串表示没有配置第三个节点信息。 默认值:DN侦听的第三个连接信息。 示例: replconninfo3 = 'localhost=127.0.0.1 localport=XXXX localheartbeatport=XXXX localservice=XXXX remotehost=127.0.0.1 remoteport=XXXX remoteheartbeatport=XXXX remoteservice=XXXX'
  • replconninfo5 参数说明:设置本端侦听和鉴权的第五个节点信息。集群安装成功后自动配置无需手动修改。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。其中空字符串表示没有配置第五个节点信息。 默认值:DN侦听的第五个连接信息。 示例: replconninfo5 = 'localhost=127.0.0.1 localport=XXXX localheartbeatport=XXXX localservice=XXXX remotehost=127.0.0.1 remoteport=XXXX remoteheartbeatport=XXXX remoteservice=XXXX'
  • repl_auth_mode 参数说明:设置主备复制和备机重建的验证模式。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果主机上开启了UUID验证功能、且配置了非空字符串的repl_uuid验证码,那么备机也需要开启UUID验证功能、且配置相同的repl_uuid验证码,否则主备日志复制和备机重建请求将被主机拒绝。 该参数支持SIGHUP动态加载新值。修改之后不影响已建连的主备连接,对后续主备复制请求和主备重建请求生效。 支持Quorum、DCF协议下的备机重建验证;支持Quorum协议下的主备复制验证;不支持DCF协议下的主备复制验证。 不支持跨集群主、备之间的认证,包括Dorado主备集群和容灾主备集群。 UUID验证功能主要为了防止主、备误连导致的数据串扰和污染,不是用于安全目的。 该参数不支持主、备间自动同步。 取值范围:枚举类型 off:表示关闭UUID验证功能。 default:表示关闭UUID验证功能。 uuid:表示开启UUID验证功能。 默认值:default
  • repl_uuid 参数说明:设置用于主备UUID验证的UUID码。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果主机上开启了UUID验证功能、且配置了非空字符串的repl_uuid验证码,那么备机也需要开启UUID验证功能、且配置相同的repl_uuid验证码,否则主备日志复制和备机重建请求将被主机拒绝。 该参数支持SIGHUP动态加载新值。修改之后,不影响已建连的主备连接,对后续主备复制请求和主备重建请求生效。 支持Quorum、DCF协议下的备机重建验证;支持Quorum协议下的主备复制验证;不支持DCF协议下的主备复制验证。 不支持跨集群主、备之间的认证,包括Dorado主备集群和容灾主备集群。 UUID验证功能主要为了防止主、备误连导致的数据串扰和污染,不是用于安全目的。 该参数不支持主、备间自动同步。 取值范围:字符串类型。长度0~63个字符,字母和数字的组合,大小写不敏感,内部统一转换为小写存储。空字符串表示不启用UUID验证功能。 默认值:空字符串
  • replconninfo2 参数说明:设置本端侦听和鉴权的第二个节点信息。集群安装成功后自动配置无需手动修改。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。其中空字符串表示没有配置第二个节点信息。 默认值:DN侦听的第二个连接信息。 示例: replconninfo2 = 'localhost=127.0.0.1 localport=XXXX localheartbeatport=XXXX localservice=XXXX remotehost=127.0.0.1 remoteport=XXXX remoteheartbeatport=XXXX remoteservice=XXXX'
  • max_replication_slots 参数说明:设置主机端的日志复制slot个数。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0 ~ 1024(建议取值范围:8 ~ 100) 默认值:20 设置建议: 当使用双机复制、备份恢复、逻辑解码时,该参数值建议设为:当前物理流复制槽数+备份槽数+所需的逻辑复制槽数。 如果实际设置值比上述建议值小,可能造成这些功能不可用或异常。 物理流复制槽提供了一种自动化的方法来确保主DN在所有备DN收到xLog之前,xLog不会被移除。也就是说物理流复制槽用于支撑集群HA。集群所需要的物理流复制槽数为:一组DN中,备和与主DN之间的比例。例如,假设集群的DN高可用方案为1主、2备,则所需物理流复制槽数为2。又例如,假设集群的DN高可用方案为1主3备,则所需物理流复制槽数为3。 备份槽:记录备份执行过程中的一些复制信息,全量备份和增量备份各自对应单独的备份槽,共2个。 关于逻辑复制槽数,请按如下规则考虑。 一个逻辑复制槽只能解码一个Database的修改,如果需要解码多个Database,则需要创建多个逻辑复制槽。 如果需要多路逻辑复制同步给多个目标数据库,在源端数据库需要创建多个逻辑复制槽,每个逻辑复制槽对应一条逻辑复制链路。
  • enable_wal_shipping_compression 参数说明:在流式容灾模式下设置启动跨集群日志压缩功能。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 该参数仅作用于流式容灾中跨集群传输的一对walsender与walreceiver中,在主集群上配置。 取值范围:布尔型 true 表示打开流式容灾跨集群日志压缩 false 表示关闭流式容灾跨集群日志压缩 默认值:false
  • replconninfo4 参数说明:设置本端侦听和鉴权的第四个节点信息。集群安装成功后自动配置无需手动修改。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。其中空字符串表示没有配置第四个节点信息。 默认值:DN侦听的第四个连接信息。 示例: replconninfo4 = 'localhost=127.0.0.1 localport=XXXX localheartbeatport=XXXX localservice=XXXX remotehost=127.0.0.1 remoteport=XXXX remoteheartbeatport=XXXX remoteservice=XXXX'
  • max_wal_senders 参数说明:指定事务日志发送进程的并发连接最大数量。不可大于等于max_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 wal_level必须设置为archive、hot_standby或者logical以允许备机的连接。 取值范围:整型,0 ~ 1024(建议取值范围:8 ~ 100) 只有当使用单DN实例无主备场景下才可以设置0。 默认值: 设置建议:每个备机与主机的日志复制连接均会占用一个walsender线程,因此此参数务必大于等于DN数量,否则会导致备机无法连接主机。当有逻辑复制需求时,每个日志抽取线程会占用一个walsender线程,有逻辑复制时需要设置max_wal_senders大于备机+逻辑复制抽取线程的数量。
  • wal_keep_segments 参数说明:“pg_xlog”目录下保留事务日志文件的最小数目。备机通过获取主机此处的日志进行流复制。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,2 ~ INT_MAX 默认值:128 设置建议: 当服务器开启日志归档或者从检查点恢复时,保留的日志文件数量可能大于wal_keep_segments设定的值。 如果此参数设置过小,则在备机请求事务日志时,此事务日志可能已经被产生的新事务日志覆盖,导致请求失败,主备关系断开。 当双机为异步传输时,以COPY方式连续导入4G以上数据需要增大wal_keep_segments配置。以T6000单板为例,如果导入数据量为50G,建议调整参数为1000。您可以在导入完成并且日志同步正常后,动态恢复此参数设置。
  • wal_sender_timeout 参数说明:设置本端等待事务日志接收端接收日志的最大等待时间。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果主机数据较大,重建操作需要增大此参数的值,主机数据在500GB时,此参数的参考值为600s。 此值不能大于wal_receiver_timeout或数据库重建时的超时参数。 取值范围:整型,0 ~ 2147483647‬,单位为毫秒(ms)。 默认值:6s
  • recovery_redo_workers 参数说明:是极致RTO特性中每个ParseRedoRecord线程对应的PageRedoWorker数量。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1~8 需要配合recovery_parse_workers使用。在配合recovery_parse_workers使用时,只有recovery_parse_workers大于1,recovery_redo_workers参数才生效。 默认值:1 从V500R001C00版本升级到V500R001C10及其后续版本后,建议根据环境的CPU个数进行参数设置,并重启DN。CPU个数小于16个,建议设置成2;大于16小于32个,建议设置成4;大于32个,建议设置成8。
  • recovery_time_target 参数说明:设置recovery_time_target秒能够让备机完成日志写入和回放。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~3600(秒) 0是指不开启日志流控,1~3600是指备机能够在recovery_time_target时间内完成日志的写入和回放,可以保证主机与备机切换时能够在recovery_time_target秒完成日志写入和回放,保证备机能够快速升主机。recovery_time_target设置时间过小会影响主机的性能,设置过大会失去流控效果。 默认值:60
  • redo_bind_cpu_attr 参数说明:用于控制回放线程的绑核操作,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 可选择的配置方式有:1. 'nobind' ,线程不做绑核;2. 'nodebind: 1, 2',利用NUMA组1,2中的CPU core进行绑核;3. 'cpubind: 0-30',利用0-30号CPU core进行绑核。该参数不区分大小写。 默认值:'nobind' 本参数主要用于arm环境下的绑核操作。推荐将所有的回放线程绑定到一个numa组内,性能会更好,针对混合部署的场景,推荐将同一个机器上的不同节点的回放线程绑定到不同的numa组。
  • 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中调大该值。
  • 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的值,否则会设置不生效。
  • 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问题。
  • 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_prepared_transactions 参数说明:设置可以同时处于"预备"状态的事务的最大数目。增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存。 当GaussDB部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~262143。 默认值: 独立部署: 1200(60核CPU/480G内存,32核CPU/256G内存);800(16核CPU/128G内存);400(8核CPU/64G内存);300(4核CPU/32G内存);200(4核CPU/16G内存) 金融版(标准型): CN:900(128核CPU/1024G内存,104核CPU/1024G内存);800(96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存):400(32核CPU/256G内存,16核CPU/128G内存);200(8核CPU/64G内存) DN:4200(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存):2200(32核CPU/256G内存);1200(16核CPU/128G内存);800(8核CPU/64G内存) 企业版: CN:900(128核CPU/1024G内存,104核CPU/1024G内存);800(96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存);400(32核CPU/256G内存,16核CPU/128G内存);200(8核CPU/64G内存) DN:1800(128核CPU/1024G内存,104核CPU/1024G内存);1200(96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存):800(32核CPU/256G内存);400(16核CPU/128G内存,8核CPU/64G内存) 金融版(数据计算型): CN:800(96核CPU/768G内存);400(72核CPU/576G内存,64核CPU/512G内存);200(32核CPU/256G内存) DN:2400(96核CPU/768G内存);1200(72核CPU/576G内存);800(64核CPU/512G内存);400(32核CPU/256G内存) 为避免在准备步骤失败,线程池模式下此参数的值应大于thread_pool_attr中工作线程个数,非线程池模式下此参数的值不能小于max_connections。
  • 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
  • 操作步骤 使用如下命令连接数据库,具体操作请参考通过gsql连接实例章节。 gsql -d postgres -p 8000 postgres为需要连接的数据库名称,8000为CN的端口号。 连接成功后,系统显示类似如下信息: gsql((GaussDB Kernel VxxxRxxxCxx build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=# 查看数据库运行参数当前取值。 方法一:使用SHOW命令。 使用如下命令查看单个参数: 1 openGauss=# SHOW server_version; server_version显示数据库版本信息的参数。 使用如下命令查看所有参数: 1 openGauss=# SHOW ALL; 方法二:使用pg_settings视图。 使用如下命令查看单个参数: 1 openGauss=# SELECT * FROM pg_settings WHERE NAME='server_version'; 使用如下命令查看所有参数: 1 openGauss=# SELECT * FROM pg_settings;
  • CM错误信息 ER RMS G: "Fail to access the cluster static config file." SQLSTATE: c3000 CAUSE: "The cluster static config file is not generated or is manually deleted." ACTION: "Please check the cluster static config file." ERRMSG: "Fail to open the cluster static file." SQLSTATE: c3000 CAUSE: "The cluster static config file is not generated or is manually deleted." ACTION: "Please check the cluster static config file." ERRMSG: "Fail to read the cluster static file." SQLSTATE: c3001 CAUSE: "The cluster static file permission is insufficient." ACTION: "Please check the cluster static config file." ERRMSG: "Failed to read the static config file." SQLSTATE: c1000 CAUSE: "out of memeory." ACTION: "Please check the system memory and try again." ERRMSG: "Could not find the current node in the cluster by the node id %u." SQLSTATE: c3002 CAUSE: "The static config file probably contained content error." ACTION: "Please check static config file." ERRMSG: "Failed to open the logic config file." SQLSTATE: c3000 CAUSE: "The logic config file is not generated or is manually deleted." ACTION: "Please check the cluster static config file." ERRMSG: "Fail to read the logic static config file." SQLSTATE: c3001 CAUSE: "The logic static config file permission is insufficient." ACTION: "Please check the logic static config file." ERRMSG: "Failed to open or read the static config file." SQLSTATE: c1000 CAUSE: "out of memeory." ACTION: "Please check the system memory and try again." ERRMSG: "Failed to open the log file '%s'." SQLSTATE: c3000 CAUSE: "Log file not found." ACTION: "Please check the log file." ERRMSG: "Failed to open the log file '%s'." SQLSTATE: c3000 CAUSE: "The log file permission is insufficient." ACTION: "please check the log file." ERRMSG: "Failed to open the dynamic config file '%s'." SQLSTATE: c3000 CAUSE: "The dynamic config file permission is insufficient." ACTION: "Please check the dynamic config file." ERRMSG: "Failed to malloc memory, size = %lu." SQLSTATE: c1000 CAUSE: "out of memeory." ACTION: "Please check the system memory and try again." ERRMSG: "unrecognized AZ name '%s'." SQLSTATE: c3000 CAUSE: "The parameter(%s) entered by the user is incorrect." ACTION: "Please check the parameter entered by the user and try again." ERRMSG: "unrecognized minorityAz name '%s'." SQLSTATE: c3000 CAUSE: "The parameter(%s) entered by the user is incorrect." ACTION: "Please check the parameter entered by the user and try again." ERRMSG: "Get GAUSSHOME failed." SQLSTATE: c3000 CAUSE: "The environment variable('GAUSSHOME') is incorrectly configured." ACTION: "Please check the environment variable('GAUSSHOME')." ERRMSG: "Get current user name failed." SQLSTATE: c3000 CAUSE: "N/A" ACTION: "Please check the environment." ERRMSG: "-B option must be specified." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-T option must be specified.\n" SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "can't stop one node or instance with -m normal." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "can't stop one node or instance with -m resume." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "can't stop one availability zone with -m resume." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "log level or cm server arbitration mode must be specified." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "log level or cm server arbitration mode need not be specified." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-R is needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-D is needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n and -R are needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n and -D are needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "no operation specified." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "no cm directory specified." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "Please check the usage of switchover." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n and -z cannot be specified at the same time." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-m cannot be specified at the same time with -n or -z." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n node(%d) is invalid." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n node is needed." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "%s: -C is needed." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-z value must be 'ALL' when query mppdb cluster." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-v is needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-C is needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-Cv is needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-L value must be 'ALL' when query logic cluster." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "unrecognized LC name '%s'." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n is needed." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "There is no '%s' information in cluster." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-D path is too long.\n" SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-D path is invalid." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-n node(%s) is invalid." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-R only support when the cluster is single-inst." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-t time is invalid." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "-votenum is invalid." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "unrecognized build mode." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "unrecognized build mode '%s'." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "too many command-line arguments (first is '%s')." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "unrecognized operation mode '%s'." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "no cm directory specified." SQLSTATE: c3000 CAUSE: "%s: The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "Failed to malloc memory." SQLSTATE: c1000 CAUSE: "out of memeory." ACTION: "Please check the system memory and try again." ERRMSG: "Failed to open etcd: %s." SQLSTATE: c4000 CAUSE: "Etcd is abnoraml." ACTION: "Please check the Cluster Status and try again." ERRMSG: "[PATCH-ERROR] hotpatch command or path set error." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "no standby datanode in single node cluster." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "restart logic cluster failed." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "restart logic cluster failed" SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." ERRMSG: "The option parameter is not specified." SQLSTATE: c3000 CAUSE: "The cmdline entered by the user is incorrect." ACTION: "Please check the cmdline entered by the user(%s)." 父主题: 错误日志信息参考
  • 不支持场景 物化视图中不支持带Stream计划,多表join连接计划以及subquery计划。 除少部分ALTER操作外,不支持对物化视图中基表做绝大多数DDL操作。 创建物化视图不可指定物化视图分布列。 不可对物化视图做增删改操作,只支持查询语句。 不支持用临时表/hashbucket/unlog/分区表创建物化视图,只支持hash分布表。 不支持物化视图嵌套创建(物化视图上创建物化视图)。 仅支持行存表。 不支持UN LOG GED类型的物化视图,不支持WITH语法。
  • 语法格式 创建全量物化视图 CREATE MATERIALIZED VIEW [ view_name ] AS { query_block }; 全量刷新物化视图 REFRESH MATERIALIZED VIEW [ view_name ]; 删除物化视图 DROP MATERIALIZED VIEW [ view_name ]; 查询物化视图 SELECT * FROM [ view_name ];
  • 示例 -- 准备数据 CREATE TABLE t1(c1 int, c2 int); INSERT INTO t1 VALUES(1, 1); INSERT INTO t1 VALUES(2, 2); -- 创建全量物化视图 openGauss=# CREATE MATERIALIZED VIEW mv AS select count(*) from t1; CREATE MATERIALIZED VIEW -- 查询物化视图结果 openGauss=# SELECT * FROM mv; count ------- 2 (1 row) -- 再次向物化视图中基表插入数据 openGauss=# INSERT INTO t1 VALUES(3, 3); -- 对全量物化视图做全量刷新 openGauss=# REFRESH MATERIALIZED VIEW mv; REFRESH MATERIALIZED VIEW -- 查询物化视图结果 openGauss=# SELECT * FROM mv; count ------- 3 (1 row) -- 删除物化视图 openGauss=# DROP MATERIALIZED VIEW mv; DROP MATERIALIZED VIEW
共100000条