华为云用户手册

  • 运维管理员 运维管理员是指具有OPRADMIN属性的账户,具有使用Roach工具执行备份恢复的权限。 要创建新的运维管理员,请以初始用户身份连接数据库,并使用带OPRADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 openGauss=# CREATE USER opradmin WITH OPRADMIN password "********"; 或者 1 openGauss=# ALTER USER joe OPRADMIN; ALTER USER时,要求用户已存在。
  • 安全管理员 安全管理员是指具有CREATEROLE属性的账户,具有创建、修改、删除用户或角色的权限,和赋予或者撤销任何非系统管理员、内置角色、永久用户和运维管理员的权限。 要创建新的安全管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库。三权分立打开时,请以安全管理员身份连接数据库,并使用带CREATEROLE选项的CREATE USER语句或 ALTER USER语句进行设置。 1 openGauss=# CREATE USER createrole WITH CREATEROLE password "********"; 或者 1 openGauss=# ALTER USER joe CREATEROLE; ALTER USER时,要求用户已存在。
  • 初始用户 集群安装过程中自动生成的账户称为初始用户。初始用户也是系统管理员、安全管理员、审计管理员、监控管理员、运维管理员和安全策略管理员,拥有系统的最高权限,能够执行所有的操作。如果安装时不设置初始用户名称,则该账户与进行集群安装的操作系统用户同名。如果在安装集群时不设置初始用户的密码,安装完成后密码为空,在执行其他操作前需要通过gsql客户端设置初始用户的密码。如果初始用户密码为空,则除修改密码外,无法执行其他SQL操作以及升级、扩容、节点替换等操作。 初始用户会绕过所有权限检查。建议仅将此初始用户作为DBA管理用途,而非业务应用。
  • 系统管理员 系统管理员是指具有SYSADMIN属性的账户,默认安装情况下具有与对象所有者相同的权限,但不包括dbe_perf模式的对象权限和使用Roach工具执行备份恢复的权限。 要创建新的系统管理员,请以初始用户或者系统管理员用户身份连接数据库,并使用带SYSADMIN选项的CREATE USER语句或ALTER USER语句进行设置。 1 openGauss=# CREATE USER sysadmin WITH SYSADMIN password "********"; 或者 1 openGauss=# ALTER USER joe SYSADMIN; ALTER USER时,要求用户已存在。
  • 审计管理员 审计管理员是指具有AUDITADMIN属性的账户,具有查看和删除审计日志的权限。 要创建新的审计管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库。三权分立打开时,只能以初始用户身份连接数据库,并使用带AUDITADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 openGauss=# CREATE USER auditadmin WITH AUDITADMIN password "********"; 或者 1 openGauss=# ALTER USER joe AUDITADMIN; ALTER USER时,要求用户已存在。
  • 监控管理员 监控管理员是指具有MONADMIN属性的账户,具有查看dbe_perf模式下视图和函数的权限,亦可以对dbe_perf模式的对象权限进行授予或收回。 要创建新的监控管理员,请以系统管理员身份连接数据库,并使用带MONADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 openGauss=# CREATE USER monadmin WITH MONADMIN password "********"; 或者 1 openGauss=# ALTER USER joe MONADMIN; ALTER USER时,要求用户已存在。
  • enable_default_cfunc_libpath 参数说明:设置 GaussDB 创建C函数时的so文件是否使用默认路径。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:代表创建C函数时,so文件必须放在指定的目录($libdir/proc_srclib)下。 off:代表创建C函数时,so文件可以放在任意可访问的目录下。 默认值:on 参数设置成off时,.so文件可以放在任意可访问的目录下或使用系统自带的.so,存在安全风险,不建议使用。
  • 操作步骤 连接数据库。 查看数据库运行参数当前取值。 方法一:使用SHOW命令。 使用如下命令查看单个参数: 1 gaussdb=# SHOW server_version; server_version显示数据库版本信息的参数。 使用如下命令查看所有参数: 1 gaussdb=# SHOW ALL; 方法二:使用pg_settings视图。 使用如下命令查看单个参数: 1 gaussdb=# SELECT * FROM pg_settings WHERE NAME='server_version'; 使用如下命令查看所有参数: 1 gaussdb=# SELECT * FROM pg_settings;
  • GS_WORKLOAD_RULE_STAT GS_WORKLOAD_RULE_STAT系统视图记录SQL限流规则相关的信息。只有具有sysadmin权限的用户才可以访问此系统视图。 表1 GS_WORKLOAD_RULE_STAT字段 名称 类型 描述 rule_id bigint 限流规则ID。 rule_name name 限流规则的名称,用于检索限流规则。 databases name[] 限流规则作用的数据库列表,为NULL表示对所有库生效。 rule_type text 限流规则类型,当前仅支持:“sqlid”、“select”、“insert”、“update”、“delete”、“merge”、“resource”,其他取值为非法值。 start_time timestamp with time zone 限流规则开始的时间,为NULL表示从现在开始生效。 end_time timestamp with time zone 限流规则结束的时间,为NULL表示一直生效。 max_workload bigint 限制规则设置的最大并发数。 option_val text[] 限流规则的参数值,包括:sqlid,关键字列表,资源限制情况。 详细请参见gs_add_workload_rule接口说明。 is_valid boolean 限流规则是否生效,超时的限流规则会设为false。 validate_count bigint 限流规则拦截SQL的次数。 node_names text[] 预留字段,限流规则生效的节点名称列表,当前不生效。 user_names text[] 预留字段,限流规则生效的用户名称列表,当前不生效。 父主题: 系统视图
  • GS_GLOBAL_ARCHIVE_STATUS GS_GLOBAL_ARCHIVE_STATUS视图描述CN和所有分片的归档进度,获取分片名称(node_name)、归档位置(restart_lsn)、实际进行归档的主/备机名称(archive_node)和当前日志位置(current_xlog_location)。查询此视图需要数据库开启归档功能,并从CN节点进行查询,需要monitor admin和sysadmin权限。 表1 GS_GLOBAL_ARCHIVE_STATUS字段 名称 类型 描述 node_name text 分片名称。 restart_lsn text 归档位置。 archive_node text 实际进行归档的主/备机名称。 current_xlog_location text 当前日志位置。 父主题: 系统视图
  • GS_WORKLOAD_RULE GS_WORKLOAD_RULE系统表存储与SQL限流规则相关的信息。该系统表没有权限限制,所有用户可查询。 表1 GS_WORKLOAD_RULE字段 名称 类型 描述 rule_id bigint 限流规则标识列,系统自动生成。 rule_name name 限流规则的名称,用于检索限流规则,不保证唯一性,可以为NULL。 databases name[] 限流规则作用的数据库列表,为NULL表示所有库生效。 max_workload bigint 限制规则设置的最大并发数。 is_valid boolean 限流规则是否生效,超时的限流规则会设为false。 start_time timestamp with time zone 限流规则开始的时间,为NULL表示从现在开始生效。 end_time timestamp with time zone 限流规则结束的时间,为NULL表示一直生效。 rule_type text 限流规则类型,当前仅支持:“sqlid”、“select”、“insert”、“update”、“delete”、“merge”、“resource”,其他的为非法值。 option_val text[] 限流规则的参数值,包括:sqlid,关键字列表,资源限制情况。 详细请参见gs_add_workload_rule接口说明。 node_names text[] 预留字段,限流规则生效的节点名称列表,当前不生效。 user_names text[] 预留字段,限流规则生效的用户名称列表,当前不生效。 父主题: 系统表
  • 参数说明 name 要创建的外部数据封装器的名字 HADNLER handler_function handler_function是先前已经注册了的函数的名字,用来为外部表检索执行函数。 处理器函数必须没有参数,并且它的返回类型必须为fdw_handler。 不用处理器函数创建外部数据封装器是可能的,但是使用这种封装器的外部表只能被声明,不能被访问。 VALIDATOR validator_function validator_function 是先前已经注册了的函数的名字用来检查提供给外部数据封装器的通用选项, 还有使用该外部数据封装器的外部服务器、用户映射和外部表的选项。 如果没有验证器函数或声明了NO VALIDATOR, 那么在创建时将不检查选项。(外部数据封装器可能在运行时忽略或拒绝无效的选项说明, 取决于实现。)验证器函数必须接受两个参数:一个类型为text[], 将包含存储在系统目录中的选项的数组,一个类型为oid, 是包含这些选项的系统目录的OID。忽略返回类型;该函数应该使用 ereport(ERROR)函数报告无效选项。 OPTIONS ( option 'value' [, ... ] ) 这个子句为新的外部数据封装器声明选项。允许的选项名和值是特定于每个外部数据封装器的, 并且是经过外部数据封装器的验证器函数验证了的。选项名必须是唯一的。
  • 示例 --创建一个无用的外部数据封装器dummy。 gaussdb=# CREATE FOREIGN DATA WRAPPER dummy; --创建一个带有处理器函数file_fdw_handler 的外部数据封装器file。 gaussdb=# CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler; --创建一个带有一些选项的外部数据封装器mywrapper。 gaussdb=# CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
  • 语法格式 设置外部数据封装属性 ALTER FOREIGN DATA WRAPPER name [ HANDLER handler_function | NO HANDLER ] [ VALIDATOR validator_function | NO VALIDATOR ] [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ]) ]; 设置新的所有者 ALTER FOREIGN DATA WRAPPER name OWNER TO new_owner; 设置新的名称 ALTER FOREIGN DATA WRAPPER name RENAME TO new_name;
  • 参数说明 name 已有外部数据封装的名字。 HANDLER handler_function 为外部数据封装指定一个新的处理函数。 NO HANDLER 这个参数用来指定外部数据封装不再拥有处理函数。 使用外部数据封装但没有handler的外表不能访问。 VALIDATOR validator_function 为外部数据封装指定一个新的验证函数。 根据新的验证器,外部数据封装器或依赖的服务器、 用户映射或外部表的已经存在的选项是有可能是无效的。用户在使用外部数据封装之前需要保证这些选项是正确的。 不过,ALTER FOREIGN DATA WRAPPER 命令中指定的任何选项都将使用新的验证函数检查。 NO VALIDATOR 这个用来指定外部数据封装不再有验证函数。 OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) 修改外部数据封装的选项。 ADD, SET, 和 DROP 指定表现的动作。如果没有明确指定操作默认是ADD。选项名必须唯一。 使用外部数据封装验证函数时,名字和取值也会被验证。 new_owner 外部数据封装新的所有者的用户名。 new_name 外部数据封装的新名称。
  • 示例 --修改一个外部数据封装dbi,增加选项foo,删除bar gaussdb=# ALTER FOREIGN DATA WRAPPER dbi OPTIONS (ADD foo '1', DROP 'bar'); --修改外部数据封装dbi验证器为bob.myvalidator gaussdb=# ALTER FOREIGN DATA WRAPPER dbi VALIDATOR bob.myvalidator;
  • ecpg与Pro*C兼容性对比 ecpg是GaussDB提供的一种用于C语言程序的嵌入式SQL预处理器,与ORA数据库Pro*C预处理器在编译执行命令、语法、嵌入式语句等行为和语义上存在差异。 ecpg与Pro*C的相关使用差异对比: 目前ecpg不支持EXEC SQL CONTEXT ALLOCATE、EXEC SQL CONTEXT USE、EXEC SQL CONTEXT FREE。 ecpg当前不支持CONTEXT申请、使用、释放操作,ecpg有独立的内存管理机制。多线程模式下,ecpg在每个线程中独立地建立连接、执行SQL语句以及相关资源的释放。这一使用方式与Pro*C多线程程模式下每个线程各自进行CONTEXT相关申请与释放的处理逻辑一致。 目前ecpg不支持EXEC SQL COMMIT WORK RELEASE。 在ecpg中,当业务语句执行COMMIT之后,并没有RELEASE选项,需要通过调用EXEC SQL DISCONNECT、EXEC SQL CLOSE等命令来实现相关资源的释放。Pro*C中EXEC SQL COMMIT带有RELEASE选项。用于释放程序持有的所有连接、游标等资源信息。 目前ecpg不支持EXEC SQL ENABLE THREAD。 ecpg编译选项中开启宏定义,在main函数的.pgc文件中定义(define)ENABLE_THREAD_SAFETY。 父主题: 基于ecpg开发
  • 原因分析 ORA模式数据库能够插入成功并通过校验:Hibernate框架在校验数据时,通过判断插入数据类型java.lang.long的TypeCode,与表结构的number类型的TypeCode进行对比,结果不一致,随后会把插入数据的long类型的sqlType与表结构的Type作比较,将long类型转成number(19,0)(对应关系由org.hibernate.dialect.OracleDialect进行维护),因为表结构的type是number,number(19,0)以number开头,所以校验可以通过。使用ORA模式数据库时,业务代码涉及整数类型的数据,可以使用Java中的Long类型插入。 GaussDB数据库 校验不同,关闭校验后数据插入成功:Hibernate框架在插入数据做校验时,业务代码是java.lang.long类型,和表数据类型bigint的TypeCode是对应的,所以不报错。但是表数据类型是Integer时无法对应,首先判断业务代码java.lang.long类型的TypeCode,与表数据Integer的TypeCode比较,结果不一致,之后根据org.hibernate.dialect.PostgreSQLDialect对应关系,会将long类型转换为int8,将表数据类型Integer转换为int4,无法对应,所以校验失败。使用GaussDB数据库时,业务代码涉及整数类型的数据,必须使用表类型对应的Java整型。
  • 获取驱动包 下载版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 V2.0-3.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • dcf_log_file_permission 参数说明:DCF运行日志文件属性,参数重启生效,参数安装阶段配置,后续不支持修改。若用户需要支持同组的其他用户访问日志,首先需要所有的父目录都支持同组的其他用户也能访问。即若参数dcf_log_path_permission配置为750,dcf_log_file_permission只能为600或者640。若参数dcf_log_path_permission配置为700,dcf_log_file_permission只能为600。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举型,600、640 默认值:600
  • dcf_election_timeout 参数说明:DCF leader和follower选举超时时间。选举超时时间数值依赖于当前DN之间的网络状况,在超时时间较小且网络极差的情形下,会有超时选举发生,待网络恢复选举恢复正常。建议根据当前网络状态合理设置超时时间。对DCF节点时钟的约束:DCF节点间最大时钟差异小于选举超时时间的一半。在DCF手动选举模式下,为了不影响CM及时仲裁选举,禁止对该参数配置修改,按默认选举超时时间设置即可。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,单位s,1~600 默认值:3
  • dcf_majority_groups 参数说明:DCF策略化多数派功能设置。对于需要配置此参数的group,该group内至少有一台备机收到日志。即该group内存在一台同步备机。若对DCF实例内做了增删节点或者对实例内节点group值进行了调整修改,需同步修改此配置。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串 关闭:“”,空字符串表示策略化多数派功能关闭。 开启: 配置有效的group值,使用逗号分隔,group值需在dcf_config中存在。例如将group值分别为1和2,加入DCF的策略化多数派配置时,可以设置为"1,2";若配置了dcf_config中不存在的group值或者其他字符,DCF将认为该配置的group无效。 默认值:空字符串 若配置了参数后某一group内所有节点均故障,在对其中某个节点做涉及节点build相关操作(节点修复、不换ip的节点替换)时,需要将该group从此参数列表中移除,待节点恢复正常后可将该group再次配置到此参数。
  • dcf_node_id_map 参数说明:DN备机名称与DCF node_id映射字典,参数重启生效,参数安装阶段配置,后续不支持修改。在DCF集群安装、升级、节点替换场景会涉及使用此参数。GUC参数synchronous_standby_names中配置的standby_name需包含在此字典内。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。配置格式例如: 'stanby_name1:dcf_node_id1,standy_name2:dcf_node_id2',DN备机名称对应的DCF node_id数值,使用逗号分隔。 默认值:空字符串
  • dcf_run_mode 参数说明:DCF选举模式,0表示自动选举模式,1表示手动选举模式,2表示去使能选举模式。目前去使能选举模式只限定少数派恢复场景使用,修改会导致数据库实例不可用。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 须知:集群在正常状态下进行工作模式切换才能保证切换后工作正常。GUC参数设置和cm_ctl设置的DCF工作模式需要保持一致,即两者需要同步设置为DCF手动或自动模式。 例如,设置DCF手动模式如下: cm_ctl set --param --server -k dn_arbitrate_mode=quorum cm_ctl reload --param --server gs_guc reload -Z datanode -I all -N all -c "dcf_run_mode=1" 设置DCF自动模式如下: cm_ctl set --param --server -k dn_arbitrate_mode=paxos cm_ctl reload --param --server gs_guc reload -Z datanode -I all -N all -c "dcf_run_mode=0" 取值范围:枚举类型,0、1、2 默认值:1
  • dcf_log_level 参数说明:DCF日志级别。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串 关闭日志:“NONE”,NONE表示关闭日志打印,不能与以下日志级别混合使用。 开启日志:“RUN_ERR|RUN_WAR|RUN_INF|DEBUG_ERR|DEBUG_WAR|DEBUG_INF|TRACE|PROFILE|OPER” 日志级别可以从上述字符串中选取字符串并使用竖线组合使用,不能配置空串。 默认值:“RUN_ERR|RUN_WAR|DEBUG_ERR|OPER|RUN_INF|PROFILE”
  • undo_limit_size_per_transaction 参数说明:用于控制单事务undo分配空间阈值,达到阈值时事务报错回滚。建议设置undo_limit_size_per_transaction参数不大于undo_space_limit_size参数。若设置的undo_limit_size_per_transaction参数大于undo_space_limit_size参数,用户调用show undo_limit_size_per_transaction命令查询参数值时,显示出来的值和用户设置的值仍保持一致,只是在使用时会取undo_space_limit_size和undo_limit_size_per_transaction两者的较小值,作为实际的单事务undo分配空间阈值。如果设置 undo_limit_size_per_transaction 超过 1TB,可能会影响系统的性能和稳定性。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,256~2147483647,单位为8KB。 默认值:32GB
  • enable_standby_read 参数说明:控制session开启备机读功能。该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示该session开启分布式备机读功能。 off表示该session不开启分布式备机读功能。 默认值:off 仅在gtm-free模式、非事务块内、hot-standby模式下支持开启。 该参数只能在session级别设置,不支持gs_guc方式进行设置。 若在非session级别设置(如手动在配置文件中将该参数打开),在参数冲突时,会导致集群无法拉起;在参数不冲突时,会导致后台线程如autovacuum、WorkloadMonitor等也开启分布式备机读模式,其DDL、DML等作业会受到影响而报错。
  • global_syscache_threshold 参数说明:全局系统缓存内存最大占用大小。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 需要打开enable_global_syscache参数。 取值范围:整型,16384 ~ 1073741824,单位为KB。 默认值:163840 推荐计算公式:热点DB个数和线程个数的最小值乘以每个DB分配的内存大小,即global_syscache_threshold = min(count(hot dbs),count(threads)) * memofdb。 热点DB数即访问较为频繁的数据库,线程数在线程池模式下取线程池线程个数和后台线程个数之和,非线程池模式不需要计算这个值,直接使用热点DB数。 memofdb即平均每个db应该分配的内存,每个DB的底噪内存是2M,平均每增加一个表或者索引,增加11k内存。 如果设置的值过小,会导致内存频繁淘汰,内存存在大量碎片无法回收,导致内存控制失效。
  • multi_stats_type 参数说明:该参数用于指定在参数enable_ai_stats为on状态下创建的统计信息类别。 该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 取值范围:枚举类型,有效值为"BAYESNET"、"MCV"、"ALL"。 "BAYESNET":只创建智能统计信息。 "MCV":只创建传统统计信息。 "ALL":同时创建传统统计信息和智能统计信息。 默认值:"BAYESNET"
  • enable_hypo_index 参数说明:该参数控制数据库的优化器进行EXPLAIN时是否考虑创建的虚拟索引。通过对特定的查询语句执行explain,用户可根据优化器给出的执行计划评估该索引是否能够提升该查询语句的执行效率。 该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 取值范围:布尔型 on表示在进行EXPLAIN时创建虚拟索引。 off表示在进行EXPLAIN时不创建虚拟索引。 默认值:off
共100000条