VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

vb_controldata

功能描述

vb_controldata工具用来显示数据库目录下control文件的相关信息。主要分为以下三部分:

  • 数据库初始化时的静态信息。
  • 参数配置信息。
  • WAL及检查点的动态信息。

具体可参考使用示例

注意事项

  • 该工具只能由数据库安装用户运行。

  • 使用该工具需确保数据目录正确,并且相应数据目录下的pg_control文件存在。

语法格式

vb_controldata [OPTION] [DATADIR]

参数说明

  • DATADIR

    实例对应的数据库目录。

  • OPTION取值如下:

    • -I, --instance-id=INSTANCE_ID 资源池化参数,打印指定实例的control文件信息,该参数不指定时打印全部实例的control文件和reformer页信息。当INSTANCE_ID指定为最大INSTANCE_ID+1时,只打印reformer页信息,当前最大INSTANCE_ID为63。

    • --enable-dss

      资源池化参数,开启资源池化功能。

    • --socketpath=SOCKETPATH

      资源池化参数,dss实例进程使用的socket文件路径,仅支持绝对路径。

    • -V, --version

      显示版本信息。

    • -?,--help

      打印帮助信息。

使用示例

非资源池化模式

vb_controldata $PGDATA

显示内容如下所示:

pg_control version number:            923   
Catalog version number:               201611171   
Database system identifier:           5932366688327085683  
Database cluster state:               in production   
pg_control last modified:             Tue 18 Apr 2023 02:24:31 PM CST
Latest checkpoint location:           0/D5BD6FC8
Prior checkpoint location:            0/D5BADC88
Latest checkpoint's REDO location:    0/D5BD6F48
Latest checkpoint's TimeLineID:       1
Latest checkpoint's full_page_writes: off
Latest checkpoint's NextXID:          1382379
Latest checkpoint's NextOID:          33955
Latest checkpoint's NextMultiXactId:  2
Latest checkpoint's NextMultiOffset:  0
Latest checkpoint's oldestXID:        11294
Latest checkpoint's oldestXID's DB:   16553
Latest checkpoint's oldestActiveXID:  1382379
Latest checkpoint's remove lsn:          0/C5
Time of latest checkpoint:            Tue 18 Apr 2023 02:24:31 PM CST
Minimum recovery ending location:     0/0
Backup start location:                0/0
Backup end location:                  0/0
End-of-backup record required:        no
Current wal_level setting:            hot_standby
Current max_connections setting:      250
Current max_prepared_xacts setting:   200
Current max_locks_per_xact setting:   255
Maximum data alignment:               8
Database block size:                  8192
Blocks per segment of large relation: 131072
WAL block size:                       8192
Bytes per WAL segment:                16777216
Maximum length of identifiers:        128
Maximum columns in an index:          32
Maximum size of a TOAST chunk:        1996
Date/time type storage:               64-bit integers
Float4 argument passing:              by value
Float8 argument passing:              by value
Database system TimeLine:             18

以上控制信息的内容解释如下:

  • pg_control version number:控制文件版本号。
  • Catalog version number:系统表版本号,格式是yyyymmddN,N代表yyymmdd当天改变的次数。
  • Database system identifier:数据库系统号,这个标识串是一个64bit的整数。
  • Database cluster state:实例的状态。数据库包含的状态如下所示:
    • starting up:数据库正在启动状态。
    • shut down:数据库实例(非Standby)正常关闭后控制文件中就是此状态。
    • shut down in recovery:Standby实例正常关闭后控制文件中就是此状态。
    • shutting down:正常停库时,先做checkpoint,开始做checkpoint时,会把状态设置为此状态,做完后把状态设置为shut down。
    • in crash recovery:数据库实例非异常停止后,重新启动后,会先进行实例的恢复,在实例恢复时的状态就是此状态。
    • in archive recovery:Standby实例正常启动后,就是此状态。
    • in production:数据库实例正常启动后就是此状态。
  • pg_control last modified:控制文件最后更新的时间。
  • Latest checkpoint location:数据库异常停止后再重新启动时,需要做实例恢复,实例恢复的过程是从WAL日志中,找到最后一次的checkpoint点,然后读取这个点之后的WAL日志,重新应用这些日志,最后一次的checkpoint点的信息记录在Latest checkpont项中。
  • Latest checkpoint's REDO location:数据库日志文件上检查点。
  • Latest checkpoint's NextXID:下一个事务ID。
  • Latest checkpoint's NextOID:下一个OID。
  • Latest checkpoint's TimeLineID:当前时间线。
  • Latest checkpoint's full_page_writes:数据库参数full_page_writes是否启动。
  • Latest checkpoint's NextMultiXactId:多事务ID。
  • Latest checkpoint's NextMultiOffset: 多事务偏移量。
  • Time of latest checkpoint:最后一次执行检查点时间。
  • Backup start/end location:记录了一个WAL日志的位置,用于主备库同步。
  • End-of-backup record required:记录了备库恢复过程中的一些中间状态。
  • Database block size:数据块的大小。
  • WAL block size::16384 WAL日志块的大小。
  • Bytes per WAL segment:WAL日志文件的大小。
  • Maximum length of identifiers:数据库对象名称的最大长度,如表名、索引名的最大长度,目前是128。
  • Maximum columns in an index:一个索引最多多少列,目前为32个。
  • Maximum size of a TOAST chunk:TOAST chunk的最大长度。TOAST是解决当列的内容太长,在一个数据块中存不下时的一种行外存储的方式。
  • Date/time type storage:代表Date/time类型是用64bit的长整数表示。
  • Float4/Float8 argument passing:Float4/Float8类型的参数是传值还是传引用。
  • Data page checksum version:数据块checksum的版本,默认为0,数据块没有使用checksum。初始化数据库时加了-k参数,才会在数据块上启用checksum功能。

资源池化模式

vb_controldata --enable-dss -I instance_id --socketpath=SOCKETPATH VGDATA

在资源池化模式,-I后面的参数为要查看的控制文件对应节点的节点id,VGDATA为集群的共享数据目录(例如数据目录为+data)。

当输入包含VGDATA时,会自动开启--enable-dss。

可不指定--socketpath,默认为$DSS_HOME/.dss_unix_d_socket。

使用该工具时请保证dssserver启动,如果使用了cm组件,且本节点处于stop状态时,请先开启dss手动控制模式,再启动dssserver:

export DSS_MAINTAIN=TRUE    //开启dss手动控制模式
dssserver -D $DSS_HOME &
export DSS_MAINTAIN=FALSE   //关闭dss手动控制模式