华为云用户手册

  • enable_roach_standby_cluster 参数说明:设置双数据库实例中备数据库实例的各个实例是否为只读模式,仅sysadmin用户可以访问。 参数类型:布尔型 参数单位:无 取值范围: on:表示备数据库实例开启只读模式。 off:表示备数据库实例关闭只读模式。此情况下,备数据库实例可读可写。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:备份恢复使用,不建议用户修改。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • RepOriginId 参数说明:该参数是一个会话级别的GUC参数,在双向逻辑复制的场景下,为避免数据循环复制,需要设置为一个非0的值。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647‬ 默认值:0 设置方式:该参数属于USERSET类型参数,请参考表2中的方式三进行设置。 设置建议:在双向逻辑复制的场景下,需要设置为一个非0的值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • GLOBAL_PARALLEL_DECODE_STATUS GLOBAL_PARALLEL_DECODE_STATUS视图用于查看当前节点上的复制槽的并行解码信息,如表1所示。 表1 GLOBAL_PARALLEL_DECODE_STATUS字段 名称 类型 描述 node_name name 节点名称。 slot_name text 复制槽的名称。 parallel_decode_num integer 该复制槽的并行解码线程数。 read_change_queue_length text 将每个解码线程读取日志队列的当前长度拼接后输出。 decode_change_queue_length text 将每个解码线程解码结果队列的当前长度拼接后输出。 reader_lsn text 当前reader线程读取的日志位置。 working_txn_cnt bigint 当前拼接-发送线程中正在拼接的事务个数。 working_txn_memory bigint 拼接-发送线程中拼接事务占用总内存(单位:字节)。 decoded_time timestamp with time zone 该复制槽最后一次读取逻辑日志的时间。 父主题: Utility
  • 简化输入 简化输入到 CS V日志文件,可以通过如下操作: 设置log_filename和log_rotation_age,为日志文件提供一个一致的、可预测的命名方案。通过日志文件名,预测一个独立的日志文件完成并进入准备导入状态的时间。 将log_rotation_size设为0来终止基于尺寸的日志回滚,因为基于尺寸的日志回滚让预测日志文件名变得非常的困难。 将log_truncate_on_rotation设为on以便区分在同一日志文件中旧的日志数据和新的日志数据。
  • csvlog定义 以“逗号分隔值” 即CSV(Comma Separated Value)的形式发出日志。 以下是简单的用来存储CSV形式日志输出的表定义: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 CREATE TABLE gaussdb_log ( log_time timestamp(3) with time zone, node_name text, user_name text, database_name text, process_id bigint, connection_from text, "session_id" text, session_line_num bigint, command_tag text, session_start_time timestamp with time zone, virtual_transaction_id text, transaction_id bigint, query_id bigint, module text, error_severity text, sql_state_code text, message text, detail text, hint text, internal_query text, internal_query_pos integer, context text, query text, query_pos integer, location text, application_name text ); 详细说明请参见表1。 表1 csvlog字段含义表 字段名 字段含义 字段名 字段含义 log_time 毫秒级的时间戳 module 日志所属模块 node_name 节点名称 error_severity ERRORSTATE代码 user_name 用户名 sql_state_code SQLSTATE代码 database_name 数据库名 message 错误消息 process_id 线程ID detail 详细错误消息 connection_from 客户主机:端口号 hint 提示 session_id 会话ID internal_query 内部查询(查询那些导致错误的信息,如果有的话) session_line_num 每个会话的行数 internal_query_pos 内部查询指针 command_tag 命令标签 context 环境 session_start_time 会话开始时间 query 错误发生位置的字符统计 virtual_transaction_id 常规事务 query_pos 错误发生位置指针 transaction_id 事务ID location 在 GaussDB 源代码中错误的位置(如果log_error_verbosity的值设为verbose ) query_id 查询ID application_name 应用名称 使用COPY FROM命令将日志文件导入这个表: 1 COPY gaussdb_log FROM '/opt/data/gs_log/logfile.csv' WITH csv; 此处的日志名“logfile.csv”要换成实际生成的日志的名称。
  • 语法格式 开启匿名块。 [DECLARE [declare_statements]] BEGIN execution_statements END; / 开启事务。 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ];
  • 参数说明 declare_statements 声明变量,包括变量名和变量类型,如“sales_cnt int”。 execution_statements 匿名块中要执行的语句。 取值范围:DML操作(数据操纵操作:select、insert、delete、update)或系统表中已注册的函数名称。 WORK | TRANSACTION BEGIN语法格式中的可选关键字,没有实际作用。 ISOLATION LEVEL 指定事务隔离级别,它决定当一个事务中存在其他并发运行事务时它能够看到什么数据。 在事务中第一个数据修改语句(INSERT,DELETE,UPDATE,FETCH,COPY)执行之后,事务隔离级别就不能再次设置。 取值范围: READ COMMITTED:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。 READ UNCOMMITTED:读未提交隔离级别,指定后的行为和READ COMMITTED行为一致。 REPEATABLE READ:可重复读隔离级别,仅仅看到事务开始之前提交的数据,它不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。 SERIALIZABLE:目前功能上不支持此隔离级别,设置该隔离级别时,等价于REPEATABLE READ。 READ WRITE | READ ONLY 指定事务访问模式(读/写或者只读)。
  • 示例 开启事务。 --建表并插入数据。 gaussdb=# CREATE TABLE tbl_test1(col1 int, col2 int); gaussdb=# INSERT INTO tbl_test1 VALUES (1,1), (2,2), (3,3); --以默认方式启动事务。 gaussdb=# BEGIN; INSERT INTO tbl_test1 VALUES (4,4); END; --以隔离级别为REPEATABLE READ方式启动事务。 gaussdb=# BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT * FROM tbl_test1; END; --删除表。 gaussdb=# DROP TABLE tbl_test1; 匿名块。 1 2 3 4 5 --使用匿名块输出字符串。 gaussdb=# BEGIN dbe_output.print_line('Hello'); END; /
  • 日期/时间类型哪些带时区,哪些不带时区? 答:date、time、timestamp、smalldatetime等类型不带时区,timetz、timestamptz等类型带时区。 --timestamp类型不带时区。 gaussdb=# SELECT '2019-01-01'::timestamp; timestamp --------------------- 2019-01-01 00:00:00 (1 row) --timestamptz类型带时区。 gaussdb=# SELECT '2019-01-01'::timestamptz; timestamptz ------------------------ 2019-01-01 00:00:00+08 (1 row) 父主题: FAQ
  • 为什么查询中无法识别表名或者列名? 答:无法识别名称最常见的原因是创建过程中表名或者列名使用了双引号引入了大小写。使用双引号时,表名和列名(称为标识符)在存储是区分大小写的,所以在查询时必须使用双引号且大小写需要与创建时匹配。因为某些接口或应用程序在创建时会自动引入双引号,所以建议创建时统一使用小写。示例: --创建表。 gaussdb=# CREATE TABLE "TB_test" ("Tid" int, num int); --查询表时不加双引号,默认都为小写,会报错。 gaussdb=# SELECT * FROM TB_test; ERROR: relation "tb_test" does not exist LINE 1: SELECT * FROM TB_test; gaussdb=# SELECT Tid FROM "TB_test"; ERROR: Column "tid" does not exist LINE 1: SELECT Tid FROM "TB_test" --查询时加双引号。 gaussdb=# SELECT "Tid" FROM "TB_test"; Tid ----- (0 rows) --删除表。 gaussdb=# DROP TABLE "TB_test"; 父主题: FAQ
  • PL/SQL语言函数 PL/SQL是一种可载入的过程语言。 用PL/SQL创建的函数可以被用在任何可以使用内建函数的地方。例如,可以创建复杂条件的计算函数并且后面用它们来定义操作符或把它们用于索引表达式。 SQL被大多数数据库用作查询语言,它是可移植的并且容易学习。但是每一个SQL语句必须由数据库服务器单独执行。 这意味着客户端应用对于每一个查询都要执行以下过程:发送查询到数据库服务器、等待查询被接收、接收并处理结果、进行相关计算、然后发送更多查询给服务器。如果客户端和数据库服务器不在同一台机器上,那么这个过程还会引起进程间通信问题并且将带来网络负担。 通过PL/SQL,可以将一整块计算和一系列查询分组在数据库服务器内部,这样就有了一种过程语言的能力并且使SQL更易用,同时能节省客户端/服务器通信开销。PL/SQL的优点如下: 客户端和服务器之间的额外往返通信被消除。 客户端不需要的中间结果不必被整理或者在服务器和客户端之间传送。 多轮的查询解析可以被避免。 PL/SQL可以使用SQL中所有的数据类型、操作符和函数,应用PL/SQL创建函数的语法为CREATE FUNCTION。 PL/SQL是一种可载入的过程语言,其应用方法与存储过程相似,但存储过程无返回值,PL/SQL语言函数有返回值。 XML类型数据支持作为自定义函数的入参、出参、自定义变量和返回值。 父主题: 用户自定义函数
  • SUMMARY_STAT_ALL_INDEXES 显示数据库各节点的每个索引的访问信息的汇总求和结果(其中timestamp类型字段不进行求和,仅取所有节点该字段的最新值),如表1所示。 表1 SUMMARY_STAT_ALL_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 last_updated timestamp with time zone 视图中该索引监控数据最后一次更新的时间。 父主题: Object
  • xlog_lock_file_path 参数说明:双数据库实例共享存储场景下,xlog日志共享盘抢占的锁文件的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:NULL 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:设置不当会使数据库无法启动。
  • xlog_file_path 参数说明:双数据库实例共享存储场景下,xlog日志共享盘的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:NULL 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:设置不当会使数据库无法启动。
  • xlog_file_size 参数说明:双数据库实例共享存储场景下,xlog日志共享盘的大小。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。 参数类型:整型 参数单位:Byte 取值范围:134217728~576460752303423487 默认值:549755813888 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • wal_receiver_bind_cpu 参数说明:WAL receiver 线程绑定CPU的核号。多个线程允许绑定一个核,但是会导致性能下降,因此不建议。 参数类型:整型 参数单位:无 取值范围:-1~2147483647。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把WAL receiver 线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。虽然最大值为INT_MAX,但是实际和所用设备核数相关,设置的最大值不能超过(核数-1)。 设置不当的风险与影响:设置值超过(核数-1),会导致数据库无法启动。
  • force_promote 参数说明:备机强切功能开关。 备机强切在数据库实例故障状态下,以丢失部分数据为代价换取数据库实例尽可能快地恢复服务;是数据库实例状态为不可用时的一个逃生方法,不建议频繁触发。如果操作者不清楚备机强切后丢失数据对业务的影响,请勿使用本功能。 参数类型:整型 参数单位:无 取值范围: 0:表示关闭。 1:表示开启。 默认值:0 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。使用备机强切功能时,DN和cmserver都需要将此参数设置为开启,重启数据库后生效。 设置建议:不推荐开启此参数。 设置不当的风险与影响:开启后,触发强切会导致丢失部分数据。
  • wal_debug 参数说明:允许输出wal相关的调试信息。仅在编译时开启WAL_DEBUG编译宏时可用。 参数类型:布尔型 参数单位:无 取值范围: true:表示允许输出wal相关的调试信息。 false:表示不允许输出wal相关的调试信息。 默认值:false 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:调试时使用的参数,不建议生产环境开启。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • wal_flush_timeout 参数说明:遍历walInsertStatusTable的超时时间。xlog刷盘自适应控制的刷盘I/O遍历walInsertStatusTable等待的最大时间。 参数类型:整型 参数单位:us(微秒) 取值范围:0 ~ 90000000 默认值: 2(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内存);800(4核CPU/16G内存) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置值过大可能造成xlog刷盘频率降低,降低xlog处理性能。
  • wal_rec_writer_bind_cpu 参数说明:WAL receiver writer 线程绑定CPU的核号。多个线程允许绑定一个核,但是会导致性能下降,因此不建议。 参数类型:整型 参数单位:无 取值范围:-1~2147483647。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把WAL receiver writer 线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。虽然最大值为INT_MAX,但是实际和所用设备核数相关,设置的最大值不能超过(核数-1)。 设置不当的风险与影响:设置值超过(核数-1),会导致数据库无法启动。
  • max_size_for_shared_storage_xlog_write 参数说明:控制共享盘单次写入的最大数据量。 参数类型:整型 参数单位:kB 取值范围:8~131072 默认值:1024 设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • full_page_writes 参数说明:设置GaussDB服务器在检查点之后对页面的第一次修改时,是否将每个磁盘页面的全部内容写到WAL日志中。当enable_incremental_checkpoint和enable_double_write同时打开时,则不开启full_page_writes。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用此特性。 off:表示关闭此特性。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。启用此特性后,完整的页面写到磁盘,会在崩溃重启过程中,保证页面被正确还原进而确保数据完整,代价是增加了写入WAL日志的数据量。 设置不当的风险与影响:关闭此特性后,由于操作系统崩溃过程中可能出现磁盘页面只写入了一部分内容的现象,从而导致无法恢复原来的数据。如果服务器硬件的特质(比如电池供电的磁盘控制器)可以减小部分页面的写入风险,或者文件系统特性支持(比如ReiserFS 4),并且用户清楚知道写入风险在可接受的范畴,才可以关闭这个参数。
  • wal_log_hints 参数说明:在检查点之后,如果对页面的第一次修改是对页面上元组hint bits的修改时,是否将整个页面的全部内容写到WAL日志中。 参数类型:布尔型 参数单位:无 取值范围: on:表示整个页面全部内容写到WAL日志中。 off:表示整个页面内容不会写到WAL日志中。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:不推荐用户修改此设置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • commit_siblings 参数说明:当一个事务发出提交请求时,如果数据库中正在执行的事务数量大于此参数的值,则该事务将等待一段时间(commit_delay的值),否则该事务则直接写入WAL。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围: 0~1000 默认值:5。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • wal_segment_size 参数说明:表示WAL日志段文件的大小。可以X LOG _BLCKSZ数量表示,同时也可以实际的大小表示。XLOG_BLCKSZ是XLOG块的大小,一般默认为8kB。 参数类型:整型 参数单位:8kB 取值范围:2048(即16MB) 默认值:16MB(2048 * 8kB) 设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。 设置建议:该参数不允许用户进行设置,只能查看。 设置不当的风险与影响:无
  • walwriter_sleep_threshold 参数说明:xlogflusher进入休眠之前空闲xlog刷新的次数,达到阈值会休眠。 参数类型:整型 参数单位:无 取值范围:1~50000 默认值:50 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • wal_file_init_num 参数说明:WAL writer辅助线程启动时在主机上一次创建xlog段文件的数量。 参数类型:整型 参数单位:无 取值范围:1~1000000 默认值:10(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存);0(32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存,4核CPU/16G内存) 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,会占用过多的磁盘空间,占用量为 wal_file_init_num * wal_segment_size。
  • walwriter_cpu_bind 参数说明:把walwriter线程绑定到指定CPU核上运行。 参数类型:整型 参数单位:无 取值范围:-1~核数减1。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把walwriter线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • wal_sender_bind_cpu_attr 参数说明:用于控制日志发送的绑核操作,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:长度大于0,该参数不区分大小写。 'nobind':线程不做绑核。 'cpuorderbind: 8-12': 从8号核开始一个线程绑定一个CPU,区间内核不足就不参与绑定。建议区间大小设置为大于等于参数max_wal_senders。 默认值:'nobind' 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • wal_file_preinit_bounds 参数说明:业务运行时,WAL writer辅助线程每秒可预扩的WAL日志段文件的数量限制(WAL日志段文件的大小为16MB)。当该参数值为0时,表示不进行限制。 参数类型:整型 参数单位:无 取值范围:0~1024 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐设置为默认值,不做调整。当把该参数设置为有效值时,需基于磁盘I/O能力进行设置,可参考参数max_io_capacity的数值进行设置。 若max_io_capacity为500MB,可设置为25; 若max_io_capacity为1GB,可设置为50。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
共100000条