华为云用户手册

  • connect_by_root(col) 描述:仅在层次递归查询中适用,用于返回当前行最顶层父亲行中某列的值。 参数col为输出列的名称。仅支持如下类型的列:INT8、INT1、INT2、OID、INT4、BOOL、CHAR、NAME、FLOAT4、FLOAT8、ABSTIME、RELTIME、DATE、CASH、TIME、TIMESTAMP、TIMESTAMPTZ、SMALLDATETIME、UUID、INTERVAL、TIMETZ、INT2VECTOR、CLOB、NVARCHAR2、VARCHAR、TEXT、VECTOR、BPCHAR、RAW、BYTEA、NUMERIC、XID、CID以及TID,且通过强制类型转换为上述类型的操作无法绕开白名单限制,如:connect_by_root(col::text)(其中col不是上述白名单中的类型)。 返回值类型:即为所指定列col的数据类型。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 --建表导数。 gaussdb=# CREATE TABLE connect_by_table(id int,pid int,name text); CREATE TABLE gaussdb=# INSERT INTO connect_by_table VALUES(1,0,'a'),(2,1,'b'),(3,2,'c'),(4,1,'d'); INSERT 0 4 --查询。 gaussdb=# SELECT *, connect_by_root(name) FROM connect_by_table START WITH id = 1 CONNECT BY prior id = pid ORDER BY pid, id; id | pid | name | connect_by_root ----+-----+------+----------------- 1 | 0 | a | a 2 | 1 | b | a 4 | 1 | d | a 3 | 2 | c | a (4 rows) --恢复环境。 gaussdb=# drop table if exists connect_by_table; DROP TABLE
  • 示例 --创建并切换至测试数据库。 gaussdb=# CREATE DATABASE test1 WITH DBCOMPATIBILITY = 'B' ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.utf8' LC_CTYPE = 'zh_CN.utf8'; gaussdb=# \c test1 --创建一个角色role1。 test1=# CREATE ROLE role1 IDENTIFIED BY '********'; --为用户role1创建一个同名schema,子命令创建的表films和winners的拥有者为role1。 test1=# CREATE SCHEMA AUTHORIZATION role1 CREATE TABLE films (title text, release date, awards text[]) CREATE VIEW winners AS SELECT title, release FROM films WHERE awards IS NOT NULL; --创建一个schema ds,指定schema的默认字符集为utf8mb4,默认字符序为utf8mb4_bin。仅在B模式下(即sql_compatibility='B')支持该语法。 test1=# CREATE SCHEMA ds CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; --创建角色role2。 test1=# CREATE ROLE role2 IDENTIFIED BY '********'; --根据名称创建schema。 test1=# CREATE SCHEMA schema1 AUTHORIZATION role2; CREATE SCHEMA --在进行防篡改属性属性修改前,需要对enable_ledger参数进行设置,enable_ledger参数默认为off,所以通过gs_guc来设置其为on。 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "enable_ledger=on"; --设置完之后查看其参数状态为on说明设置成功,就可以进行防篡改属性属性配置。 test1=# SHOW enable_ledger; enable_ledger --------------- on (1 row) --指定防篡改属性创建schema。 test1=# CREATE SCHEMA ledgernsp WITH BLOCKCHAIN; CREATE SCHEMA --创建防篡改用户表。 test1=# CREATE TABLE ledgernsp.usertable(id int, name text); CREATE TABLE --删除schema。 test1=# DROP SCHEMA role1 CASCADE; test1=# DROP SCHEMA ds CASCADE; test1=# DROP SCHEMA schema1 CASCADE; test1=# DROP SCHEMA ledgernsp CASCADE; --删除用户。 test1=# DROP USER role1 CASCADE; test1=# DROP USER role2 CASCADE; --切换至默认数据库,请根据实际情况修改数据库名字。 test1=# \c postgres gaussdb=# DROP DATABASE test1;
  • 参数说明 schema_name 模式名称。 模式名不能和当前数据库里其他的模式重名。 模式名不能和当前数据库的初始用户重名。 模式的名称不能以“pg_”开头。 模式的名称不能以“gs_role_”开头。 取值范围:字符串,要符合标识符命名规范。 AUTHORIZATION user_name 指定模式的所有者。当不指定schema_name时,把user_name当作模式名,此时user_name只能是角色名。 取值范围:已存在的用户名/角色名。 WITH BLOCKCHAIN 指定模式的防篡改属性,防篡改模式下的行存普通用户表将自动扩展为防篡改用户表。 创建防篡改模式,需设置GUC参数enable_ledger为on,该参数默认值为off,级别为SIGHUP。 schema_element 在模式里创建对象的SQL语句。目前仅支持CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE TABLE PARTITION、CREATE SEQUENCE、CREATE TRIGGER、GRANT子句。 子命令所创建的对象都被AUTHORIZATION子句指定的用户所拥有。 default_charset 指定模式的默认字符集。单独指定时会将模式的默认字符序设置为指定的字符集的默认字符序。 仅在B模式下(即sql_compatibility='B')支持该语法。 default_collation 指定模式的默认字符序。单独指定时会将模式的默认字符集设置为指定的字符序对应的字符集。 仅在B模式下(即sql_compatibility='B')支持该语法。支持字符序请参见表1。 如果当前搜索路径上的模式中存在同名对象时,需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH来查看当前搜索路径上的模式。
  • 参数说明 IF EXISTS 如果指定的模式不存在,发出一个notice而不是抛出一个错误。 schema_name 模式的名称。 取值范围:已存在模式名。 CASCADE | RESTRICT CASCADE:自动删除包含在模式中的对象。 RESTRICT:如果模式包含任何对象,则删除失败(缺省行为)。 不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。 无法删除当前模式。如果要删除当前模式,须切换到其他模式下。
  • 示例 --创建角色role2。 gaussdb=# CREATE ROLE role2 IDENTIFIED BY '********'; --根据名称创建schema。 gaussdb=# CREATE SCHEMA schema1 AUTHORIZATION role2; CREATE SCHEMA --删除schema。 gaussdb=# DROP SCHEMA schema1 CASCADE; --删除用户。 gaussdb=# DROP USER role2 CASCADE;
  • 使用证书认证 前置条件:登录 GaussDB 管理控制台,在“实例管理”页面,单击实例名称进入“基本信息”页面,单击“SSL”处的,下载根证书或捆绑包,将根证书ca.pem放置在客户端。 使用客户端配置证书的方式连接数据库的命令如下: 导入java.sql.Connection、java.sql.DriverManager、java.util.Properties。 此外,用户需要根据实际的应用场景,再导入其他的接口和类,详见JDBC接口参考。 import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; 指定数据库sourceURL($ip、$port、database需要用户自行修改)、用户名和密码。 用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。 String sourceURL = "jdbc:gaussdb://$ip:$port/database"; Properties urlProps = new Properties(); urlProps.setProperty("user", System.getenv("EXAMPLE_USERNAME_ENV")); urlProps.setProperty("password", System.getenv("EXAMPLE_PASSWORD_ENV")); 设置SSL属性为true,在客户端配置ca.pem根证书。 urlProps.setProperty("ssl", "true"); urlProps.setProperty("sslrootcert", "ca.pem");; 配置sslmode。 sslmode设置值:require、verify-ca、verify-full,参数介绍详见sslmode。客户根据应用场景选择一种即可。 /* 设置sslmode为require */ urlProps.setProperty("sslmode", "require"); /* 设置sslmode为verify-ca */ urlProps.setProperty("sslmode", "verify-ca"); /* 设置sslmode为verify-full(Linux下验证) */ urlProps.setProperty("sslmode", "verify-full"); 加载驱动。 在代码运行工具(如IDE)中添加gaussdbjdbc.jar包。 执行以下命令加载数据库驱动程序“com.huawei.gaussdb.jdbc.Driver”。 Class.forName("com.huawei.gaussdb.jdbc.Driver"); 创建数据库连接。 调用DriverManager.getConnection(String url, Properties info),进行数据库连接。 Connection conn = DriverManager.getConnection(sourceURL,urlProps);
  • REPLICATION_SLOTS REPLICATION_SLOTS视图用于查看复制槽的信息,如表1所示。 表1 REPLICATION_SLOTS字段 名称 类型 描述 slot_name text 复制槽的名称。 plugin text 逻辑复制槽对应的输出插件名称。 slot_type text 复制槽的类型。 physical:物理复制槽。 logical:逻辑复制槽。 datoid oid 复制槽所在的数据库OID。 database name 复制槽所在的数据库名称。 active boolean 复制槽是否为激活状态。 t(true):表示是。 f(false):表示不是。 xmin xid 数据库需要为复制槽保留的最早事务的事务号。 catalog_xmin xid 数据库需要为逻辑复制槽保留的最早的涉及系统表的事务的事务号。 restart_lsn text 复制槽需要的最早xlog的物理位置。 dummy_standby boolean 预留参数。 复制槽的连接对端是否为从备。 t(true):表示是。 f(false):表示不是。 父主题: Utility
  • 参数说明 name 要定义的操作符。可用的字符见上文。其名字可以用模式修饰, 比如CREATE OPERATOR myschema.+ (...)。如果没有模式, 则在当前模式中创建操作符。同一个模式中的两个操作符可以有一样的名字,只要操作不同的数据类型。这是一个重载过程。 function_name 用于实现该操作符的函数。 left_type 操作符左边的参数数据类型,如果存在的话。如果是左目操作符,这个参数可以省略。 right_type 操作符右边的参数数据类型,如果存在的话。如果是右目操作符,这个参数可以省略。 com_op 该操作符对应的交换操作符。 neg_op 该操作符对应的负操作符。 res_proc 此操作符约束选择性评估函数。 join_proc 此操作符连接选择性评估函数。 HASHES 表明此操作符支持 Hash 连接。 MERGES 表明此操作符可以支持一个融合连接。 使用OPERATOR()语法在com_op 或者其它可选参数里给出一个模式修饰的操作符名,比如: COMMUTATOR = OPERATOR(myschema.===) ,
  • 示例 下面命令定义一个新操作符:面积相等,用于box数据类型。 CREATE OPERATOR === ( LEFTARG = box, RIGHTARG = box, PROCEDURE = area_equal_procedure, COMMUTATOR = ===, NEGATOR = !==, RESTRICT = area_restriction_procedure, JOIN = area_join_procedure, HASHES, MERGES ); SELECT box1 === box2; 在其他schema下定义操作符: CREATE OPERATOR pg_temp.=== ( LEFTARG = box, RIGHTARG = box, PROCEDURE = area_equal_procedure, COMMUTATOR = ===, NEGATOR = !==, RESTRICT = area_restriction_procedure, JOIN = area_join_procedure, HASHES, MERGES ); SELECT box1 OPERATOR(pg_temp.===) box2;
  • 语法格式 CREATE OPERATOR name ( PROCEDURE = function_name [, LEFTARG = left_type ] [, RIGHTARG = right_type ] [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ] [, RESTRICT = res_proc ] [, JOIN = join_proc ] [, HASHES ] [, MERGES ] );
  • 参数说明 statement 指定要分析的SQL语句。 ANALYZE boolean | ANALYSE boolean 显示实际运行时间和其他统计数据。当两个参数同时使用时,在option中排在后面的一个生效。 取值范围: TRUE(缺省值):显示实际运行时间和其他统计数据。 FALSE:不显示。 VERBOSE boolean 显示有关计划的额外信息。 取值范围: TRUE(缺省值):显示额外信息。 FALSE:不显示。 COSTS boolean 包括每个规划节点的估计总成本,以及估计的行数和每行的宽度。 取值范围: TRUE(缺省值):显示估计总成本和宽度。 FALSE:不显示。 CPU boolean 打印CPU的使用情况的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):显示CPU的使用情况。 FALSE:不显示。 DETAIL boolean 打印数据库节点上的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):打印数据库节点的信息。 FALSE:不打印。 BUFFERS boolean 包括缓冲区的使用情况的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE:显示缓冲区的使用情况。 FALSE(缺省值):不显示。 TIMING boolean 包括实际的启动时间和花费在输出节点上的时间信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):显示启动时间和花费在输出节点上的时间信息。 FALSE:不显示。 PLAN boolean 是否将执行计划存储在plan_table中。当该选项开启时,会将执行计划存储在plan_table中,不打印到当前屏幕,因此该选项为on时,不能与其他选项同时使用。 取值范围: ON(缺省值):将执行计划存储在plan_table中,不打印到当前屏幕。执行成功返回EXPLAIN SUC CES S。 OFF:不存储执行计划,将执行计划打印到当前屏幕。 BLOCKNAME boolean 是否显示计划的每个操作所处于的查询块。当该选项开启时,会将每个操作所处于的查询块的名字输出在Query Block列上,方便用户获取查询块名字,并使用Hint修改执行计划: TRUE(缺省值):显示计划时,将每个操作所处于的查询块的名字输出在新增列Query Block列上。该选项需要在pretty模式下使用。具体请参见指定Hint所处于的查询块Queryblock。 FALSE:不对计划显示产生影响。 OUTLINE boolean 是否显示计划的Outline Hint信息。 ON:显示计划时,将Outline Hint显示在计划下方 。该选项需要在pretty模式下使用。具体请参见Outline Hint。 OFF(缺省值):不显示计划的Outline Hint信息。 ADAPTCOST boolean 在Normal模式下是否显示计划的基数估计方式信息。 ON(缺省值):Normal模式下,在计划节点上展示基数估计的方式,包含默认方式和反馈方式,不对预备语句生效。 OFF:不展示基数估计的方式信息。 FORMAT 指定输出格式。 取值范围:TEXT,XML,JSON和YAML。 默认值:TEXT。 PERFORMANCE 使用此选项时,即打印执行中的所有相关信息。下述为部分信息描述: ex c/r:代表平均每行使用cpu周期数,等于(ex cyc)/(ex row)。 ex row:执行行数。 ex cyc:代表使用的cpu周期数。 inc cyc:代表包含子节点使用的总cpu周期数。 shared hit:代表算子的share buffer命中情况。 loops:算子循环执行次数。 total_calls:生成元素总数。 remote query poll time stream gather:算子用于侦听各DN数据到达CN的网络poll时间。 deserialize time:反序列化所需时间。 estimated time:估计时间。 OPTEVAL boolean 是否显示SCAN算子(当前仅支持seqscan、indexscan、indexonlyscan、bitmapheapscan)的代价淘汰明细,当开启此开关的时候,会在执行计划中显示一个名字为Cost Evaluation Info (identified by plan id)的计划块,该选项仅仅可以和COSTS、VERBOSE、FORMAT三个选项共存。此计划块中的具体参数明细,请参见示例2。 取值范围: TRUE:显示SCAN算子的代价淘汰明细。 FALSE(缺省值):不显示。
  • 语法格式 显示SQL语句的执行计划,支持多种选项,对选项顺序无要求。 EXPLAIN [ ( option [, ...] ) ] statement; 其中选项option子句的语法为。 ANALYZE [ boolean ] | ANALYSE [ boolean ] | VERBOSE [ boolean ] | COSTS [ boolean ] | CPU [ boolean ] | DETAIL [ boolean ] | BUFFERS [ boolean ] | TIMING [ boolean ] | PLAN [ boolean ] | BLOCKNAME [ boolean ] | OUTLINE [ boolean ] | ADAPTCOST [ boolean ] | FORMAT { TEXT | XML | JSON | YAML } | OPTEVAL [ boolean ] 显示SQL语句的执行计划,且要按顺序给出选项。 EXPLAIN { [ ANALYZE | ANALYSE ] [ VERBOSE ] | PERFORMANCE } statement;
  • 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,影响计划生成器估算执行该语句将花费多长的时间。 若指定了ANALYZE选项,则该语句会被执行,然后根据实际的运行结果显示统计数据,包括每个计划节点内时间总开销(毫秒为单位)和实际返回的总行数。这对于判断计划生成器的估计值是否接近实际值非常有用。
  • GS_OS_RUN_INFO GS_OS_RUN_INFO视图显示当前操作系统的运行状态信息。 表1 GS_OS_RUN_INFO字段 名称 类型 描述 id integer 编号。 name text 操作系统运行状态名称。 value numeric 操作系统运行状态值。 comments text 操作系统运行状态注释。 cumulative boolean 操作系统运行状态的值是否为累加值。 父主题: 其他系统视图
  • _PG_USER_MAPPINGS 存储从本地用户到远程的映射,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_USER_MAPPINGS字段 名称 类型 描述 oid oid 从本地用户到远程的映射的oid。 umoptions text[] 用户映射指定选项,使用"keyword=value”格式的字符串。 umuser oid 被映射的本地用户的oid,如果用户映射是公共的则为0。 authorization_identifier information_schema.sql_identifier 本地用户角色名称。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在的数据库名称(永远是当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器名称。 srvowner information_schema.sql_identifier 外部服务器所有者。 父主题: Information Schema
  • STAT_XACT_USER_TABLES 显示当前节点Schema中用户表的事务状态信息,如表1所示。 表1 STAT_XACT_USER_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan bigint 该表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 该表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(即没有更新索引列的行数)。 父主题: Object
  • MY_TYPES MY_TYPES视图用于描述当前用户所拥有的所有对象类型。所有用户都可以访问该视图。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 MY_TYPES字段 名称 类型 描述 type_name character varying(128) 类型名称。 type_oid raw 类型的标识符(OID)。 typecode character varying(128) 类型的类型代码。 attributes numeric 类型中的属性数。 methods numeric 暂不支持,值为0。 predefined character varying(3) 表示该类型是否是内置类型。 incomplete character varying(3) 表示类型是否为不完整类型。 final character varying(3) 暂不支持,值为NULL。 instantiable character varying(3) 暂不支持,值为NULL。 persistable character varying(3) 暂不支持,值为NULL。 supertype_owner character varying(128) 暂不支持,值为NULL。 supertype_name character varying(128) 暂不支持,值为NULL。 local_attributes numeric 暂不支持,值为NULL。 local_methods numeric 暂不支持,值为NULL。 typeid raw 暂不支持,值为NULL。 父主题: 其他系统视图
  • ADM_CONSTRAINTS ADM_CONSTRAINTS视图显示数据库表中约束的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_CONSTRAINTS字段 名称 类型 描述 owner character varying(64) 约束创建者。 constraint_name character varying(64) 约束名。 constraint_type text 约束类型: c:表示检查约束。 f:表示外键约束。 p:表示主键约束。 u:表示唯一约束。 table_name character varying(64) 约束相关的表名。 index_owner character varying(64) 约束相关的索引的所有者(只针对唯一约束和主键约束)。 index_name character varying(64) 约束相关的索引名(只针对唯一约束和主键约束)。 status character varying(8) 约束的状态。 generated character varying(14) 暂不支持,值为NULL。 search_condition text 暂不支持,值为NULL。 search_condition_vc character varying(4000) 暂不支持,值为NULL。 r_owner character varying(128) 暂不支持,值为NULL。 r_constraint_name character varying(128) 暂不支持,值为NULL。 delete_rule character varying(9) 暂不支持,值为NULL。 con_deferrable character varying(14) 暂不支持,值为NULL。 deferred character varying(9) 暂不支持,值为NULL。 validated character varying(13) 暂不支持,值为NULL。 bad character varying(3) 暂不支持,值为NULL。 rely character varying(4) 暂不支持,值为NULL。 last_change timestamp(0) without time zone 暂不支持,值为NULL。 invalid character varying(7) 暂不支持,值为NULL。 view_related character varying(14) 暂不支持,值为NULL。 origin_con_id character varying(256) 暂不支持,值为NULL。 父主题: 其他系统视图
  • 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表示hashbucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum integer 段对象的分支类型,取值范围: 0表示main fork。 1表示fsm fork。 2表示vm fork。 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)。 父主题: 段页式存储
  • 语法格式 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ column_name type_name [ OPTIONS ( { option 'value' } [, ... ] ) ] [ COLLATE collation ] [ column_constraint [ ... ] ] [, ... ] ] ) SERVER server_name [ OPTIONS ( { option 'value' } [, ... ] ) ]; 其中列约束column_constraint为: [ CONSTRAINT constraint_name ] { NOT NULL | NULL | DEFAULT default_expr }
  • 示例 --创建server。 gaussdb=# CREATE SERVER my_server FOREIGN DATA WRAPPER log_fdw; --创建外表。 gaussdb=# CREATE FOREIGN TABLE foreign_tbl (col1 text) SERVER my_server OPTIONS (logtype 'gs_log'); --删除外表。 gaussdb=# DROP FOREIGN TABLE foreign_tbl; --删除server。 gaussdb=# DROP SERVER my_server;
  • 注意事项 外表中暂不支持使用系统列(如tableoid,ctid等),其中Private和Shared模式的外表,需要初始用户或者运维模式下(operation_mode)的运维管理员权限。 OPTIONS中的敏感字段(如password, secret_access_key)在使用多层引号时,语义和不带引号的场景是不同的,因此不会被识别为敏感字段进行脱敏。 多租场景下,只有初始用户可在PDB内部执行CREATE FOREIGN TABLE命令。
  • dw_file_num 参数说明:设置批量双写文件的数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 16 默认值:1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数值与pagewriter_thread_num有关,不会大于pagewriter_thread_num。如果dw_file_num设置过大,内部会纠正为pagewriter_thread_num大小。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • pagewriter_thread_num 参数说明:增量检查点打开后,设置后台刷页的线程数,将按照脏页置脏的先后顺序刷盘,产生干净的缓冲区页面,并推进用于打检查点的恢复点。 参数类型:整型 参数单位:无 取值范围:1 ~ 16 默认值:4 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • dirty_page_percent_max 参数说明:增量检查点打开后,设置脏页数量占shared_buffers的最大期望百分比。达到这个设定值时,后台刷页线程将以设置的max_io_capacity刷脏。 参数类型:浮点型 参数单位:无 取值范围:0.1 ~ 1 默认值:0.9 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • pagewriter_sleep 参数说明:增量检查点模式下,设置pagewriter刷页线程的刷脏周期。 参数类型:整型 参数单位:ms(毫秒) 取值范围:0 ~ 3600000 默认值:2000(即2s) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:不宜设置大于2s。脏页产生很快的情况下,建议设置100ms - 500ms,因为设置过大会导致redo点推进过慢,影响xlog回收。 设置不当的风险与影响:设置过大时,会导致刷页速度降低,redo点推进过慢,从而影响xlog回收;同时,由于停止实例时需要等待该参数设置的时间,设置过大时可能导致进程退出超时。
  • max_io_capacity 参数说明:设置后端pagewriter刷页线程批量刷脏每秒的I/O上限。 参数类型:整型 参数单位:kB 取值范围:30720 ~ 10485760 默认值:512000(即500MB) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不带单位,则默认为kB;取值如果要带单位,必须为kB、MB、GB。例如:max_io_capacity=512000,max_io_capacity=512000kB,max_io_capacity=500MB都表示设置max_io_capacity为500MB。 设置建议:根据具体业务场景和磁盘I/O能力进行设置。比如磁盘I/O带宽为500MB,建议设置带宽为500MB以内。要求更小的RTO时间或者在大容量场景,可以调大max_io_capacity,例如设置为2GB。 设置不当的风险与影响:设置过小时,刷脏速度慢于业务产生脏页的速度,会导致缓冲区脏页满,从而导致性能劣化。设置过大时,会导致写放大,影响存储设备寿命。
  • enable_consider_usecount 参数说明:设置缓冲区的页面淘汰算法是否考虑页面冷热程度。 参数类型:布尔型 参数单位:无 取值范围: on:表示考虑页面冷热程度。 off:表示不考虑页面冷热程度。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议大容量场景等频繁执行单页面淘汰的场景开启此参数。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • postmaster_parallel_init_thread_num 参数说明:设置数据库启动时可使用的并行线程数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 256 默认值:16 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:该数值表示并行初始化的线程数量,因此建议设置值不超过(环境CPU核数量-1)。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • bgwriter_lru_multiplier 参数说明:数据库内核根据当前缓冲区大小设置shared_buffers,在内核实际运行业务时发现当前设置的shared_buffers过小或过大,通过调整bgwriter_lru_multiplier参数给出最优推荐值,推荐值为该参数和shared_buffers的乘积。设置为推荐值之后,在数据库重新启动时生效。 参数类型:浮点型 参数单位:无 取值范围:0 ~ 10 默认值:2 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议: 写“脏”缓存区到磁盘的数目取决于服务器最近几次使用的缓存区数目。最近使用buffers数目的平均值乘以bgwriter_lru_multiplier是为了评估下次服务器进程需要使用的buffers数目。在有足够多的干净的、可用的缓存区之前,后端写线程会一直写“脏”缓存区(每次写的缓存区数目不会超过bgwriter_lru_maxpages的值)。 设置bgwriter_lru_multiplier为1.0表示一种“实时”策略,其作用是准确预测下次写“脏”缓冲区的数目。设置为较大的值可以应对突然的需求高峰,而较小的值则可以让服务器进程执行更多的写操作。 设置较小的bgwriter_lru_maxpages和bgwriter_lru_multiplier,会减小后端写线程导致的额外I/O开销,但是服务器进程会发出写操作,增加了对查询的响应时间。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
共100000条
提示

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