华为云用户手册

  • cluster_name 参数说明:标识当前集群的集群名称。 集群名称cluster_name不可设置为“invalid_cluster_uuid”。 参数类型:字符串 参数单位:无 取值范围:合法的集群名称。 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数在容灾流程使用,容灾集群依赖该参数进行集群识别,用户可读,不建议用户修改。 设置不当的风险与影响:手动修改可能造成容灾功能异常。
  • hadr_primary_cluster_name 参数说明:标识容灾中当前主集群的集群名称。用于1个主集群连接两个备集群的异地流式容灾部署下的主集群识别。 当流式容灾备集群的首备的hadr_primary_cluster_name配置为“invalid_cluster_uuid”时,将不再启动与主集群的日志同步,备集群将持续处于断连状态。 参数类型:字符串 参数单位:无 取值范围:合法的集群名称。 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:容灾集群的识别参数,容灾流程使用,用户可读,不建议用户修改。 设置不当的风险与影响:手动修改可能造成容灾功能异常。
  • hadr_process_type 参数说明:基于流式复制异地容灾解决方案或者同城双中心高可用方案的流程标识。 参数类型:枚举类型 参数单位:无 取值范围: none:表示当前无流程。 failover:表示当前处于灾备集群升主流程。 switchover_promote:表示主备集群倒换流程中灾备集群升主流程。 switchover_demote:表示主备集群倒换流程中主集群降为灾备集群流程。 dorado_failover:表示dorado灾备集群升主流程。 dorado_switchover_demote:表示dorado主备集群倒换流程中主集群降为灾备集群流程。 dorado_failover_abnormal:表示dorado主集群共享盘故障时,灾备集群升主流程。 dorado_failover_in_standby_stream:表示同城双中心高可用支持基于流式复制异地容灾解决方案中异地集群为容灾主集群时,dorado备集群升为dorado主集群(同时为异地容灾-灾备集群)流程。 dorado_failover_abnormal_in_standby_stream:表示同城双中心高可用支持基于流式复制异地容灾解决方案中异地集群为异地容灾主集群且dorado主集群(同时为异地容灾-灾备集群)共享盘故障时,dorado备集群升为dorado主集群(同时为异地容灾-灾备集群)流程。 默认值:none 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:容灾集群的状态参数,内部流程使用,用户可读,不建议用户修改。 设置不当的风险与影响:手动修改会造成灾备集群异常。
  • RepOriginId 参数说明:该参数是一个会话级别的GUC参数,在双向逻辑复制的场景下,为避免数据循环复制,需要设置为一个非0的值。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647‬ 默认值:0 设置方式:该参数属于USERSET类型参数,请参考表2中的方式三进行设置。 设置建议:在双向逻辑复制的场景下,需要设置为一个非0的值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • auto_csn_barrier 参数说明:流式容灾的主集群和GTM LITE集群是否开启barrier打点功能。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:容灾流程中会自动设置开启,不建议用户手动关闭。GTM LITE集群开启备机读功能,需要设置该参数为ON。 设置不当的风险与影响:关闭后,影响灾备集群和GTM LITE集群备机读数据一致性。
  • enable_roach_standby_cluster 参数说明:设置双集群中备集群的各个实例是否为只读模式,仅sysadmin用户可以访问。 参数类型:布尔型 参数单位:无 取值范围: on:表示备集群开启只读模式。 off:表示备集群关闭只读模式。此情况下,备集群可读可写。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:备份恢复使用,不建议用户修改。 设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。
  • stream_cluster_run_mode 参数说明:流式容灾双集群容灾场景,标识CN/DN节点属于主集群还是备集群。 参数类型:枚举类型 参数单位:无 取值范围: cluster_primary:表示节点是主集群的节点。 cluster_standby:表示节点是备集群的节点。 默认值:cluster_primary 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:此参数为容灾集群的状态参数,内部流程使用,用户可读,不建议用户修改。 设置不当的风险与影响:手动修改会造成灾备集群异常。
  • global_syscache_threshold 参数说明:全局系统缓存占用内存的最大值,使用时需要打开enable_global_syscache参数。 参数类型:整型 参数单位:kB 取值范围:16384 ~ 1073741824 默认值:163840(即160MB) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,设置为163840,不带单位,表示163840kB;设置为160MB,带单位,表示160MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:建议设置为热点DB个数和线程个数的最小值乘以每个DB分配的内存大小,即global_syscache_threshold = min(count(hot dbs),count(threads)) * memofdb。 热点DB数即访问较为频繁的数据库数量。线程数在线程池模式下取线程池线程个数和后台线程个数之和,非线程池模式不需要计算这个值,直接使用热点DB数。 memofdb即平均每个db应该分配的内存,每个DB的底噪内存是2M,平均每增加一个表或者索引,增加11k内存。 设置不当的风险与影响:如果设置的值过小,会导致内存频繁淘汰,内存存在大量碎片无法回收,导致内存控制失效。
  • enable_global_syscache 参数说明:控制是否使用全局系统缓存功能。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启全局系统缓存功能。 off:表示不开启全局系统缓存功能。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,开启全局系统缓存功能可以降低系统缓存内存占用,提高并发扩展能力。若打开该参数,需要结合使用global_syscache_threshold,此时推荐使用线程池模式。若打开该参数后需要访问备机,建议设置备机wal_level级别为hot_standby以上。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • delete_cctmp_table 参数说明:控制是否删除Ustore在线创建/重建索引过程中产生的临时表。 参数类型:布尔型 参数单位:无 取值范围: on:表示删除临时表。 off:表示保留临时表。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数默认开启,需要保留在线创建/重建索引过程中产生的临时表时设置为off。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • 示例 --创建一个兼容性为ORA的数据。 gaussdb=# CREATE DATABASE ora_test_db DBCOMPATIBILITY 'ORA'; --切换数据库。 gaussdb=# \c ora_test_db --创建拥有系统管理员权限的用户。 ora_test_db=# CREATE USER user01 WITH SYSADMIN PASSWORD '********'; ora_test_db=# SET ROLE user01 PASSWORD '********'; --创建公共dblink。 ora_test_db=# CREATE PUBLIC DATABASE LINK public_dblink CONNECT TO 'user01' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --创建普通用户。 ora_test_db=# CREATE USER user2 PASSWORD '********'; --修改dblink对象信息。 ora_test_db=# ALTER PUBLIC DATABASE LINK public_dblink CONNECT TO 'user2' IDENTIFIED BY '********'; --删除公共dblink。 ora_test_db=# DROP PUBLIC DATABASE LINK public_dblink; --删除用户。 ora_test_db=# RESET ROLE; ora_test_db=# DROP USER user01; ora_test_db=# DROP USER user2; --切换回初始数据库,并删除测试数据库。请用真实的数据库名替换postgres。 ora_test_db=# \c postgres gaussdb=# DROP DATABASE ora_test_db;
  • 扩展函数 下表列举了 GaussDB 中支持的扩展函数,不作为商用特性交付,仅供参考。 分类 函数名称 描述 触发器函数 pg_get_triggerdef(trigger_oid) 为触发器获取CREATE [ CONSTRAINT ] TRIGGER命令 pg_get_triggerdef(trigger_oid, pretty_bool) 为触发器获取CREATE [ CONSTRAINT ] TRIGGER命令 父主题: 附录
  • DBE_PLDEVELOPER.gs_source 用于记录PL/SQL对象(存储过程、函数、包、包体)相关信息,如表1所示。 gs_source表中只记录用户定义的原始对象语句,即使用户使用了ALTER改变了创建的SCHEMA或者名字,gs_source表中的信息也不会发生变化,如果用户更改了对象的SCHEMA或者名字,用户在删除对象后,对象会从gs_source表中被删除。 gs_source表中的owner表示创建的用户,不是用户创建存储过程或package时指定的用户。 设置GUC参数behavior_compat_options="skip_insert_gs_source"后,PL/SQL对象(存储过程、函数、包、包体)相关信息将不在gs_source中记录。 gs_source权限与pg_catalog下的系统表保持一致(系统管理员与普通用户不允许DROP、ALTER、DELETE、UPDATE、INSERT,允许SELECT),利用GUC参数allow_system_table_mods控制操作gs_source的权限,此GUC参数默认为off,修改此GUC参数生效需要重启数据库。 数据库默认情况下没有对gs_source表中设置行级访问控制,如果用户需要使用数据库隔离性特性,请使用如下语句进行添加行级访问控制: ALTER TABLE dbe_pldeveloper.gs_source ENABLE ROW LEVEL SECURITY; CREATE ROW LEVEL SECURITY POLICY all_data_rls ON dbe_pldeveloper.gs_source USING(owner = (SELECT oid FROM gs_roles WHERE rolname=current_user)); 表1 DBE_PLDEVELOPER.gs_source字段 名称 类型 描述 id oid 对象id。 owner bigint 对象创建用户id。 nspid oid 对象的模式id。 name name 对象名。 type text 对象类型(procedure/function/package/package body)。 status boolean 是否创建成功。 src text 对象创建的原始语句。 父主题: DBE_PLDEVELOPER
  • external_pid_file 参数说明:声明可被服务器管理程序使用的额外PID文件,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:合法文件名称。 默认值:"" 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 该参数只能在数据库服务重新启动后生效。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • ident_file 参数说明:设置用于客户端认证的配置文件的名称(gs_ident.conf),仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:长度大于0的字符串。 默认值:gs_ident.conf(实际安装可能带有绝对目录)。 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:不建议修改配置文件参数。 设置不当的风险与影响:修改后可能会影响集群升级、备份功能。
  • data_directory 参数说明:设置GaussDB的数据目录(data目录),仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:合法目录路径。 默认值:安装时指定,如果在安装时不指定,则默认不初始化数据库。 设置方式:此参数可以通过如下方式设置: 在安装GaussDB时设置。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • config_file 参数说明:设置主服务器配置文件名称(gaussdb.conf)。 参数类型:字符串 参数单位:无 取值范围:长度大于0的字符串。 默认值:gaussdb.conf(实际安装可能带有绝对目录)。 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • hba_file 参数说明:设置基于主机认证(HBA)的配置文件(gs_hba.conf)。此参数只能在配置文件gaussdb.conf中指定,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:长度大于0的字符串。 默认值:gs_hba.conf(实际安装可能带有绝对目录)。 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:不建议修改配置文件参数。 设置不当的风险与影响:修改后可能会影响集群升级、备份功能。
  • enable_access_server_directory 参数说明:是否允许非初始用户创建、修改和删除DIRECTORY对象。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许非初始用户创建、修改和删除DIRECTORY对象。 off:表示不允许非初始用户创建、修改和删除DIRECTORY对象。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 用户在使用高级包UTL_FILE访问服务器端文件时,要求必须拥有所指定的DIRECTORY对象的权限。 出于安全考虑,默认情况下,只有初始用户才能够创建、修改、删除DIRECTORY对象。 如果开启了enable_access_server_directory,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象;具有SYSADMIN权限的用户、directory对象的属主、被授予了该directory的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除directory对象;具有SYSADMIN权限的用户和directory对象的属主可以修改directory对象的所有者,且要求该用户是新属主的成员。
  • audit_copy_exec 参数说明:这个参数决定是否对COPY操作进行审计。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭COPY审计功能。 1:表示开启COPY审计功能。 默认值:1 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为1,当数据库频繁执行COPY操作时会频繁记录审计日志,导致数据库性能下降。
  • audit_set_parameter 参数说明:该参数表示是否对SET操作进行审计。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭SET审计功能。 1:表示开启SET审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为1,当数据库频繁执行SET操作时会频繁记录审计日志,导致数据库性能下降。
  • enable_nonsysadmin_execute_direct 参数说明:是否允许非系统管理员和非监控管理员执行EXECUTE DIRECT ON语句。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许任意用户执行EXECUTE DIRECT ON语句。 off:表示只允许系统管理员和监控管理员执行EXECUTE DIRECT ON语句。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • audit_xid_info 参数说明:该参数决定是否在审计日志字段detail_info中记录SQL语句的事务ID。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭审计日志记录事务ID功能。 1:表示开启审计日志记录事务ID功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 如果开启此开关,审计日志中detail_info信息则以xid开始,例如: detail_info: xid=14619 , create table t1(id int); 对于不存在事务ID的审计行为,则记录xid=NA。
  • enableSeparationOfDuty 参数说明:是否开启三权分立选项。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启三权分立。 off:表示不开启三权分立。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为on,系统管理员权限会受限制,部分之前可以执行的操作会无法执行。
  • audit_function_exec 参数说明:该参数表示在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭对存储过程、匿名块或自定义函数(不包括系统自带函数)执行的审计功能。 1:表示开启对存储过程、匿名块或自定义函数(不包括系统自带函数)执行的审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为1,当数据库频繁执行存储过程、匿名块或自定义函数时会频繁记录审计日志,导致数据库性能下降。
  • audit_system_function_exec 参数说明:这个参数决定在执行白名单内的系统函数时是否记录审计日志。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭系统函数执行的审计功能。 1:表示开启系统函数执行的审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为1,当数据库频繁执行白名单内系统函数时会频繁记录审计日志,导致数据库性能下降。 支持记录审计的系统函数白名单如下表所示: set_working_grand_version_num_manually set_config pg_terminate_backend pg_cancel_backend pg_cancel_session pg_cancel_invalid_query pg_reload_conf pg_rotate_logfile pg_terminate_session pg_terminate_backend pg_start_backup pg_stop_backup pg_create_restore_point pg_switch_xlog pg_cbm_get_merged_file pg_cbm_recycle_file pg_enable_delay_ddl_recycle pg_disable_delay_ddl_recycle pg_cbm_rotate_file gs_roach_enable_delay_ddl_recycle gs_roach_disable_delay_ddl_recycle gs_roach_stop_backup pg_last_xlog_receive_location pg_xlog_replay_pause pg_xlog_replay_resume gs_roach_switch_xlog gs_pitr_archive_slot_force_advance gs_pitr_clean_history_global_barriers gs_download_obs_file gs_upload_obs_file gs_set_obs_file_context gs_set_obs_delete_location gs_hadr_do_switchover gs_set_obs_delete_location_with_slotname gs_streaming_dr_in_switchover pg_advisory_lock pg_advisory_lock_shared pg_advisory_unlock pg_advisory_unlock_shared pg_advisory_unlock_all pg_advisory_xact_lock pg_advisory_xact_lock_shared pg_try_advisory_lock pg_try_advisory_lock_shared pg_try_advisory_xact_lock pg_try_advisory_xact_lock_shared gs_get_hadr_key_cn pg_create_physical_replication_slot_extern pg_create_logical_replication_slot pg_drop_replication_slot pg_logical_slot_peek_changes pg_logical_slot_get_changes pg_logical_slot_get_binary_changes pg_replication_origin_drop pg_replication_origin_session_reset local_space_shrink gs_space_shrink global_space_shrink pg_free_remain_segment gs_fault_inject sqladvisor.init sqladvisor.set_weight_params sqladvisor.set_cost_params sqladvisor.assign_table_type gs_repair_file local_clear_bad_block_info gs_repair_page - - - - -
  • audit_dml_state 参数说明:该参数表示是否对所有表的INSERT、UPDATE、DELETE、MERGE操作进行审计。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭具体表的INSERT、UPDATE、DELETE、MERGE操作审计功能。 1:表示开启具体表的INSERT、UPDATE、DELETE、MERGE操作审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为1,当数据库频繁进行INSERT、UPDATE、DELETE、MERGE操作时会频繁记录审计日志,导致数据库性能下降。
  • audit_dml_state_select 参数说明:该参数表示是否对SELECT操作进行审计。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭SELECT操作审计功能。 1:表示开启SELECT操作审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置为1,当数据库频繁进行SELECT操作时会频繁记录审计日志,导致数据库性能下降。
  • audit_system_object 参数说明:该参数表示是否对数据库对象的CREATE、DROP、ALTER等操作进行审计。数据库对象包括DATABASE、USER、SCHEMA、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作。参数类型:整型 参数单位:无 取值范围:0 ~ 536870911 0代表关闭数据库对象的CREATE、DROP、ALTER等操作审计功能。 非0代表只审计某类或者某些数据库对象的CREATE、DROP、ALTER等操作。 取值说明: 该参数的值由29个二进制位的组合求出,这29个二进制位分别代表29类数据库对象。如果对应的二进制位取值为0,表示不审计对应的数据库对象的CREATE、DROP、ALTER等操作;取值为1,表示审计对应的数据库对象的CREATE、DROP、ALTER等操作。这29个二进制位代表的具体审计内容请参见表1。 用于记录SQL PATCH的参数存在特殊性,如果对该对象进行审计且audit_dml_state_select也开启时,对于一条SQL PATCH操作的审计日志会作为DML和DDL被记录两次,如果调用remote接口,则会在入参对应的节点上产生DDL日志,而不是在下发语句的节点上。 默认值:67121159(十进制),对应二进制为:0 0100 0000 0000 0011 0000 0000 0111,表示对DATABASE、SCHEMA、USER、NODE GROUP、SQLPatch这五种数据库对象的DDL操作进行审计。 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据业务需要设置记录审计的数据库对象类型。在主备强制选主场景建议audit_system_object取最大值,所有DDL对象全部审计。 设置不当的风险与影响:需要审计的对象越多,对系统性能的影响越大,占用的系统CPU和I/O越多。 表1 audit_system_object取值含义说明 二进制位 含义 取值说明 第0位 是否审计DATABASE对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第1位 是否审计SCHEMA对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第2位 是否审计USER和USER MAPPING对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第3位 是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作。 0表示不审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。 1表示审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。 第4位 是否审计INDEX对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第5位 是否审计VIEW/MATVIEW对象的CREATE、DROP操作。 0表示不审计该对象的CREATE、DROP操作。 1表示审计该对象的CREATE、DROP操作。 第6位 是否审计TRIGGER对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第7位 是否审计PROCEDURE/FUNCTION对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第8位 是否审计TABLESPACE对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第9位 是否审计RESOURCE POOL对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第10位 是否审计WORKLOAD对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第11位 是否审计SERVER对象的CREATE、DROP、ALTER操作 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第12位 保留 - 第13位 是否审计NODE GROUP对象的CREATE、DROP操作。 0表示不审计该对象的CREATE、DROP操作。 1表示审计该对象的CREATE、DROP操作。 第14位 是否审计ROW LEVEL SECURITY对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第15位 是否审计TYPE对象的CREATE、DROP、ALTER操作。 0表示不审计TYPE对象的CREATE、DROP、ALTER操作。 1表示审计TYPE对象的CREATE、DROP、ALTER操作。 第16位 是否审计TEXT SEARCH对象(CONFIGURATION和DICTIONARY)的CREATE、DROP、ALTER操作。 0表示不审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。 1表示审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。 第17位 是否审计DIRECTORY对象的CREATE、DROP、ALTER操作。 0表示不审计DIRECTORY对象的CREATE、DROP、ALTER操作。 1表示审计DIRECTORY对象的CREATE、DROP、ALTER操作。 第18位 是否审计SYNONYM对象的CREATE、DROP、ALTER操作。 0表示不审计SYNONYM对象的CREATE、DROP、ALTER操作。 1表示审计SYNONYM对象的CREATE、DROP、ALTER操作。 第19位 是否审计SEQUENCE对象的CREATE、DROP、ALTER操作。 0表示不审计SEQUENCE对象的CREATE、DROP、ALTER操作。 1表示审计SEQUENCE对象的CREATE、DROP、ALTER操作。 第20位 是否审计CMK、CEK对象的CREATE、ALTER、DROP操作。 0表示不审计CMK、CEK对象的CREATE、ALTER、DROP操作。 1表示审计CMK、CEK对象的CREATE、ALTER、DROP操作。 第21位 是否审计PACKAGE对象的CREATE、DROP、ALTER操作(目前仅集中式支持PACKAGE)。 0表示不审计PACKAGE对象的CREATE、DROP、ALTER操作。 1表示审计PACKAGE对象的CREATE、DROP、ALTER操作。 第22位 保留 - 第23位 保留 - 第24位 是否审计对gs_global_config全局对象的ALTER、DROP操作。 0表示不审计对系统表gs_global_config全局对象的ALTER、DROP操作。 1表示审计对系统表gs_global_config全局对象的ALTER、DROP操作。 第25位 是否审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作,目前该功能暂不支持。 0表示不审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作。 1表示审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作。 第26位 是否审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 0表示不审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 1表示审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 第27位 保留 - 第28位 是否审计DBLINK对象的CREATE、ALTER、DROP操作。目前DATABASE LINK功能暂不支持。 0表示不审计DBLINK对象的CREATE、ALTER、DROP操作。 1表示审计DBLINK对象的CREATE、ALTER、DROP操作。
  • Hint的错误、冲突及告警 Plan Hint的结果会体现在计划的变化上,可以通过explain来查看变化。 hint中的错误不会影响语句的执行,只是不能生效,该错误会根据语句类型以不同方式提示用户。对于explain语句,hint的错误会以warning形式显示在界面上,对于非explain语句,会以debug1级别日志显示在日志中,关键字为PLANHINT。 hint的错误分为以下类型: 语法错误 语法规则树归约失败,会报错,指出出错的位置。 例如:hint关键字错误,leading hint或join hint指定2个表以下,其它hint未指定表等。一旦发现语法错误,则立即终止hint的解析,所以此时只有错误前面解析完的hint有效。 例如: 1 leading((t1 t2)) nestloop(t1) rows(t1 t2 #10) nestloop(t1)存在语法错误,则终止解析,可用hint只有之前解析的leading((t1 t2))。 语义错误 表不存在、存在多个、或在leading或join中出现多次,均会报语义错误。 scanhint中的index不存在,会报语义错误。 如果子查询提升后,同一层出现多个名称相同的表,且其中某个表需要被hint,hint会存在歧义,无法使用,需要为相同表增加别名规避。 hint重复或冲突 如果存在hint重复或冲突,只有第一个hint生效,其它hint均会失效,会给出提示。 hint重复是指,hint的方法及表名均相同。例如:nestloop(t1 t2) nestloop(t1 t2)。 hint冲突是指,table list一样的hint,存在不一样的hint,hint的冲突仅对于每一类hint方法检测冲突。 例如:nestloop (t1 t2) hashjoin (t1 t2),则后面与前面冲突,此时hashjoin的hint失效。注意:nestloop(t1 t2)和no mergejoin(t1 t2)不冲突。 leading hint中的多个表会进行拆解。例如:leading ((t1 t2 t3))会拆解成:leading((t1 t2)) leading(((t1 t2) t3)),此时如果存在leading((t2 t1)),则两者冲突,后面的会被丢弃。(例外:指定内外表的hint若与不指定内外表的hint重复,则始终丢弃不指定内外表的hint。) 查询改写的hint允许重复,但对于重复的hint数据库只会使用第一个,对于其他未使用的hint则会报"unused hint" Warning提示。例如:/*+ expand_sublink expand_sublink */由于数据库只使用第一个expand_sublink hint,所以仍然会报"unused hint" Warning提示。 子链接提升后hint失效 子链接提升后的hint失效,会给出提示。通常出现在子链接中存在多个表连接的场景。提升后,子链接中的多个表不再作为一个整体出现在join中。 列类型不支持重分布 对于skew hint来说,目的是为了进行重分布时的调优,所以当hint列的类型不支持重分布时,hint将无效。 hint未被使用 非等值join使用hashjoin hint或mergejoin hint。 不包含索引的表使用indexscan hint、index hint或indexonlyscan hint。 不包含全局二级索引的表使用gsi hint和gsitable hint。 通常只有在索引列上使用过滤条件才会生成相应的索引路径,全表扫描将不会使用索引,因此使用indexscan hint、index hint、indexonlyscan hint或gsi hint将不会使用。 indexonlyscan只有输出列仅包含索引列才会使用,否则指定时hint不会被使用。 gsi只有查询能够下推至全局二级索引时才会使用,否则不会被使用。 多个表存在等值连接时,仅尝试有等值连接条件的表连接,此时没有关联条件的表之间的路径将不会生成,所以指定相应的leading、join、rows hint将不使用,例如:t1 t2 t3表join,t1和t2, t2和t3有等值连接条件,则t1和t3不会优先连接,leading(t1 t3)不会被使用。 生成stream计划时,如果表的分布列与join列相同,则不会生成redistribute的计划。如果不同,且另一表分布列与join列相同,只能生成redistribute的计划,不会生成broadcast的计划,指定相应的hint则不会被使用。 如果子链接未被提升,则blockname hint不会被使用。 对于skew hint,hint未被使用可能由于: 计划中不需要进行重分布。 hint指定的列包含分布键。 hint指定倾斜信息有误或不完整,如对于join优化未指定值。 倾斜优化的GUC参数处于关闭状态。 父主题: 使用Plan Hint进行调优
共100000条