华为云用户手册

  • agent_backup_open 参数说明:灾备集群设置,控制CM是否按照灾备集群模式运行。 参数类型:整型 参数单位:无 取值范围:0 ~ 3 0:表示未搭建灾备关系。 1:表示搭建了dorado灾备关系。 2:表示搭建了流式灾备关系。 3:表示搭建了逻辑灾备关系。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_agent才能生效。 设置建议:此参数为内部调用参数,不建议用户修改。 设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。
  • disaster_recovery_type 参数说明:主备集群灾备关系的类型。 参数类型:整型 参数单位:无 取值范围:0 ~ 2 0:表示未搭建灾备关系。 1:表示搭建了dorado灾备关系。 2:表示搭建了流式灾备关系。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_threshold_check_interval 参数说明:控制日志压缩和清除的时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483647 默认值:1800 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:建议设置为默认值,不做调整。如场景需要,可根据磁盘空间做适当调整。 设置不当的风险与影响:设置过大可能导致硬盘空间占用过多。
  • environment_threshold 参数说明:agent所监控的物理环境和节点状态信息的阈值,超过阈值会打印日志。具体分别表示为内存使用率阈值,cpu占用率阈值,磁盘使用率阈值,实例的内存使用率阈值,实例的线程池使用率阈值。 参数类型:字符串 参数单位:无 取值范围:该参数由五个部分组成,分别是内存使用率阈值、cpu占用率阈值、磁盘使用率阈值、实例的内存使用率阈值、实例的线程池使用率阈值,每个阈值的取值范围为[0,100],单位为%,0表示关闭检测。不同阈值之间用“,”进行连接,取值要以括号开头和结束。例如,“(0,0,0,0,0)”表示对五个阈值都不进行检测。 默认值:"(0,0,0,0,0)" 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_xc_maintenance_mode 参数说明:在集群只读模式下,控制是否可以修改pgxc_node系统表。 参数类型:布尔型 参数单位:无 取值范围: on:表示可以修改pgxc_node系统表。 off:表示不可以修改pgxc_node系统表。 默认值:on 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_agent才能生效。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_dir 参数说明:log_dir决定存放cm_agent日志文件的目录。可以是绝对路径,或者是相对路径(相对于cm_agent数据目录的路径)。 参数类型:字符串 参数单位:无 取值范围:合法目录路径。 默认值:“$GAUSS LOG /cm/cm_agent”,表示在$GAUSSLOG对应的cm目录下生成cm_agent日志。 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_agent才能生效。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • agent_phony_dead_check_interval 参数说明:cm_agent检测CN/DN/GTM进程是否僵死的时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483647 默认值:10 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大会导致cm故障检测和恢复功能不及时,设置过小会导致cpu负载变高。
  • agent_heartbeat_timeout 参数说明:cm_agent检测cm_server心跳的超时时间。当cm_agent没有在超时时间内接收到cm_server的心跳信息时,将终止与cm_server的连接。 参数类型:整型 参数单位:s(秒) 取值范围:2 ~ 2147483647 默认值:8 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大和过小会导致故障检测的假阴性和假阳性。
  • log_file_size 参数说明:控制日志文件的大小。当日志文件达到指定大小时,则重新创建一个日志文件记录日志信息。 参数类型:整型 参数单位:MB 取值范围:0 ~ 2047 默认值:16 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。例如,设置为16,不带单位,表示16MB;设置为16MB,带单位,表示16MB。取值如果要带单位,必须为MB。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_min_messages 参数说明:控制写到cm_agent日志文件中的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,服务器运行日志中记录的消息就越少。 参数类型:枚举类型 参数单位:无 取值范围:有效值有debug5、debug1、log、warning、error、fatal。 默认值:warning 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:考虑硬盘大小后适当设置。 设置不当的风险与影响:设置级别低可能导致调试信息丢失。
  • agent_check_interval 参数说明:cm_agent查询DN、CN、GTM等实例状态的时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:1 ~ 2147483647 默认值:2 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大会导致cm故障检测和恢复功能不及时,设置过小会导致cpu负载变高。
  • agent_kill_instance_timeout 参数说明:当cm_agent在无法连接cm_server主节点后,发起一次终止本节点上所有实例的操作之前,所需等待的时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483647 默认值:0,表示不发起终止本节点上所有实例的操作。 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:如果要设置为0以外的值,则需要大于cm_server升级为主节点所耗费的时间。 设置不当的风险与影响:设置过大可能导致CM故障恢复不及时。
  • alarm_component 参数说明:设置用于处理告警内容的告警组件的位置。 参数类型:字符串 参数单位:无 取值范围:合法文件路径。 若前置脚本gs_preinstall中的--alarm-type参数设置为5,表示未对接第三方组件,告警写入system_alarm日志,此时GUC参数alarm_component的取值为“/opt/huawei/snas/bin/snas_cm_cmd”。 若前置脚本gs_preinstall中的--alarm-type参数设置为1,表示对接第三方组件,此时GUC参数alarm_component的值为第三方组件的可执行程序的绝对路径。 默认值:"/opt/huawei/snas/bin/snas_cm_cmd" 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • audit_file_remain_threshold 参数说明:审计目录下审计文件个数的最大值。 参数类型:整型 参数单位:个 取值范围:100 ~ 1048576 默认值:1048576 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。详情请参考以下须知。 1048576(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内存);1024(4核CPU/16G内存),不要随意调整此参数,如果需要控制审计日志的存储空间和时间,请使用audit_resource_policy、audit_space_limit和audit_file_remain_time参数进行控制。 设置不当的风险与影响:设置不当可能会导致audit_resource_policy无法生效。
  • audit_thread_num 参数说明:该参数表示用于审计的线程个数。 参数类型:整型 参数单位:个(表示线程数量) 取值范围:1 ~ 48 默认值:1 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:当audit_dml_state开关打开且在高性能场景下,建议增大此参数保证审计消息可以被及时处理和记录;其他情况建议设置为默认值。 设置不当的风险与影响:线程数量设置越多,对系统性能的影响越大,占用的系统CPU和I/O越多。
  • audit_file_remain_time 参数说明:表示需记录审计日志的最短时间要求,该参数在audit_resource_policy为off时生效。 参数类型:整型 参数单位:d(天) 取值范围:0 ~ 730,0表示无时间限制。 默认值:90 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:根据实际需要保留审计日志的时间设置。audit_resource_policy为on时请不要随意调整此参数。 设置不当的风险与影响:该参数在audit_resource_policy为off时生效。设置过小会导致保留的审计日志量过少,审计追溯有效时长降低;设置过大会导致审计目录下保存过多审计日志,影响审计查询/删除的性能、占用磁盘空间。
  • audit_space_limit 参数说明:审计文件占用的磁盘空间总量。 参数类型:整型 参数单位:kB 取值范围:1024 ~ 1073741824(1024GB) 默认值:1GB(1048576kB) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值131072,表示audit_space_limit为131072kB;带单位取值128MB,表示audit_space_limit为128MB。取值如果要加上单位,必须为“kB”、“MB”、“GB”。 设置建议:建议根据实例实际可用空间及需要保存的审计日志量来设置。 设置不当的风险与影响:该参数在audit_resource_policy为on时生效。设置过小会导致保留的审计日志量过少,审计追溯有效时长降低;设置过大会导致审计目录下保存过多审计日志,影响审计查询/删除的性能、占用磁盘空间。 多审计线程场景下,审计文件占用的磁盘空间最小值是audit_thread_num与audit_rotation_size的乘积,请保证audit_space_limit的值大于audit_thread_num与audit_rotation_size的乘积。
  • audit_resource_policy 参数说明:控制审计日志的保存策略,以空间还是时间限制为优先策略。 参数类型:布尔型 参数单位:无 取值范围: on:表示采用空间优先策略,最多存储audit_space_limit大小的日志。 off:表示采用时间优先策略,最少存储audit_file_remain_time长度时间的日志。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:选择空间优先策略时,不要随意调整时间策略相关的GUC参数:audit_rotation_interval、audit_file_remain_time;选择时间优先策略时,不要随意调整空间策略相关的GUC参数:audit_rotation_size、audit_space_limit、audit_file_remain_threshold。 设置不当的风险与影响:此参数需配合对应策略相关的其他GUC参数共同使用,设置不当会导致审计日志的保存策略不符合预期。
  • audit_enabled 参数说明:控制审计线程的开启和关闭。审计线程开启后,将从管道读取后台线程写入的审计信息,并写入审计文件。 参数类型:布尔型 参数单位:无 取值范围: on:表示启动审计功能。 off:表示关闭审计功能。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:开启审计功能会对数据库性能有一定影响,影响程度取决于记录审计的频率,若设置为on,请根据实际业务和追溯需要设置其他审计开关项;设置为off,不能通过审计日志追溯历史操作。
  • audit_rotation_interval 参数说明:指定创建一个新审计日志文件的时间间隔。当现在的时间减去上次创建一个审计日志的时间超过了此参数值时,服务器将生成一个新的审计日志文件。 参数类型:整型 参数单位:min(分钟) 取值范围:1 ~ 35791394(INT_MAX/60) 默认值:1d(1440min) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如:不带单位取值1440,表示audit_rotation_interval参数的值为1440min;带单位取值2d,表示audit_rotation_interval参数的值为2880min(2d)。取值如果要加上单位,必须为“min”、“h”、“d”。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小会导致审计目录下文件过多;设置过大会导致单个审计文件过大。请不要随意调整此参数,否则可能会导致audit_resource_policy无法生效,如果需要控制审计日志的存储空间和时间,请使用audit_resource_policy、audit_space_limit和audit_file_remain_time等参数进行控制。
  • audit_directory 参数说明:审计文件的存储目录。可以是相对于数据目录data的相对路径,也可以是绝对路径,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:合法目标路径。 默认值:“pg_audit”。如果使用om工具部署数据库,则审计日志路径为“$GAUSSLOG/pg_audit/实例名称”。 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:若设置的值为非法路径,或设置的路径空间已满,会导致审计功能无法正常使用;不同的DN实例需要设置不同的审计文件存储目录,否则会导致审计日志异常。
  • audit_rotation_size 参数说明:指定审计日志文件的最大容量。当审计日志消息的总量超过此参数值时,服务器将生成一个新的审计日志文件。 参数类型:整型 参数单位:kB 取值范围:1024 ~ 1048576。 默认值:10MB(10240kB) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值131072,表示audit_rotation_size为131072kB;带单位取值128MB,表示audit_rotation_size为128MB。取值如果要加上单位,必须为“kB”、“MB”、“GB”。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小会导致审计目录下文件过多;设置过大会导致单个审计文件过大。请不要随意调整此参数,否则可能会导致audit_resource_policy无法生效,如果需要控制审计日志的存储空间和时间,请使用audit_resource_policy、audit_space_limit和audit_file_remain_time参数进行控制。审计日志文件中记录的单条日志占用空间大小超过此参数值时会被作为无效日志文件。
  • UNION,CASE和相关构造解析 如果所有输入都是相同的类型,并且不是unknown类型,那么解析成这种类型。 如果所有输入都是unknown类型则解析成text类型(字符串类型范畴的首选类型)。否则,忽略unknown输入。 如果输入不属于同一个类型范畴,则失败。(unknown类型除外) 如果输入类型是同一个类型范畴,则选择该类型范畴的首选类型。(例外:union操作会选择第一个分支的类型作为所选类型。) 系统表pg_type中typcategory表示数据类型范畴, typispreferred表示是否是typcategory分类中的首选类型。 把所有输入转换为所选的类型(对于字符串保持原有长度)。如果从给定的输入到所选的类型没有隐式转换则失败。 若输入中含json、txid_snapshot、sys_refcursor或几何类型,则不能进行union。
  • 对于case和coalesce,在TD兼容模式下的处理 如果所有输入都是相同的类型,并且不是unknown类型,那么解析成这种类型。 如果所有输入都是unknown类型则解析成text类型。 如果输入字符串(包括unknown,unknown当text来处理)和数字类型,那么解析成字符串类型,如果是其他不同的类型范畴,则报错。 如果输入类型是同一个类型范畴,则选择该类型的优先级较高的类型。 把所有输入转换为所选的类型。如果从给定的输入到所选的类型没有隐式转换则失败。
  • 示例 示例1:Union中的待定类型解析。unknown类型文本'b'将被解析成text类型。 1 2 3 4 5 6 gaussdb=# SELECT text 'a' AS "text" UNION SELECT 'b'; text ------ a b (2 rows) 示例2:简单Union中的类型解析。文本1.2的类型为numeric,而且integer类型的1可以隐含地转换为numeric,因此使用这个类型。 1 2 3 4 5 6 gaussdb=# SELECT 1.2 AS "numeric" UNION SELECT 1; numeric --------- 1 1.2 (2 rows) 示例3:转置Union中的类型解析。类型real不能被隐含转换成integer,但是integer可以隐含转换成real,那么联合的结果类型将是real。 1 2 3 4 5 6 gaussdb=# SELECT 1 AS "real" UNION SELECT CAST('2.2' AS REAL); real ------ 1 2.2 (2 rows) 示例4:TD模式下,coalesce参数输入int和varchar类型,那么解析成varchar类型。ORA模式下会报错。 --在Oracle模式下,创建Oracle兼容模式的数据库oracle_1。 gaussdb=# CREATE DATABASE oracle_1 dbcompatibility = 'ORA'; --切换数据库为oracle_1。 gaussdb=# \c oracle_1 --创建表t1。 oracle_1=# CREATE TABLE t1(a int, b varchar(10)); --查看coalesce参数输入int和varchar类型的查询语句的执行计划。 a_1=# EXPLAIN SELECT coalesce(a, b) FROM t1; ERROR: COALESCE types integer and character varying cannot be matched LINE 1: EXPLAIN SELECT coalesce(a, b) FROM t1; ^ CONTEXT: referenced column: coalesce --删除表。 oracle_1=# DROP TABLE t1; --切换数据库为testdb。 oracle_1=# \c testdb --在TD模式下,创建TD兼容模式的数据库td_1。 gaussdb=# CREATE DATABASE td_1 dbcompatibility = 'TD'; --切换数据库为td_1。 gaussdb=# \c td_1 --创建表t2。 td_1=# CREATE TABLE t2(a int, b varchar(10)); --查看coalesce参数输入int和varchar类型的查询语句的执行计划。 td_1=# EXPLAIN VERBOSE select coalesce(a, b) from t2; QUERY PLAN --------------------------------------------------------------------------------------- Data Node Scan (cost=0.00..0.00 rows=0 width=0) Output: (COALESCE((t2.a)::character varying, t2.b)) Node/s: All datanodes Remote query: SELECT COALESCE(a::character varying, b) AS "coalesce" FROM public.t2 (4 rows) --删除表。 td_1=# DROP TABLE t2; --切换数据库为testdb。 td_1=# \c testdb --删除Oracle和TD模式的数据库。 gaussdb=# DROP DATABASE oracle_1; gaussdb=# DROP DATABASE td_1; 示例5:ORA模式下,将整个表达式最终的返回值类型定为result1的数据类型,或者与result1同类型范畴的更高精度的数据类型。 --在ORA模式下,创建ORA兼容模式的数据库ora_1。 gaussdb=# CREATE DATABASE ora_1 dbcompatibility = 'A'; --切换数据库为ora_1。 gaussdb=# \c ora_1 --开启Decode兼容性参数。 set sql_beta_feature='a_style_coerce'; --创建表t1。 ora_1=# CREATE TABLE t1(c_int int, c_float8 float8, c_char char(10), c_text text, c_date date); --插入数据。 ora_1=# INSERT INTO t1 VALUES(1, 2, '3', '4', date '12-10-2010'); --result1类型为char,defresult类型为text,text精度更高,返回值的类型由char更新为text。 ora_1=# SELECT decode(1, 2, c_char, c_text) AS result, pg_typeof(result) FROM t1; result | pg_typeof --------+----------- 4 | text (1 row) --result1类型为int,属于数值类型范畴,返回值的类型置为numeric。 ora_1=# SELECT decode(1, 2, c_int, c_float8) AS result, pg_typeof(result) FROM t1; result | pg_typeof --------+----------- 2 | numeric (1 row) --不存在defresult数据类型向result1数据类型之间的隐式转换,报错处理。 ora_1=# SELECT decode(1, 2, c_int, c_date) FROM t1; ERROR: CASE types integer and timestamp without time zone cannot be matched LINE 1: SELECT decode(1, 2, c_int, c_date) FROM t1; ^ CONTEXT: referenced column: c_date --关闭Decode兼容性参数。 set sql_beta_feature='none'; --删除表。 ora_1=# DROP TABLE t1; DROP TABLE --切换数据库为testdb。 ora_1=# \c testdb --删除ORA模式的数据库。 gaussdb=# DROP DATABASE ora_1; DROP DATABASE
  • DB_ARGUMENTS DB_ARGUMENTS视图显示当前用户可访问的存储过程和函数的参数信息。该视图同时存在于PG_CATALOG和SYS Schema下。该视图所有用户都可以访问,显示当前用户可访问的所有信息。 表1 DB_ARGUMENTS字段 名称 类型 描述 owner character varying(128) 函数或存储过程的所有者。 object_name character varying(128) 函数或存储过程的名称。 package_name character varying(128) 包名。 object_id oid 函数或存储过程的OID。 overload character varying(40) 表示该函数是该名称的第n个重载函数。 subprogram_id numeric 包中函数或存储过程的位置。 argument_name character varying(128) 参数名称。 position numeric 该参数在参数列表中的位置,函数返回值位置默认为0。 sequence numeric 定义参数的顺序,从1开始,返回类型在前,然后是每个参数。 data_level numeric 复合类型参数的嵌套深度,此列的值始终为0,因为每个参数现在只显示一行。 data_type character varying(64) 参数的数据类型。 defaulted character varying(1) 参数是否有默认值: Y:表示有默认值。 N:表示没有默认值。 default_value text 暂不支持,值为NULL。 default_length numeric 暂不支持,值为NULL。 in_out character varying(9) 参数出入属性: IN:表示入参。 OUT:表示出参。 IN_OUT:表示出入参。 VARIADIC:表示VARIADIC参数。 data_length numeric 暂不支持,值为NULL。 data_precision numeric 暂不支持,值为NULL。 data_scale numeric 暂不支持,值为NULL。 radix numeric 数字的参数基数,smallint、integer、bigint、numeric、float为10,其余值为NULL。 character_set_name character varying(44) 暂不支持,值为NULL。 type_owner character varying(128) 数据类型所有者。 type_name character varying(128) 参数类型名,仅显示自定义类型。 type_subname character varying(128) 暂不支持,值为NULL。 type_link character varying(128) 暂不支持,值为NULL。 type_object_type character varying(7) type_name类型的类型: TABLE:表示参数为表类型。 VIEW:表示参数为视图类型。 其余值为NULL。 pls_type character varying(128) 对于数字类型参数,为参数的PL/SQL类型的名称,否则为空。 char_length numeric 暂不支持,值为NULL。 char_used character varying(1) 暂不支持,varchar,nvarchar2,bpchar,char类型值为B,其余值为NULL。 origin_con_id character varying(256) 暂不支持,值为0。 父主题: 其他系统视图
  • GS_SEG_SPC_EXTENTS GS_SEG_SPC_EXTENTS获取所有表空间已使用的扩展信息。输出包含segment head、fork head、level1 page、data extent。只支持管理员权限用户查询。 表1 GS_SEG_SPC_EXTENTS 名称 类型 描述 node_name text 节点名称。 tablespace_name name 表空间名称。 file_id integer 数据文件标识。取值范围:[1,5]的int4值。 bucketnode integer 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 2048~6143表示rangebucket表的bucketnode。 forknum integer 数据文件分支。 block_id bigint 数据扩展的起始页面号。 blocks integer 数据扩展大小。取值:1、8、128、1024、4096。 contents text 数据文件的存储内容,取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 in_used text 是否已分配。取值Y/N。 mapblock_location text 扩展在map block中的位置,格式:(page_id, offset)。 head_file_id integer 段头文件标识。 head_block_id bigint 段头页面号。 usage_type text 扩展的使用类型,取值范围: segment head表示段头。 fork head表示分支头。 level1 page表示level页面。 data extent表示数据扩展。 remain_flag text 是否为shrink残留扩展。取值Y/N。 special_data integer 扩展对应反向指针的特殊数据区。 ipblock_location text 扩展反向指针位置,格式:(block_id, offset)。 父主题: 段页式存储
  • 示例 --创建存储过程。 gaussdb=# CREATE OR REPLACE PROCEDURE test_proc(a int) IS proc_var int; BEGIN proc_var := a; END; / --用存储过程名重编译存储过程。 gaussdb=# ALTER PROCEDURE test_proc COMPILE; --用存储过程带类型签名重编译存储过程。 gaussdb=# ALTER PROCEDURE test_proc(int) COMPILE; --修改存储过程的执行规则为IMMUTABLE,即参数不变时返回结果相同。 gaussdb=# ALTER PROCEDURE test_proc(a int) IMMUTABLE; --新建用户。 gaussdb=# CREATE USER joe PASSWORD '********'; --修改存储过程的所有者。 gaussdb=# ALTER PROCEDURE test_proc(a int) OWNER TO joe; --新建模式。 gaussdb=# CREATE SCHEMA test; --修改存储过程的所属模式。 gaussdb=# ALTER PROCEDURE test_proc(a int) SET SCHEMA test; --删除存储过程,函数名需要指定所属模式。 gaussdb=# DROP PROCEDURE test.test_proc; --删除新建的用户和模式。 gaussdb=# DROP USER joe; gaussdb=# DROP SCHEMA test;
  • 语法格式 修改自定义存储过程的附加参数。 ALTER PROCEDURE procedure_name ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) action [ ... ] [ RESTRICT ]; 其中附加参数action子句语法为: {CALLED ON NULL INPUT | STRICT} | {IMMUTABLE | STABLE | VOLATILE} | {SHIPPABLE | NOT SHIPPABLE} | {NOT FENCED | FENCED} | [ NOT ] LEAKPROOF | { [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER } | AUTHID { DEFINER | CURRENT_USER } | COST execution_cost | ROWS result_rows | SET configuration_parameter { { TO | = } { value | DEFAULT }| FROM CURRENT} | RESET {configuration_parameter | ALL} 修改自定义存储过程的名称。 ALTER PROCEDURE procedure_name( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) RENAME TO new_name; 修改自定义存储过程的所属者。 ALTER PROCEDURE procedure_name( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) OWNER TO new_owner; 修改自定义存储过程的模式。 ALTER PROCEDURE procedure_name( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) SET SCHEMA new_schema;
  • 参数说明 procedure_name 要修改的存储过程名称。 取值范围:已存在的存储过程名。 argmode 标识该参数是输入、输出参数。 取值范围:IN/OUT/INOUT/VARIADIC。 argname 参数名称。 取值范围:字符串,符合标识符命名规范。 argtype 存储过程参数的类型。 CALLED ON NULL INPUT 表明该存储过程的某些参数是NULL的时候可以按照正常的方式调用。缺省时与指定此参数的作用相同。 IMMUTABLE 表示该存储过程在给出同样的参数值时总是返回同样的结果。 STABLE 表示该存储过程不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该存储过程值可以在一次表扫描内改变,不会做任何优化。 LEAKPROOF 表示该存储过程没有副作用,指出参数只包括返回值。LEAKPROOF只能由系统管理员设置。 EXTERNAL (可选)目的是和SQL兼容,这个特性适合于所有函数,而不仅是外部函数。 SECURITY INVOKER AUTHID CURRENT_USER 表明该存储过程将以调用它的用户的权限执行。缺省时与指定此参数的作用相同。 SECURITY INVOKER和AUTHID CURRENT_USER的功能相同。 SECURITY DEFINER AUTHID DEFINER 声明该存储过程将以创建它的用户的权限执行。 AUTHID DEFINER和SECURITY DEFINER的功能相同。 COST execution_cost 用来估计存储过程的执行成本。 execution_cost以cpu_operator_cost为单位。 取值范围:正数。 ROWS result_rows 估计存储过程返回的行数。用于存储过程返回的是一个集合。 取值范围:正数,默认值是1000行。 configuration_parameter value 把指定的数据库会话参数值设置为给定的值。如果value是DEFAULT或者RESET,则在新的会话中使用系统的缺省设置。OFF关闭设置。 取值范围:字符串。 DEFAULT OFF RESET 用户指定的值:需要满足修改参数的取值限制 FROM CURRENT 取当前会话中的值设置为configuration_parameter的值。 new_name 存储过程的新名称。要修改存储过程的所属模式,必须拥有新模式的CREATE权限。 取值范围:字符串,符合标识符命名规范。 new_owner 存储过程的新所有者。要修改存储过程的所有者,新所有者必须拥有该存储过程所属模式的CREATE权限。 取值范围:已存在的用户角色。 new_schema 存储过程的新模式。 取值范围:已存在的模式。
共100000条
提示

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