云服务器内容精选

  • 备份控制函数 备份控制函数可帮助进行在线备份。 pg_create_restore_point(name text) 描述:为执行恢复创建一个命名点。需要管理员角色权限。 返回值类型:text 备注:pg_create_restore_point创建了一个可以用作恢复目的、有命名的事务日志记录,并返回相应的事务日志位置。在恢复过程中,recovery_target_name可以通过这个名称定位对应的日志恢复点,并从此处开始执行恢复操作。避免使用相同的名称创建多个恢复点,因为恢复操作将在第一个匹配(恢复目标)的名称上停止。 pg_current_xlog_location() 描述:获取当前事务日志的写入位置。 返回值类型:text 备注:pg_current_xlog_location使用与前面那些函数相同的格式显示当前事务日志的写入位置。如果是只读操作,不需要系统管理员权限。 pg_current_xlog_insert_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:pg_current_xlog_insert_location显示当前事务日志的插入位置。插入点是事务日志在某个瞬间的“逻辑终点”,而实际的写入位置则是从服务器内部缓冲区写出时的终点。写入位置是可以从服务器外部检测到的终点,如果要归档部分完成事务日志文件,则该操作即可实现。插入点主要用于服务器调试目的。如果是只读操作,不需要系统管理员权限。 gs_current_xlog_insert_end_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:gs_current_xlog_insert_end_location显示当前事务日志的实际插入位置。 pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份。需要管理员角色、复制的角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名称)。这个函数向数据库的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 1 2 3 4 5 gaussdb=# SELECT pg_start_backup('label_goes_here'); pg_start_backup ----------------- 0/3000020 (1 row) pg_stop_backup() 描述:完成执行在线备份。需要管理员角色、复制的角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,结束的事务日志文件可以被立即归档从而完成备份。 pg_switch_xlog() 描述:切换到一个新的事务日志文件。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_switch_xlog移动到下一个事务日志文件,以允许将当前日志文件归档(假定使用连续归档)。返回值是刚完成的事务日志文件的事务日志结束位置+1。如果从最后一次事务日志切换以来没有活动的事务日志,则pg_switch_xlog不进行移动操作,直接返回当前事务日志文件的开始位置。 pg_xlogfile_name(location text) 描述:将事务日志的位置字符串转换为文件名。 返回值类型:text 备注:pg_xlogfile_name仅抽取事务日志文件名称。如果给定的事务日志位置恰好位于事务日志文件的交界上,这两个函数都返回前一个事务日志文件的名称。这对于管理事务日志归档来说是非常有利的,因为前一个文件是当前最后一个需要归档的文件。 pg_xlogfile_name_offset(location text) 描述:将事务日志的位置字符串转换为文件名并返回在文件中的字节偏移量。 返回值类型:text,integer 备注:可以使用pg_xlogfile_name_offset从前述函数的返回结果中抽取相应的事务日志文件名称和字节偏移量。例如: 1 2 3 4 5 6 7 gaussdb=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup()); NOTICE: pg_stop_backup cleanup done, waiting for required WAL segments to be archived NOTICE: pg_stop_backup complete, all required WAL segments have been archived file_name | file_offset --------------------------+------------- 000000010000000000000003 | 272 (1 row) pg_xlog_location_diff(location text, location text) 描述:计算两个事务日志位置之间在字节上的区别。 返回值类型:numeric pg_cbm_start_tracked_location() 描述:用于查询cbm解析的起始lsn位置。 返回值类型:text pg_cbm_tracked_location() 描述:用于查询cbm解析到的lsn位置。 返回值类型:text pg_cbm_get_merged_file(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个cbm文件,并返回合并完的cbm文件名。 返回值类型:text 备注:必须是系统管理员或运维管理员才能获取cbm合并文件。 pg_cbm_get_changed_block(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个表,并返回表的各行记录。 返回值类型:records 备注:pg_cbm_get_changed_block返回的表字段包含:合并起始的lsn、合并截止的lsn、表空间oid、库oid、表的relfilenode、表的fork number、表是否为系统表、表是否被删除、表是否被创建、表是否被截断、表被截断后的页面数、有多少页被修改以及被修改的页号的列表。 pg_cbm_recycle_file(targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。 返回值类型:text pg_cbm_force_track(targetLSNArg text,timeOut int) 描述:强制执行一次cbm追踪到指定的xlog位置,并返回实际追踪结束点的xlog位置。 返回值类型:text pg_enable_delay_ddl_recycle() 描述:开启延迟DDL功能,并返回开启点的xlog位置。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:text pg_disable_delay_ddl_recycle(barrierLSNArg text, isForce bool) 描述:关闭延迟DDL功能,并返回本次延迟DDL生效的xlog范围。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:records pg_enable_delay_xlog_recycle() 描述:开启延迟xlog回收功能,数据库主节点修复使用。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:void pg_disable_delay_xlog_recycle() 描述:关闭延迟xlog回收功能,数据库主节点修复使用。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:void pg_cbm_rotate_file(rotate_lsn text) 描述:等待cbm解析到rotate_lsn之后,强制切换文件,在build期间调用。 返回值类型:void。 gs_roach_stop_backup(backupid text) 描述:停止一个内部备份工具GaussRoach开启的备份。与pg_stop_backup系统函数类似,但更轻量。 返回值类型:text,内容为当前日志的插入位置。 gs_roach_enable_delay_ddl_recycle(backupid name) 描述:开启延迟DDL功能,并返回开启点的日志位置。与pg_enable_delay_ddl_recycle系统函数类似,但更轻量。并且,通过传入不同的backupid,可以支持并发打开延迟DDL。 返回值类型:text,内容为返回开启点的日志位置。 gs_roach_disable_delay_ddl_recycle(backupid text) 描述:关闭延迟DDL功能,并返回本次延迟DDL生效的日志范围。与pg_enable_delay_ddl_recycle系统函数类似,但更轻量。并且,通过传入不同的backupid,可以支持并发关闭延迟DDL功能。 返回值类型:records,内容为本次延迟DDL生效的日志范围。 gs_roach_switch_xlog(request_ckpt bool) 描述:切换当前使用的日志段文件,并且,如果request_ckpt为true,则触发一个全量检查点。 返回值类型:text,内容为切段日志的位置。 gs_block_dw_io(timeout int, identifier text) 描述:阻塞双写页面刷盘。 参数说明: timeout 阻塞时长。 取值范围:[0, 3600](秒),0为阻塞时长为0。 identifier 此次操作的标识。 取值范围:字符串,不支持除大小写字母、数字以及下划线(_)以外的字符。 返回值类型:bool 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。 gs_is_dw_io_blocked() 描述:查看当前双写页面刷盘是否被阻塞,如果处于阻塞中则返回true。 返回值类型:bool 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。 gs_pitr_advance_last_updated_barrier() 描述:在PITR模式下,强制推进上次上传到OBS/NAS介质中的全局最大已归档恢复点到当前点,无入参。 返回值类型:text 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。同时只能在集中式的主DN上使用才有效。返回值为当前推进到的最新本地最大已归档恢复点。 gs_pitr_clean_local_barrier_files('delete_timestamp') 描述:清理本地缓存的barrier记录文件。 参数范围:delete_timestamp参数类型为text,为linux时间戳,长度为10位。 返回值类型:text 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。返回的结果是删除后本地最老barrier文件的开始时间戳。
  • 恢复控制函数 恢复信息函数提供了当前备机状态的信息。这些函数可能在恢复期间或正常运行中执行。 pg_is_in_recovery() 描述:如果恢复仍然在进行中则返回true。 返回值类型:Boolean pg_last_xlog_receive_location() 描述:获取最后接收事务日志的位置并通过流复制将其同步到磁盘。当流复制正在进行时,事务日志将持续递增。如果恢复已完成,则最后一次获取的WAL记录会被静态保持并在恢复过程中同步到磁盘。如果流复制不可用,或还没有开始,这个函数返回NULL。 返回值类型:text pg_last_xlog_replay_location() 描述:获取最后一个事务日志在恢复时重放的位置。如果恢复仍在进行,事务日志将持续递增。如果已经完成恢复,则将保持在恢复期间最后接收WAL记录的值。如果未进行恢复但服务器正常启动时,则这个函数返回NULL。 返回值类型:text pg_last_xact_replay_timestamp() 描述:获取最后一个事务在恢复时重放的时间戳。这是为在主节点上生成事务提交或终止WAL记录的时间。如果在恢复时没有事务重放,则这个函数返回NULL。如果恢复仍在进行,则事务日志将持续递增。如果恢复已经完成,则将保持在恢复期间最后接收WAL记录的值。如果服务器无需恢复就已正常启动,则这个函数返回NULL。 返回值类型:timestamp with time zone 恢复控制函数控制恢复的进程。这些函数可能只在恢复时被执行。 pg_is_xlog_replay_paused() 描述:如果恢复暂停则返回true。 返回值类型:Boolean pg_xlog_replay_pause() 描述:立即暂停恢复。 返回值类型:void pg_xlog_replay_resume() 描述:如果恢复处于暂停状态,则重新启动。 返回值类型:void gs_get_active_archiving_standby() 描述:查询同一分片内归档备机的信息。返回备机名,备机归档位置和已归档日志个数。 返回值类型:text,int gs_pitr_get_warning_for_xlog_force_recycle() 描述:查询开启归档后是否因归档槽不推进日志大量堆积导致日志被回收。 返回值类型:bool gs_pitr_clean_history_global_barriers(stop_barrier_timestamp cstring) 描述:清理指定时间之前所有barrier记录。返回最老的barrier记录。入参为cstring类型,linux时间戳。需要管理员角色或运维管理员角色执行。 返回值类型:text gs_pitr_archive_slot_force_advance(stop_barrier_timestamp cstring) 描述:强制推进归档槽,并清理不需要的barrier记录。返回新的归档槽位置。入参为cstring类型,linux时间戳。需要管理员角色或运维管理员角色执行。 返回值类型:text 当恢复暂停时,没有发生数据库更改。如果是在热备里,所有新的查询将看到一致的数据库快照,并且不会有进一步的查询冲突产生,直到恢复继续。 如果不能使用流复制,则暂停状态将无限的延续。当流复制正在进行时,将连续接收WAL记录,最终将填满可用磁盘空间,这个进度取决于暂停的持续时间,WAL生成的速度和可用的磁盘空间。 gs_recent_barrier_buffer_info(start_time text, end_time text) 描述:根据用户输入的时间范围,进行相应的barrier信息查询,获取time_stamp、 CS N、LSN和standard_time。 返回值类型:records 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。输入参数start_time和end_time采用“年-月-日 时间”格式,其中时间采用clock格式。查询最大时间跨度为1天,超出跨度约束,根据查询起始时间将结束时间自动转换为极限边界进行查询。例如: gaussdb=# SELECT * FROM gs_recent_barrier_buffer_info('2024-01-15 23:27:50', '2024-01-15 23:28:00'); timestamp | lsn | csn | standard_time ------------+-------------------+----------+--------------------- 1705332470 | 00000000/15FFBBA0 | 41020421 | 2024-01-15 23:27:50 1705332471 | 00000000/15FFBDF0 | 41020422 | 2024-01-15 23:27:51 1705332472 | 00000000/15FFC058 | 41020423 | 2024-01-15 23:27:52 1705332472 | 00000000/15FFC0F8 | 41020424 | 2024-01-15 23:27:52 1705332473 | 00000000/15FFC348 | 41020425 | 2024-01-15 23:27:53 1705332474 | 00000000/15FFC598 | 41020426 | 2024-01-15 23:27:54 1705332475 | 00000000/15FFC638 | 41020427 | 2024-01-15 23:27:55 1705332476 | 00000000/15FFC888 | 41020428 | 2024-01-15 23:27:56 1705332476 | 00000000/15FFDC80 | 41020433 | 2024-01-15 23:27:56 1705332477 | 00000000/15FFDD20 | 41020434 | 2024-01-15 23:27:57 1705332478 | 00000000/15FFDF70 | 41020435 | 2024-01-15 23:27:58 1705332479 | 00000000/15FFE1D8 | 41020436 | 2024-01-15 23:27:59 1705332480 | 00000000/15FFE278 | 41020437 | 2024-01-15 23:28:00 1705332480 | 00000000/15FFE4C8 | 41020438 | 2024-01-15 23:28:00 (14 rows) gs_show_obs_media_files(slot_name cstring, src cstring, offset int32, limit int32) 描述:根据用户输入的归档槽(slot_name)和OBS目录地址(src),查询OBS文件列表。 返回值类型:records 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。Offset为查询结果偏移,limit为输出最大行数,查询src下所有文件。例如: gaussdb=# SELECT gs_show_obs_archive_files('ssh','dn1/pg_xlog',0, 5); gs_show_obs_archive_files --------------------------------------------------------------------------------------------- (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_00_01_00000004_00000002_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_00_01_00000103_00000003_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_01_01_00000004_00000002_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_01_01_00000103_00000003_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_02_01_00000004_00000002_00000000) (5 rows) gs_upload_obs_media_file(slot_name cstring, src cstring, dest cstring, is_forced bool) 描述:根据用户输入的归档槽(slot_name)、上传文件原地址(src)、OBS地址(dest)和是否强制上传(is_forced),上传OBS文件。 返回值类型:void 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。原文件目录仅允许为$GAUSS LOG 目录。例如: gaussdb=# SELECT * FROM gs_upload_obs_archive_file('ssh', '/data/gauss/log/stwang/test/000000010000000000000007_02_01_00000004_00000002_00000000', 'dn1/pg_xlog/000000010000000000000019_02_01_00000000_00000000_00000003', true); gs_upload_obs_archive_file ---------------------------- (1 row) gs_download_obs_media_file(slot_name cstring, src cstring, dest cstring) 描述:根据用户输入的归档槽(slot_name)、下载原地址(src)和本地目标地址(dest),下载OBS文件。 返回值类型:void 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。下载目录仅允许为$GAUSSLOG目录。例如: gaussdb=# SELECT * FROM gs_download_obs_archive_file('ssh','dn1/pg_xlog/000000010000000000000019_02_01_00000000_00000000_00000003','/data/gauss/log/stwang/test'); gs_download_obs_archive_file ------------------------------ (1 row)
  • 通用文件访问函数 通用文件访问函数提供了对数据库服务器上的文件的本地访问接口。只有数据库目录和log_directory目录里面的文件可以访问。使用相对路径访问数据库目录里面的文件,以及匹配log_directory配置而设置的路径访问日志文件。只有数据库初始化用户才能使用这些函数。 pg_ls_dir(dirname text) 描述:列出目录中的文件。 返回值类型:setof text 备注:pg_ls_dir返回指定目录里面的除了特殊项“.”和“..”之外所有名称。 示例: 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 30 31 32 33 34 35 36 openGauss=# SELECT pg_ls_dir('./'); pg_ls_dir ---------------------- .postgresql.conf.swp postgresql.conf pg_tblspc PG_VERSION pg_ident.conf core server.crt pg_serial pg_twophase postgresql.conf.lock pg_stat_tmp pg_notify pg_subtrans pg_ctl.lock pg_xlog pg_clog base pg_snapshots postmaster.opts postmaster.pid server.key.rand server.key.cipher pg_multixact pg_errorinfo server.key pg_hba.conf pg_replslot .pg_hba.conf.swp cacert.pem pg_hba.conf.lock global gaussdb.state (32 rows) pg_read_file(filename text, offset bigint, length bigint) 描述:返回一个文本文件的内容。 返回值类型:text 备注:pg_read_file返回一个文本文件的一部分,从offset开始,最多返回length字节(如果先达到文件结尾,则小于这个数值)。如果offset是负数,则它是相对于文件结尾回退的长度。如果省略了offset和length,则返回整个文件。 示例: 1 2 3 4 5 6 7 8 9 10 11 openGauss=# SELECT pg_read_file('postmaster.pid',0,100); pg_read_file --------------------------------------- 53078 + /srv/BigData/hadoop/data1/dbnode+ 1500022474 + 8000 + /var/run/ FusionInsight + localhost + 2 (1 row) pg_read_binary_file(filename text [, offset bigint, length bigint,missing_ok boolean]) 描述:返回一个二进制文件的内容。 返回值类型:bytea 备注:pg_read_binary_file的功能与pg_read_file类似,除了结果的返回值为bytea类型不一致,相应地不会执行编码检查。与convert_from函数结合,这个函数可以用来读取用指定编码的一个文件。 1 openGauss=# SELECT convert_from(pg_read_binary_file('filename'), 'UTF8'); pg_stat_file(filename text) 描述:返回一个文本文件的状态信息。 返回值类型:record 备注:pg_stat_file返回一条记录,其中包含:文件大小、最后访问时间戳、最后更改时间戳、最后文件状态修改时间戳以及标识传入参数是否为目录的Boolean值。典型的用法: 1 openGauss=# SELECT * FROM pg_stat_file('filename'); 1 openGauss=# SELECT (pg_stat_file('filename')).modification; 示例: 1 2 3 4 5 6 7 8 9 10 11 12 openGauss=# SELECT convert_from(pg_read_binary_file('postmaster.pid'), 'UTF8'); convert_from -------------------------------------- 4881 + /srv/BigData/gaussdb/data1/dbnode+ 1496308688 + 25108 + /opt/user/Bigdata/gaussdb/gaussdb_tmp + * + 25108001 43352069 + (1 row) 1 2 3 4 5 6 7 8 9 openGauss=# SELECT * FROM pg_stat_file('postmaster.pid'); size | access | modification | change | creation | isdir ------+------------------------+------------------------+------------------------ +----------+------- 117 | 2017-06-05 11:06:34+08 | 2017-06-01 17:18:08+08 | 2017-06-01 17:18:08+08 | | f (1 row) 1 2 3 4 5 openGauss=# SELECT (pg_stat_file('postmaster.pid')).modification; modification ------------------------ 2017-06-01 17:18:08+08 (1 row) 父主题: 系统管理函数
  • 数据库对象位置函数 pg_relation_filenode(relation regclass) 描述:指定关系的文件节点数。 返回值类型:oid 备注:pg_relation_filenode接受一个表、索引、序列的OID或者名称,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名称的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说,relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。 pg_relation_filepath(relation regclass) 描述:指定关系的文件路径名。 返回值类型:text 备注:pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于数据库的数据目录PGDATA)。 pg_filenode_relation(tablespace oid, filenode oid) 描述:获取对应的tablespace和relfilenode所对应的表名。 返回类型:regclass pg_partition_filenode(partition_oid) 描述:获取到指定分区表的oid锁对应的filenode。 返回类型:oid pg_partition_filepath(partition_oid) 描述:指定分区的文件路径名 返回值类型:text
  • 数据库对象尺寸函数 数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。 pg_column_size(any) 描述:存储一个指定的数值需要的字节数(可能压缩过)。 返回值类型:int 备注:pg_column_size显示用于存储某个独立数据值的空间。 1 2 3 4 5 openGauss=# SELECT pg_column_size(1); pg_column_size ---------------- 4 (1 row) pg_database_size(oid) 描述:指定OID代表的数据库使用的磁盘空间。 返回值类型:bigint pg_database_size(name) 描述:指定名称的数据库使用的磁盘空间。 返回值类型:bigint 备注:pg_database_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 示例: 1 2 3 4 5 openGauss=# SELECT pg_database_size('testdb'); pg_database_size ------------------ 51590112 (1 row) pg_relation_size(oid) 描述:pg_relation_size(..., 'main')的简写,指定OID代表的表或者索引所使用的磁盘空间。 返回值类型:bigint pg_relation_size(relation regclass, fork text) 描述:指定表或索引的指定分叉树('main','fsm'或'vm')使用的磁盘空间。 返回值类型:bigint pg_relation_size(relation regclass) 描述:pg_relation_size(..., 'main')的简写。 返回值类型:bigint 备注:pg_relation_size接受一个表、索引的OID或者名称,然后返回它们的字节大小。 pg_partition_size(oid,oid) 描述:指定OID代表的分区使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_size(text, text) 描述:指定名称的分区使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_partition_indexes_size(oid,oid) 描述:指定OID代表的分区的索引使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_indexes_size(text,text) 描述:指定名称的分区的索引使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_indexes_size(regclass) 描述:附加到指定表的索引使用的总磁盘空间。 返回值类型:bigint pg_size_pretty(bigint) 描述:将以64位整数表示的字节值转换为具有单位的易读格式。 返回值类型:text pg_size_pretty(numeric) 描述:将以数值表示的字节值转换为具有单位的易读格式。 返回值类型:text 备注:pg_size_pretty用于把其他函数的结果格式化成一种易读的格式,可以根据情况使用kB 、MB 、GB 、TB。 pg_table_size(regclass) 描述:指定的表使用的磁盘空间,不计索引(但是包含TOAST,自由空间映射和可见性映射)。 返回值类型:bigint pg_tablespace_size(oid) 描述:指定OID代表的表空间使用的磁盘空间。 返回值类型:bigint pg_tablespace_size(name) 描述:指定名称的表空间使用的磁盘空间。 返回值类型:bigint 备注:pg_tablespace_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 pg_total_relation_size(oid) 描述:指定OID代表的表使用的磁盘空间,包括索引数据。 返回值类型:bigint pg_total_relation_size(regclass) 描述:指定的表使用的总磁盘空间,包括所有的索引和TOAST数据。 返回值类型:bigint pg_total_relation_size(text) 描述:指定名称的表所使用的全部磁盘空间,包括索引数据。表名称可以用模式名修饰。 返回值类型:bigint 备注:pg_total_relation_size接受一个表的OID或者名称,然后返回以字节计的数据和所有相关的索引的尺寸。 datalength(any) 描述:计算一个指定的数据需要的字节数(不考虑数据的管理空间和数据压缩,数据类型转换等情况)。 返回值类型:int 备注:datalength用于计算某个独立数据值的空间。 示例: openGauss=# SELECT datalength(1); datalength ------------ 4 (1 row) 目前支持的数据类型及计算方式见下表: 数据类型 存储空间 数值类型 整数类型 TINYINT 1 SMALLINT 2 INTEGER 4 BINARY_INTEGER 4 BIGINT 8 任意精度型 DECIMAL 每4位十进制数占两个字节,小数点前后数字分别计算 NUMERIC 每4位十进制数占两个字节,小数点前后数字分别计算 NUMBER 每4位十进制数占两个字节,小数点前后数字分别计算 序列整型 SMALLSERIAL 2 SERIAL 4 BIGSERIAL 8 LARGESERIAL 每4位十进制数占两个字节,小数点前后数字分别计算 浮点类型 FLOAT4 4 DOUBLE PRECISION 8 FLOAT8 8 BINARY_DOUBLE 8 FLOAT[(p)] 每4位十进制数占两个字节,小数点前后数字分别计算 DEC[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算 INTEGER[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算 布尔类型 布尔类型 BOOLEAN 1 字符类型 字符类型 CHAR n CHAR(n) n CHARACTER(n) n NCHAR(n) n VARCHAR(n) n CHARACTER 字符实际字节数 VARYING(n) 字符实际字节数 VARCHAR2(n) 字符实际字节数 NVARCHAR(n) 字符实际字节数 NVARCHAR2(n) 字符实际字节数 TEXT 字符实际字节数 CLOB 字符实际字节数 时间类型 时间类型 DATE 8 TIME 8 TIMEZ 12 TIMESTAMP 8 TIMESTAMPZ 8 SMALLDATETIME 8 INTERVAL DAY TO SECOND 16 INTERVAL 16 RELTIME 4 ABSTIME 4 TINTERVAL 12
  • 段页式存储函数 local_segment_space_info(tablespacename TEXT, databasename TEXT) 描述:输出为该表空间下所有ExtentGroup的使用信息。 返回值类型: node_name 节点名称。 extent_size 该ExtentGroup的extent规格,单位是block数。 forknum Fork号。 total_blocks 物理文件总extent数目。 meta_data_blocks 表空间管理的metadata占用的block数,只包括space header,map page等,不包括segment head。 used_data_blocks 存数据占用的extent数目。包括segment head。 utilization 使用的block数占总block数的百分比。即(used_data_blocks+meta_data_block)/total_blocks。 high_water_mark 高水位线,被分配出去的extent,最大的物理页号。超过高水位线的block都没有被使用,可以被直接回收。 例如: select * from local_segment_space_info('pg_default', 'testdb'); node_name | extent_size | forknum | total_blocks | meta_data_blocks | used_data_blocks | utilization | high_water_mark -------------------+-------------+---------+--------------+------------------+------------------+-------------+----------------- dn_6001_6002_6003 | 1 | 0 | 16384 | 4157 | 1 | .253784 | 4158 dn_6001_6002_6003 | 8 | 0 | 16384 | 4157 | 8 | .254211 | 4165 (2 rows) pg_stat_segment_extent_usage(int4 tablespace oid, int4 database oid, int4 extent_type, int4 forknum) 描述:每次返回一个ExtentGroup中,每个被分配出去的extent的使用情况。extent_type表示ExtentGroup的类型,合理取值为[1,5]的int值。在此范围外的会报error。forknum 表示fork号,合法取值为[0,4]的int值,目前只有三种值有效,数据文件为0,FSM文件为1,visibility map文件为2。 返回值类型: 名称 描述 start_block Extent的起始物理页号。 extent_size Extent的大小。 usage_type Extent的使用类型,比如segment head,data extent等。 ower_location 有指针指向该extent的对象的位置。比如data extent的owner就是它所属的segment的head位置。 special_data 该extent在它owner中的位置。该字段的数据跟使用类型有关。比如data extent的special data就是它在所属segment中的extent id。 其中,usage_type为枚举类型,每一项的含义为: Non-bucket table segment head : 非hashbucket表的数据段头。 Non-bucket table fork head: 非段页式表的fork段头。 Data extent: 数据块。 例如: select * from pg_stat_segment_extent_usage((select oid::int4 from pg_tablespace where spcname='pg_default'), (select oid::int4 from pg_database where datname='testdb'), 1, 0); start_block | extent_size | usage_type | ower_location | special_data -------------+-------------+------------------------+---------------+-------------- 4157 | 1 | Data extent | 4294967295 | 0 4158 | 1 | Data extent | 4157 | 0 local_space_shrink(tablespacename TEXT, databasename TEXT) 描述:当前节点上对指定段页式空间做物理空间收缩。注意,目前只支持对当前连接的database做shrink。 返回值:空 gs_space_shrink(int4 tablespace, int4 database, int4 extent_type, int4 forknum) 描述:效果跟local_space_shrink类似,对指定段页式空间做物理空间收缩,但参数不同,传入的是tablespace和database的oid,extent_type为[2,5]的int值。注意:extent_type = 1表示段页式元数据,目前不支持对元数据所在的物理文件做收缩。该函数仅限工具使用,不建议用户直接使用。 返回值:空 pg_stat_remain_segment_info() 描述:展示在当前节点上,因为故障等原因而残留的extent。残留extent主要分为两类:分配而未被利用的segment和分配出去而未被利用的extent。两者主要区别在于segment会包含多个extent,回收时,要将segment上的extent一并全部回收。 返回值类型: 名称 描述 space_id 表空间ID db_id 数据库ID block_id Extent的ID type Extent的类型,当前有三种:ALLOC_SEGMENT|DROP_SEGMENT|SHRINK_EXTENT 其中type的三种类型分别表示: ALLOC_SEGMENT:用户创建一张段页式表,当segment刚被分配,但是建表语句所在事务仍未提交时,节点故障,导致该segment被分配后,没有被使用。 DROP_SEGMENT:用户删除段页式表,当该事务成功提交,但是此表的segment页面对应的bit位未被重置,就发生掉电等故障,造成该segment未被使用,也未被释放。 SHRINK_EXTENT:用户对段页式表执行shrink操作,在未对空置出的extent进行释放时,发生掉电等故障,造成该extent残留,无法被重新利用。 例如: select * from pg_stat_remain_segment_info(); space_id | db_id | block_id | type ----------+-------+----------+------ 1663 | 16385| 4156| ALLOC_SEGMENT pg_free_remain_segment(int4 spaceId, int4 dbId, int4 segmentId) 描述:释放指定的残留extent。参数取值必须为从函数pg_stat_remain_segment_info中查询获取。函数会对传入值校验,如果指定extent不在记录的残留extent中,将返回错误信息。指定的extent如果为单个extent,则只将其独自释放;如果为一个segment,则会将此segment以及此segment上记录的所有extent释放。 返回值:空 父主题: 系统管理函数
  • 咨询锁函数 咨询锁函数用于管理咨询锁(Advisory Lock)。 pg_advisory_lock(key bigint) 描述:获取会话级别的排他咨询锁。 返回值类型:void 备注:pg_advisory_lock锁定应用程序定义的资源,该资源可以用一个64位或两个不重叠的32位键值标识。如果已经有另外的会话锁定了该资源,则该函数将阻塞到该资源可用为止。这个锁是排他的。多个锁定请求将会被压入栈中,因此,如果同一个资源被锁定了三次,它必须被解锁三次以将资源释放给其他会话使用。 pg_advisory_lock(key1 int, key2 int) 描述:获取会话级别的排他咨询锁。 返回值类型:void 备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排他咨询锁,普通用户无权限。 pg_advisory_lock(lock_id int4, lock_id int4, datebase_name Name) 描述:通过传入锁ID和数据库名字,获取指定数据库的排他咨询锁。 返回值类型:void pg_advisory_lock_shared(key bigint) 描述:获取会话级别的共享咨询锁。 返回值类型:void pg_advisory_lock_shared(key1 int, key2 int) 描述:获取会话级别的共享咨询锁。 返回值类型:void 备注:pg_advisory_lock_shared类似于pg_advisory_lock,不同之处仅在于共享锁会话可以和其他请求共享锁的会话共享资源,但排他锁除外。 pg_advisory_unlock(key bigint) 描述:释放会话级别的排他咨询锁。 返回值类型:Boolean pg_advisory_unlock(key1 int, key2 int) 描述:释放会话级别的排他咨询锁。 返回值类型:Boolean 备注:pg_advisory_unlock释放先前取得的排他咨询锁。如果释放成功则返回true。如果实际上并未持有指定的锁,将返回false并在服务器中产生一条SQL警告信息。 pg_advisory_unlock(lock_id int4, lock_id int4, datebase_name Name) 描述:通过传入锁ID和数据库名字,释放指定数据库上的排他咨询锁。 返回值类型:Boolean 备注:如果释放成功则返回true;如果未持有锁,则返回false。 pg_advisory_unlock_shared(key bigint) 描述:释放会话级别的共享咨询锁。 返回值类型:Boolean pg_advisory_unlock_shared(key1 int, key2 int) 描述:释放会话级别的共享咨询锁。 返回值类型:Boolean 备注:pg_advisory_unlock_shared类似于pg_advisory_unlock,不同之处在于该函数释放的是共享咨询锁。 pg_advisory_unlock_all() 描述:释放当前会话持有的所有咨询锁。 返回值类型:void 备注:pg_advisory_unlock_all将会释放当前会话持有的所有咨询锁,该函数在会话结束的时候被隐含调用,即使客户端异常地断开连接也是一样。 pg_advisory_xact_lock(key bigint) 描述:获取事务级别的排他咨询锁。 返回值类型:void pg_advisory_xact_lock(key1 int, key2 int) 描述:获取事务级别的排他咨询锁。 返回值类型:void 备注:pg_advisory_xact_lock类似于pg_advisory_lock,不同之处在于锁是自动在当前事务结束时释放,而且不能被显式的释放。只允许sysadmin对键值对(65535, 65535)加事务级别的排他咨询锁,普通用户无权限。 pg_advisory_xact_lock_shared(key bigint) 描述:获取事务级别的共享咨询锁。 返回值类型:void pg_advisory_xact_lock_shared(key1 int, key2 int) 描述:获取事务级别的共享咨询锁。 返回值类型:void 备注:pg_advisory_xact_lock_shared类似于pg_advisory_lock_shared,不同之处在于锁是在当前事务结束时自动释放,而且不能被显式的释放。 pg_try_advisory_lock(key bigint) 描述:尝试获取会话级排他咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_lock类似于pg_advisory_lock,不同之处在于该函数不会阻塞以等待资源的释放。它要么立即获得锁并返回true,要么返回false表示目前不能锁定。 pg_try_advisory_lock(key1 int, key2 int) 描述:尝试获取会话级排他咨询锁。 返回值类型:Boolean 备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排他咨询锁,普通用户无权限。 pg_try_advisory_lock_shared(key bigint) 描述:尝试获取会话级共享咨询锁。 返回值类型:Boolean pg_try_advisory_lock_shared(key1 int, key2 int) 描述:尝试获取会话级共享咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_lock_shared类似于pg_try_advisory_lock,不同之处在于该函数尝试获得共享锁而不是排他锁。 pg_try_advisory_xact_lock(key bigint) 描述:尝试获取事务级别的排他咨询锁。 返回值类型:Boolean pg_try_advisory_xact_lock(key1 int, key2 int) 描述:尝试获取事务级别的排他咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_xact_lock类似于pg_try_advisory_lock,不同之处在于如果得到锁,在当前事务的结束时自动释放,而且不能被显式的释放。只允许sysadmin对键值对(65535, 65535)加事务级别的排他咨询锁,普通用户无权限。 pg_try_advisory_xact_lock_shared(key bigint) 描述:尝试获取事务级别的共享咨询锁。 返回值类型:Boolean pg_try_advisory_xact_lock_shared(key1 int, key2 int) 描述:尝试获取事务级别的共享咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_xact_lock_shared类似于pg_try_advisory_lock_shared,不同之处在于如果得到锁,在当前事务结束时自动释放,而且不能被显式的释放。 lock_cluster_ddl() 描述:尝试对集群内所有存活的CN节点获取会话级别的排他咨询锁。 返回值类型:Boolean 备注:只允许sysadmin调用,普通用户无权限。 unlock_cluster_ddl() 描述:尝试对CN节点会话级别的排他咨询锁。 返回值类型:Boolean 父主题: 系统管理函数
  • 恢复控制函数 恢复信息函数提供了当前备机状态的信息。这些函数可能在恢复期间或正常运行中执行。 pg_is_in_recovery() 描述:如果恢复仍然在进行中则返回true。 返回值类型:bool pg_last_xlog_receive_location() 描述:获取最后接收事务日志的位置并通过流复制将其同步到磁盘。当流复制正在进行时,事务日志将持续递增。如果恢复已完成,则最后一次获取的WAL记录会被静态保持并在恢复过程中同步到磁盘。如果流复制不可用,或还没有开始,这个函数返回NULL。 返回值类型:text pg_last_xlog_replay_location() 描述:获取最后一个事务日志在恢复时重放的位置。如果恢复仍在进行,事务日志将持续递增。如果已经完成恢复,则将保持在恢复期间最后接收WAL记录的值。如果未进行恢复但服务器正常启动时,则这个函数返回NULL。 返回值类型:text pg_last_xact_replay_timestamp() 描述:获取最后一个事务在恢复时重放的时间戳。这是为在主节点上生成事务提交或终止WAL记录的时间。如果在恢复时没有事务重放,则这个函数返回NULL。如果恢复仍在进行,则事务日志将持续递增。如果恢复已经完成,则将保持在恢复期间最后接收WAL记录的值。如果服务器无需恢复就已正常启动,则这个函数返回NULL。 返回值类型:timestamp with time zone 恢复控制函数控制恢复的进程。这些函数可能只在恢复时被执行。 pg_is_xlog_replay_paused() 描述:如果恢复暂停则返回true。 返回值类型:bool pg_xlog_replay_pause() 描述:立即暂停恢复。 返回值类型:void pg_xlog_replay_resume() 描述:如果恢复处于暂停状态,则重新启动。 返回值类型:void gs_get_active_archiving_standby() 描述:查询同一分片内归档备机的信息。返回备机名,备机归档位置和已归档日志个数。 返回值类型:text,text,int gs_pitr_get_warning_for_xlog_force_recycle() 描述:查询开启归档后是否因归档槽不推进日志大量堆积导致日志被回收。 返回值类型:bool gs_pitr_clean_history_global_barriers(stop_barrier_timestamp cstring) 描述:清理指定时间之前所有barrier记录。返回最老的barrier记录。入参为cstring类型,Linux时间戳。需要管理员角色或运维管理员角色执行。 返回值类型:text gs_pitr_archive_slot_force_advance(stop_barrier_timestamp cstring) 描述:强制推进归档槽,并清理不需要的barrier记录。返回新的归档槽位置。入参为cstring类型,Linux时间戳。需要管理员角色或运维管理员角色执行。 返回值类型:text 当恢复暂停时,没有发生数据库更改。如果是在热备里,所有新的查询将看到一致的数据库快照,并且不会有进一步的查询冲突产生,直到恢复继续。 如果不能使用流复制,则暂停状态将无限的延续。当流复制正在进行时,将连续接收WAL记录,最终将填满可用磁盘空间,这个进度取决于暂停的持续时间,WAL生成的速度和可用的磁盘空间。
  • 备份控制函数 备份控制函数可帮助进行在线备份。 pg_create_restore_point(name text) 描述:为执行恢复创建一个命名点。(需要管理员角色) 返回值类型:text 备注:pg_create_restore_point创建了一个可以用作恢复目的、有命名的事务日志记录,并返回相应的事务日志位置。在恢复过程中,recovery_target_name可以通过这个名称定位对应的日志恢复点,并从此处开始执行恢复操作。避免使用相同的名称创建多个恢复点,因为恢复操作将在第一个匹配(恢复目标)的名称上停止。 pg_current_xlog_location() 描述:获取当前事务日志的写入位置。 返回值类型:text 备注:pg_current_xlog_location使用与前面那些函数相同的格式显示当前事务日志的写入位置。如果是只读操作,不需要系统管理员权限。 pg_current_xlog_insert_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:pg_current_xlog_insert_location显示当前事务日志的插入位置。插入点是事务日志在某个瞬间的“逻辑终点”,而实际的写入位置则是从服务器内部缓冲区写出时的终点。写入位置是可以从服务器外部检测到的终点,如果要归档部分完成事务日志文件,则该操作即可实现。插入点主要用于服务器调试目的。如果是只读操作,不需要系统管理员权限。 gs_current_xlog_insert_end_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:gs_current_xlog_insert_end_location显示当前事务日志的实际插入位置。 pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份(需要管理员角色、复制的角色或运维管理员角色打开operation_mode)。以gs_roach开头的label串为保留命名串,只能由内部备份工具GaussRoach使用。 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名称)。这个函数向数据库集群的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 1 2 3 4 5 openGauss=# SELECT pg_start_backup('label_goes_here',true); pg_start_backup ----------------- 0/3000020 (1 row) pg_stop_backup() 描述:完成执行在线备份。需要管理员角色、复制的角色执行或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,这样,结束的事务日志文件可以被立即归档从而完成备份。 pg_switch_xlog() 描述:切换到一个新的事务日志文件。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_switch_xlog移动到下一个事务日志文件,以允许将当前日志文件归档(假定使用连续归档)。返回值是刚完成的事务日志文件的事务日志结束位置+1。如果从最后一次事务日志切换以来没有活动的事务日志,则pg_switch_xlog不进行移动操作,直接返回当前事务日志文件的开始位置。 pg_xlogfile_name(location text) 描述:将事务日志的位置字符串转换为文件名。 返回值类型:text 备注:pg_xlogfile_name仅抽取事务日志文件名称。如果给定的事务日志位置恰好位于事务日志文件的交界上,这两个函数都返回前一个事务日志文件的名称。这对于管理事务日志归档来说是非常有利的,因为前一个文件是当前最后一个需要归档的文件。 pg_xlogfile_name_offset(location text) 描述:将事务日志的位置字符串转换为文件名并返回在文件中的字节偏移量。 返回值类型:text,integer 备注:可以使用pg_xlogfile_name_offset从前述函数的返回结果中抽取相应的事务日志文件名称和字节偏移量。例如: 1 2 3 4 5 6 7 openGauss=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup()); NOTICE: pg_stop_backup cleanup done, waiting for required WAL segments to be archived NOTICE: pg_stop_backup complete, all required WAL segments have been archived file_name | file_offset --------------------------+------------- 000000010000000000000003 | 272 (1 row) pg_xlog_location_diff(location text, location text) 描述:计算两个事务日志位置之间在字节上的区别。 返回值类型:numeric pg_cbm_tracked_location() 描述:用于查询cbm解析到的lsn位置。 返回值类型:text pg_cbm_get_merged_file(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个cbm文件,并返回合并完的cbm文件名。 返回值类型:text 备注:必须是系统管理员或运维管理员才能获取cbm合并文件。 pg_cbm_get_changed_block(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个表,并返回表的各行记录。 返回值类型:records 备注:pg_cbm_get_changed_block返回的表字段包含:合并起始的lsn、合并截止的lsn、表空间oid、库oid、表的relfilenode、表的fork number、表是否被删除、表是否被创建、表是否被截断、表被截断后的页面数、有多少页被修改以及被修改的页号的列表。 pg_cbm_recycle_file(targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。 返回值类型:text pg_cbm_force_track(targetLSNArg text,timeOut int) 描述:强制执行一次cbm追踪到指定的xLog位置,并返回实际追踪结束点的xLog位置。 返回值类型:text pg_enable_delay_ddl_recycle() 描述:开启延迟DDL功能,并返回开启点的xLog位置。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:text pg_disable_delay_ddl_recycle(barrierLSNArg text, isForce bool) 描述:关闭延迟DDL功能,并返回本次延迟DDL生效的xLog范围。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:records pg_enable_delay_xlog_recycle() 描述:开启延迟xLog回收功能,cn修复使用。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:void pg_disable_delay_xlog_recycle() 描述:关闭延迟xLog回收功能,cn修复使用。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:void pg_cbm_rotate_file(rotate_lsn text) 描述:等待cbm解析到rotate_lsn之后,强制切换文件,在build期间调用。 返回值类型:void。 gs_roach_stop_backup(backupid text) 描述:停止一个内部备份工具GaussRoach开启的备份。与pg_stop_backup系统函数类似,但更轻量。 返回值类型:text,内容为当前日志的插入位置。 gs_roach_enable_delay_ddl_recycle(backupid name) 描述:开启延迟DDL功能,并返回开启点的日志位置。与pg_enable_delay_ddl_recycle系统函数类似,但更轻量。并且,通过传入不同的backupid,可以支持并发打开延迟DDL。 返回值类型:text,内容为返回开启点的日志位置。 gs_roach_disable_delay_ddl_recycle(backupid text) 描述:关闭延迟DDL功能,并返回本次延迟DDL生效的日志范围。与pg_enable_delay_ddl_recycle系统函数类似,但更轻量。并且,通过传入不同的backupid,可以支持并发关闭延迟DDL功能。 返回值类型:records,内容为本次延迟DDL生效的日志范围。 gs_roach_switch_xlog(request_ckpt bool) 描述:切换当前使用的日志段文件,并且,如果request_ckpt 为true,则触发一个全量检查点。 返回值类型:text,内容为切段日志的位置。 gs_block_dw_io(timeout int, identifier text) 描述:阻塞双写页面刷盘。 参数说明: timeout 阻塞时长。 取值范围:[0, 3600](秒),0为阻塞时长为0。 identifier 此次操作的标识。 取值范围:字符串,不支持除大小写字母、数字以及下划线(_)以外的字符。 返回值类型:bool 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。 gs_is_dw_io_blocked() 描述:查看当前双写页面刷盘是否被阻塞,如果处于阻塞中则返回true。 返回值类型:bool 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。
  • Undo系统函数 gs_undo_meta(type, zoneId, location) 描述:Undo各模块元信息。 参数说明: type(元信息类型) 0表示Undo Zone(Record) 对应的元信息。 1表示Undo Zone(Transaction Slot) 对应的元信息。 2表示Undo Space(Record) 对应的元信息。 3表示Undo Space(Transaction Slot) 对应的元信息。 zoneId(undo zone编号) -1表示所有undo zone的元信息。 0-1024*1024表示对应zoneid的元信息。 location(读取位置) 0表示从当前内存中读取。 1表示从物理文件中读取。 返回值类型:record 表1 gs_undo_meta(0,-1,0)输出示例 参数类型 参数名 类型 描述 输出参数 zoneId oid undo zone的id。 输出参数 persistType oid 持久化级别。 输出参数 insert text 下一条插入的undo记录位置。 输出参数 discard text 普通回收到的undo记录位置。 输出参数 end text 强制回收掉undo记录位置,小于它的undo记录已经被回收。 输出参数 used text 已经使用的undo空间。 输出参数 lsn text 修改zone的lsn。 输出参数 pid oid zone绑定的进程id。 gs_undo_translot(location, zoneId) 描述:Undo事务槽信息。 参数说明: location(读取位置) 0表示从当前内存中读取。 1表示从物理文件中读取。 zoneId(undo zone编号) -1表示所有undo zone的元信息。 0-1024*1024表示对应zoneId的元信息。 返回值类型:record 表2 gs_undo_translot(0,-1)输出示例 参数类型 参数名 类型 描述 输出参数 groupId oid 使用的undo zone id。 输出参数 xactId text 事务id。 输出参数 startUndoPtr text slot对应事务起始插入undo记录位置。 输出参数 endUndoPtr text slot对应事务结束插入undo记录位置。 输出参数 lsn text 对应slot指针。 输出参数 slot_states oid 事务状态,0表示已经提交,1表示正在执行中,2表示回滚中,3表示回滚完成。 gs_stat_undo() 描述:Undo统计信息。 返回值类型:record 表3 gs_stat_undo参数说明 参数类型 参数名 类型 描述 输出参数 curr_used_zone_count uint32 当前使用的Undo zone数量。 输出参数 top_used_zones text 前三个使用量最大的Undo zone信息,格式输出为: zoneId1:使用大小。 zoneId2:使用大小。 zoneId3:使用大小。 输出参数 curr_used_undo_size uint32 当前使用的Undo总空间大小,单位为MB。 输出参数 undo_threshold uint32 为guc参数undo_space_limit_size * 80%计算的结果,单位为MB。 输出参数 oldest_xid_in_undo uint64 当前Undo空间回收到的事务xid(小于该xid事务产生的Undo记录都已经被回收)。 输出参数 oldest_xmin uint64 最老的活跃事务。 输出参数 total_undo_chain_len int64 所有访问过的Undo链总长度。 输出参数 max_undo_chain_len int64 最大访问过的Undo链长度。 输出参数 create_undo_file_count uint32 创建的Undo文件数量统计。 输出参数 discard_undo_file_count uint32 删除的Undo文件数量统计。 gs_undo_record(undoptr) 描述:Undo记录解析。 参数说明: undoptr(undo记录指针) 返回值类型:record gs_undo_dump_parsepage_mv(relpath text, blkno bigint, reltype text, rmem boolean) 描述:解析ustore数据表磁盘页面的页头信息,每个元组的头部信息,标识位信息以及所有可以查询到undo历史版本信息。 返回值类型:text 备注:必须是系统管理员或者运维管理人员才能执行此函数。 该接口当前仅支持USTORE数据表。 表4 gs_undo_dump_parsepage_mv参数说明 参数类型 参数名 类型 描述 输入参数 relpath text ustore表数据文件相对路径,相对路径格式为:tablespace name/database oid/relfilenode,例如base/16603/16384, 表对应数据文件的相对路径查找可以通过pg_relation_filepath('tablename')查询。 输入参数 blkno bigint -1 解析所有block页面。 0-MaxBlocNumber解析指定的block页面。 输入参数 reltype text 表类型,目前仅支持ustore数据表,取值为uheap。 输入参数 rmem boolean false true 目前仅支持false,从磁盘文件上解析对应的页面。 输出参数 output text 解析结果文件的绝对路径。 gs_undo_meta_dump_zone(zone_id int, read_memory boolean) 描述:解析Undo模块中zone的元信息。 返回值类型:record 表5 gs_undo_meta_dump_zone参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id int Undo zone编号。 输出参数 persist_type int 持久化级别: 0:普通表 1:无日志表 2:临时表 输出参数 insert text 下一条插入的undo记录位置。 输出参数 discard text 普通回收到的undo记录位置。 输出参数 forcediscard text 强制回收掉undo记录位置,小于它的undo记录已经被回收。 输出参数 lsn text 修改zone的lsn。 gs_undo_meta_dump_spaces(zone_id int, read_memory boolean) 描述:解析Undo模块中undo记录空间,undo slot空间的元信息。 返回值类型:record 表6 gs_undo_meta_dump_spaces参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id int Undo zone编号。 输出参数 undorecord_space_tail text Undo record空间的结尾位置。 输出参数 undorecord_space_head text Undo record空间的起始位置。 输出参数 undorecord_space_lsn text 修改Undo record空间lsn。 输出参数 undoslot_space_tail text Undo slot空间的结尾位置。 输出参数 undoslot_space_head text Undo slot空间的起始位置。 输出参数 undoreslot_space_lsn text 修改Undo slot空间lsn。 gs_undo_meta_dump_slot(zone_id int, read_memory boolean) 描述:解析Undo模块中slot元信息。 返回值类型:record 表7 gs_undo_meta_dump_slot参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id int Undo zone编号。 输出参数 allocate text Undo transaction slot分配位置。 输出参数 recycle text Undo transaction slot回收位置。 输出参数 frozen_xid text frozen xid,用于可见性判断。 输出参数 global_frozen_xid text 全局最小的frozen xid,小于该xid的事务可见。 输出参数 recycle_xid text 回收到的xid,小于该xid的事务被回收。 输出参数 global_recycle_xid text 全局最小的recycle xid,小于该xid的事务被回收。 gs_undo_translot_dump_slot(zone_id int, read_memory boolean) 描述:解析zone中的slot。 返回值类型:record 表8 gs_undo_translot_dump_slot参数说明 参数类型 参数名 类型 描述 输入参数 zone_id oid Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id text Undo zone编号。 输出参数 slot_xid text 事务id。 输出参数 start_undoptr text slot对应事务起始插入undo记录位置。 输出参数 end_undoptr text slot对应事务结束插入undo记录位置。 输出参数 slot_ptr text Transaction Slot对应的位置。 输出参数 slot_states oid 事务状态: 0:已提交 1:执行中 2:回滚中 3:回滚完成 gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean) 描述:根据xid,解析zone中对应的slot。 返回值类型:record 表9 gs_undo_translot_dump_xid参数说明 参数类型 参数名 类型 描述 输入参数 slot_xid xid 需要查询的事务id。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id text Undo zone编号。 输出参数 slot_xid text 事务id。 输出参数 start_undoptr text slot对应事务起始插入undo记录位置。 输出参数 end_undoptr text slot对应事务结束插入undo记录位置。 输出参数 lsn text 修改slot的lsn。 输出参数 slot_states oid 事务状态: 0 已提交 1 执行中 2 回滚中 3 回滚完成 gs_undo_dump_record(undoptr bigint) 描述:解析undo记录。 返回值类型:record 表10 gs_undo_dump_record参数说明 参数类型 参数名 类型 描述 输入参数 undoptr bigint 需要解析的undo记录起始位置。 输出参数 undoptr bigint 需要解析的undo记录起始位置。 输出参数 xactid text 事务id。 输出参数 cid text command id。 输出参数 reloid text relation oid。 输出参数 relfilenode text 文件的relfinode。 输出参数 utype text undo记录类型。 输出参数 blkprev text 同一个块前一条undo记录的位置。 输出参数 blockno text 块号。 输出参数 uoffset text undo记录偏移。 输出参数 prevurp text 前一条undo记录位置。 输出参数 payloadlen text undo记录数据部分长度。 输出参数 oldxactid text 前一个事务id。 输出参数 partitionoid text 分区oid。 输出参数 tablespace text 表空间。 输出参数 alreadyread_bytes text 读取到的undo记录长度。 输出参数 prev_undorec_len text 前一条undo记录长度。 输出参数 td_id text Transaction Directory的id。 输出参数 reserved text 是否保存。 输出参数 flag text 标识1。 输出参数 flag2 text 标识2。 输出参数 t_hoff text Undo记录数据头的长度。 gs_undo_dump_xid(undo_xid xid) 描述:根据xid解析undo记录。 返回值类型:record 表11 gs_undo_dump_xid参数说明 参数类型 参数名 类型 描述 输入参数 undo_xid xid 事务xid 输出参数 undoptr xid 需要解析的undo记录起始位置。 输出参数 xactid text 事务id 输出参数 cid text command id 输出参数 reloid text relation oid 输出参数 relfilenode text 文件的relfinode 输出参数 utype text undo记录类型 输出参数 blkprev text 同一个块前一条undo记录的位置。 输出参数 blockno text 块号 输出参数 uoffset text undo记录偏移 输出参数 prevurp text 前一条undo记录位置。 输出参数 payloadlen text undo记录数据部分长度。 输出参数 oldxactid text 前一个事务id 输出参数 partitionoid text 分区oid 输出参数 tablespace text 表空间 输出参数 alreadyread_bytes text 读取到的undo记录长度。 输出参数 prev_undorec_len text 前一条undo记录长度。 输出参数 td_id text Transaction Directory的id。 输出参数 reserved text 是否保留 输出参数 flag text 标识1 输出参数 flag2 text 标识2 输出参数 t_hoff text Undo记录数据头的长度。 gs_verify_undo_record(type, startIdx,endIdx, location) 描述:校验Undo记录。 返回值类型:record 该接口仅为扩展预留接口,禁止使用。 gs_verify_undo_translot(type, startIdx,endIdx, location) 描述:校验Undo事务槽。 返回值类型:record 该接口仅为扩展预留接口,禁止使用。 gs_verify_undo_meta(type, startIdx,endIdx, location) 描述:校验Undo元信息。 返回值类型:record 该接口仅为扩展预留接口,禁止使用。 父主题: 系统管理函数
  • 配置设置函数 配置设置函数是可以用于查询以及修改运行时配置参数的函数。 current_setting(setting_name) 描述:当前的设置值。 返回值类型:text 备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如: 1 2 3 4 5 6 openGauss=# SELECT current_setting('datestyle'); current_setting ----------------- ISO, MDY (1 row) set_working_grand_version_num_manually(tmp_version) 描述:通过切换授权版本号来更新和升级高斯数据库的新特性。 返回值类型:void shell_in(type) 描述:为shell类型输入路由(那些尚未填充的类型)。 返回值类型:void shell_out(type) 描述:为shell类型输出路由(那些尚未填充的类型)。 返回值类型:void set_config(setting_name, new_value, is_local) 描述:设置参数并返回新值。 返回值类型:text 备注:set_config将参数setting_name设置为new_value,如果is_local为true,则新值将只应用于当前事务。如果希望new_value应用于当前会话,可以使用false,和SQL语句SET是等效的。 示例: 1 2 3 4 5 6 openGauss=# SELECT set_config('log_statement_stats', 'off', false); set_config ------------ off (1 row) 父主题: 系统管理函数
  • 配置设置函数 配置设置函数是可以用于查询以及修改运行时配置参数的函数。 current_setting(setting_name) 描述:当前的设置值。 返回值类型:text 备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如: 1 2 3 4 5 6 openGauss=# SELECT current_setting('datestyle'); current_setting ----------------- ISO, MDY (1 row) set_working_grand_version_num_manually(tmp_version) 描述:通过切换授权版本号来更新和升级数据库的新特性。 返回值类型:void shell_in(type) 描述: 为shell类型输入路由(那些尚未填充的类型)。 返回值类型:void shell_out(type) 描述:为shell 类型输出路由(那些尚未填充的类型)。 返回值类型:void set_config(setting_name, new_value, is_local) 描述:设置参数并返回新值。 返回值类型:text 备注:set_config将参数setting_name设置为new_value。如果is_local为true,则new_value将只应用于当前事务。如果希望new_value应用于当前会话,可以使用false,和SQL语句SET是等效的。例如: 1 2 3 4 5 6 openGauss=# SELECT set_config('log_statement_stats', 'off', false); set_config ------------ off (1 row) 父主题: 系统管理函数
  • 段页式存储函数 local_segment_space_info(tablespacename TEXT, databasename TEXT) 描述:输出为当前节点,该表空间下所有ExtentGroup的使用信息。 返回值类型: node_name 节点名称 extent_size 该ExtentGroup的extent规格,单位是block数。 forknum Fork号 total_blocks 物理文件总extent数目。 meta_data_blocks 表空间管理的metadata占用的block数,只包括space header,map page等,不包括segment head。 used_data_blocks 存数据占用的extent数目。包括segment head。 utilization 使用的block数占总block数的百分比。即(used_data_blocks+meta_data_block)/total_blocks。 high_water_mark 高水位线,被分配出去的extent,最大的物理页号。超过高水位线的block都没有被使用,可以被直接回收。 例如: select * from local_segment_space_info('pg_default', 'testdb'); node_name | extent_size | forknum | total_blocks | meta_data_blocks | used_data_blocks | utilization | high_water_mark -------------------+-------------+---------+--------------+------------------+------------------+-------------+----------------- dn_6001_6002_6003 | 1 | 0 | 16384 | 4157 | 1 | .253784 | 4158 dn_6001_6002_6003 | 8 | 0 | 16384 | 4157 | 8 | .254211 | 4165 (2 rows) global_segment_space_info(tablespacename TEXT, databasename TEXT) 描述:效果跟local_segment_space_info类似,返回的是整个集群中所有节点上的使用信息。 pg_stat_segment_extent_usage(int4 tablespace oid, int4 database oid, int4 extent_type, int4 forknum) 描述:每次返回一个ExtentGroup中,每个被分配出去的extent的使用情况。extent_type表示ExtentGroup的类型,合理取值为[1,5]的int值。在此范围外的会报error。forknum 表示fork号,合法取值为[0,4]的int值,目前只有三种值有效,数据文件为0,FSM文件为1,visibility map文件为2。 返回值类型: 名称 描述 start_block Extent的起始物理页号。 extent_size Extent的大小。 usage_type Extent的使用类型,比如segment head,data extent等。 ower_location 有指针指向该extent的对象的位置。比如data extent的owner就是它所属的segment的head位置。 special_data 该extent在它owner中的位置。该字段的数据跟使用类型有关。比如data extent的special data就是它在所属segment中的extent id。 其中,usage_type为枚举类型,每一项的含义为: Non-bucket table segment head :非hashbucket表的数据段头。 Non-bucket table fork head:非段页式表的fork段头。 Bucket table main head:hashbucket表的主表段头。 Bucket table map block:hashbucket表的MapBlock。 Bucket segment head:hashbucket表每个bucket的段头。 Data extent:数据块。 例如: select * from pg_stat_segment_extent_usage((select oid::int4 from pg_tablespace where spcname='pg_default'), (select oid::int4 from pg_database where datname='testdb'), 1, 0); start_block | extent_size | usage_type | ower_location | special_data -------------+-------------+------------------------+---------------+-------------- 4157 | 1 | Bucket table main head | 4294967295 | 0 4158 | 1 | Bucket table map block | 4157 | 0 4159 | 1 | Bucket table map block | 4157 | 1 4160 | 1 | Bucket table map block | 4157 | 2 4161 | 1 | Bucket table map block | 4157 | 3 4162 | 1 | Bucket table map block | 4157 | 4 4163 | 1 | Bucket table map block | 4157 | 5 4164 | 1 | Bucket table map block | 4157 | 6 4165 | 1 | Bucket table map block | 4157 | 7 4166 | 1 | Bucket table map block | 4157 | 8 local_space_shrink(tablespacename TEXT, databasename TEXT) 描述:当前节点上对指定段页式空间做物理空间收缩。注意,目前只支持对当前连接的database做shrink。 返回值:空 gs_space_shrink(int4 tablespace, int4 database, int4 extent_type, int4 forknum) 描述:效果跟local_space_shrink类似,对指定段页式空间做物理空间收缩,但参数不同,传入的是tablespace和database的oid,extent_type为[2,5]的int值。注意:extent_type = 1表示段页式元数据,目前不支持对元数据所在的物理文件做收缩。该函数仅限工具使用,不建议用户直接使用。 返回值:空 global_space_shrink(tablespacename TEXT, databasename TEXT) 描述:在cn上执行,对整个集群上所有dn执行段页式存储空间压缩。 注意:global_space_shrink 锁cluster,在此期间不能执行DDL操作。而local_space_shrink不会锁集群。 pg_stat_remain_segment_info() 描述:展示在当前节点上,因为故障等原因,残留的extent。残留extent主要分为两类:分配而未被利用的segment和分配出去而未被利用的extent。两者主要区别在于segment会包含多个extent,回收时,要将segment上的extent一并全部回收。 返回值类型: 名称 描述 space_id 表空间ID db_id 数据库ID block_id Extent的ID type Extent的类型,当前有三种:ALLOC_SEGMENT|DROP_SEGMENT|SHRINK_EXTENT 其中type的三种类型分别表示: ALLOC_SEGMENT:用户创建一张段页式表,当segment刚被分配,但是建表语句所在事务仍未提交时,节点故障,导致该segment被分配后,没有被使用。 DROP_SEGMENT:用户删除段页式表,当该事务成功提交,但是此表的segment页面对应的bit位未被重置,就发生掉电等故障,造成该segment未被使用,也未被释放。 SHRINK_EXTENT:用户对段页式表执行shrink操作,在未对空置出的extent进行释放时,发生掉电等故障,造成该extent残留,无法被重新利用。 例如: select * from pg_stat_remain_segment_info(); space_id | db_id | block_id | type ----------+-------+----------+------ 1663 | 16385| 4156| ALLOC_SEGMENT pg_free_remain_segment(int4 spaceId, int4 dbId, int4 segmentId) 描述:释放指定的残留extent。参数取值必须为从函数pg_stat_remain_segment_info中查询获取。函数会对传入值校验,如果指定extent不在记录的残留extent中,将返回错误信息。指定的extent如果为单个extent,则只将其独自释放;如果为一个segment,则会将此segment以及此segment上记录的所有extent释放。 返回值:空 父主题: 系统管理函数
  • 双数据库实例容灾查询函数 gs_get_local_barrier_status() 描述:两地三中心跨Region容灾特性开启后,主数据库实例和灾备数据库实例进行日志同步,通过barrier日志在主数据库实例的落盘,在灾备数据库实例的回放来确定主数据库实例归档日志进度与灾备数据库实例日志回放进度。gs_get_local_barrier_status用于查询灾备数据库实例每个节点当前的日志回放情况。 返回值类型:text barrier_id:灾备数据库实例某节点当前回放到的最新barrier ID。 barrier_lsn:灾备数据库实例某节点当前回放到的最新barrier ID的Log Sequence Number ( LSN )。 archive_lsn:灾备数据库实例某节点当前已获得归档日志的位置,该参数当前未生效。 flush_lsn:灾备数据库实例某节点当前已完成刷盘日志位置。 gs_hadr_in_recovery() 描述:两地三中心跨Region容灾特性开启后,查询当前节点是否处于基于目标barrier的日志恢复中,还在恢复中返回true。只有完成日志恢复,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在容灾数据库实例启动计划内switchover时使用。 gs_streaming_dr_get_switchover_barrier() 描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询灾备数据库实例的DN实例是否已接收到switchover barrier日志并完成回放,已完成返回true。灾备数据库实例只有在所有DN实例都完成switchover barrier日志回放,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在流式容灾解决方案中容灾数据库实例启动计划内switchover时使用。 gs_streaming_dr_service_truncation_check() 描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询主数据库实例的DN实例是否已完成switchover barrier日志发送,已完成返回true。只有完成日志发送,才会启动switchover流程中的生产数据库实例降为灾备数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在容灾数据库实例启动计划内switchover时使用。 gs_hadr_local_rto_and_rpo_stat() 描述:显示流式容灾的主数据库实例和备数据库实例日志流控信息(只可在主数据库实例的主DN使用,备DN以及备数据库实例均上不可获取到统计信息)。 返回值类型:record,具体各个字段的类型和含义如表1所示。 表1 gs_hadr_local_rto_and_rpo_stat参数说明 参数 类型 描述 hadr_sender_node_name text 节点的名称,包含主数据库实例和备数据库实例首备。 hadr_receiver_node_name text 备数据库实例首备名称。 source_ip text 主数据库实例主DN IP地址。 source_port int 主数据库实例主DN通信端口。 dest_ip text 备数据库实例首备DN IP地址。 dest_port int 备数据库实例首备DN通信端口。 current_rto int 流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。 target_rto int 流控的信息,目标主备数据库实例间的rto时间(单位:秒)。 current_rpo int 流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。 target_rpo int 流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。 rto_sleep_time int RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。 rpo_sleep_time int RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。 gs_hadr_remote_rto_and_rpo_stat() 描述:显示流式容灾其它非本地数据分片的主数据库实例和备数据库实例日志流控信,集中式部署场景不支持该函数。 gs_change_dorado_state() 描述:初始化用户权限,更改dorado共享卷通道状态,切盘、加盘主要逻辑 返回值类型:Boolean 参数类型 参数名 类型 共享卷通道名称 输入参数 device_name text 共享卷通道名称 输入参数 dorado_state text 共享卷状态 输入参数 term uint32 当前集群term值 gs_get_dorado_state() 描述:查看dorado共享卷通道健康和运行状态 返回值类型:record 参数类型 参数名 类型 描述 输出参数 device_name text 共享卷通道名称 输出参数 dorado_health text 共享卷健康状态 输出参数 dorado_state text 共享卷运行状态 父主题: 系统管理函数
  • test_tsc_info(time float8, loops int) 描述:测试当前节点通过TSC(TimeStamp-Counter)换算时间的准确性。该函数仅8.2.1及以上集群版本支持。 输入参数含义如下: time:测试的时间差(单位s),测试时长需要小于或者等于60s loops:测试次数,范围值[1,10] 返回值类型:record 返回值字段: id:循环次数。 real_time_diff:通过gettimeofday获取的时间差(单位us)。 est_time_scalar:通过TSC换算信息转换得到的时间差(单位us)。 est_time_frequency:通过TSC频率转换得到的时间差(单位us)。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT * FROM test_tsc_info(0.01,10); id | real_time_diff | est_time_scalar | est_time_frequency ----+----------------+-----------------+-------------------- 1 | 10057 | | 10056.9 2 | 10057 | | 10057.4816666667 3 | 10056 | | 10055.2841666667 4 | 10054 | | 10054.4908333333 5 | 10055 | | 10054.2875 6 | 10055 | | 10054.7483333333 7 | 10055 | | 10054.4725 8 | 10054 | | 10054.0766666667 9 | 10058 | | 10058.1016666667 10 | 10057 | | 10056.3733333333 (10 rows)