OceanBase数据字典和性能视图
OceanBase数据字典和性能视图
- SYS租户
- 字典视图
- 性能视图
- MySQL业务租户
- 字典视图
- 性能视图
- Oracle业务租户
- 字典视图
- 性能视图
OceanBase版本:V4.4.0
OceanBase数据库的系统视图分为字典视图和性能视图。
-
字典视图是数据库中的一种虚拟表,用于显示数据库的元数据信息和系统状态信息,包括表、列、索引、用户、角色、权限等。字典视图通常存储在系统表空间中,是只读的,不能对其进行修改或删除。
-
性能视图是基于数据库内存结构而构建的虚拟表,用于显示数据库的性能统计信息和监控信息,主要与性能有关,被称为动态性能视图。性能视图可以提供有关内部磁盘结构和内存结构的数据,但不是其主要目的。性能视图通常存储在系统表空间中,是只读的,不能对其进行修改或删除。
SYS租户
查看SYS租户下的系统视图有哪些:
show tables from oceanbase;
字典视图
sys租户下的字典视图是用于显示数据库中的元数据信息和系统状态信息的虚拟表,可以通过查询这些视图来获取数据库的结构和状态信息。 sys租户下的字典视图包含oceanbase.CDB_*
视图和oceanbase.DBA_*
视图。
oceanbase.CDB_*
视图:该类视图用于获取系统租户下访问所有租户的数据库对象信息。一般都对应租户级的数据字典视图为DBA_OB_*
。oceanbase.DBA_*
视图:该类视图用于获取当前租户下的所有的数据库对象信息。所有租户可见的视图,该类视图需要使用管理员权限访问。
⚠️以下视图仅sys租户下可见:
- oceanbase.DBA_OB_RESOURCE_POOLS
- oceanbase.DBA_OB_ROOTSERVICE_EVENT_HISTORY
- oceanbase.DBA_OB_SERVERS
- oceanbase.DBA_OB_SERVER_EVENT_HISTORY
- oceanbase.DBA_OB_SERVER_JOBS
- oceanbase.DBA_OB_TENANT_JOBS
- oceanbase.DBA_OB_UNITS
- oceanbase.DBA_OB_UNIT_CONFIGS
- oceanbase.DBA_OB_UNIT_JOBS
- oceanbase.DBA_OB_ZONES
⭐️ SYS租户下常用的字典视图包括:
-
oceanbase.CDB_TABLES
:展示所有租户的TABLE信息。 -
oceanbase.CDB_INDEXES
:展示所有租户的INDEX信息。 -
oceanbase.CDB_IND_COLUMNS
: 展示所有租户的索引表的列信息。 -
oceanbase.CDB_TAB_COLS
:展示所有租户的表、视图对象的列信息。 -
oceanbase.DBA_MVIEWS
:用于展示所有物化视图信息。 -
oceanbase.CDB_OB_DATABASES
:系统租户下展示所有租户的数据库元信息。 -
oceanbase.CDB_OB_MAJOR_COMPACTION
:系统租户下展示所有租户的合并全局信息。 -
oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION
:系统租户下展示所有租户各个Zone的合并信息。 -
oceanbase.CDB_OB_FREEZE_INFO
:展示合并(major_freeze)产生的版本信息。 -
oceanbase.DBA_OB_SERVERS
:展示所有OBServer节点的信息。 -
oceanbase.CDB_PART_TABLES
:展示所有租户的分区表的分区信息。 -
oceanbase.CDB_PART_INDEXES
:展示所有租户的索引表的分区信息。 -
oceanbase.CDB_IND_PARTITIONS
:展示所有租户的索引表的一级分区信息。 -
oceanbase.CDB_OB_DEADLOCK_EVENT_HISTORY
:展示死锁事件的历史记录。 -
oceanbase.CDB_OB_BACKUP_JOBS
:展示集群下所有租户的备份JOB任务。用户发起一次备份任务,记录一条JOB任务记录。 -
oceanbase.CDB_OB_BACKUP_JOB_HISTORY
:展示集群下所有租户的备份JOB任务的历史记录。 -
oceanbase.CDB_OB_BACKUP_PARAMETER
:展示备份参数。 -
oceanbase.CDB_OB_ARCHIVE_DEST
:展示归档路径配置。 -
oceanbase.CDB_OB_ARCHIVELOG
:展示每个路径上的日志归档状态。 -
oceanbase.CDB_OB_RESTORE_HISTORY
:用于展示物理恢复任务完成时的状态。 -
oceanbase.DBA_TAB_STATISTICS
:展示数据库中所有表的优化器统计信息。 -
oceanbase.CDB_OBJECTS
:系统租户下展示所有租户的对象信息。 -
oceanbase.DBA_OB_TENANTS
:展示所有租户的基本信息。 -
oceanbase.CDB_OB_SYS_VARIABLES
:在系统租户下展示所有租户的系统变量信息。 -
oceanbase.DBA_OB_RESOURCE_POOLS
:展示所有租户的资源池信息。 -
oceanbase.DBA_OB_UNITS
:展示所有租户的UNIT信息。 -
oceanbase.DBA_OB_UNIT_CONFIGS
:展示所有租户的UNIT规格信息。 -
oceanbase.CDB_OB_LS_LOCATIONS
:展示所有租户的日志流(LS)副本分布信息。 -
oceanbase.CDB_OB_TABLEGROUPS
:系统租户下展示所有租户的表组的元信息,主要是展示表组的分区信息。 -
oceanbase.CDB_OB_LS
:展示日志流的状态和恢复进度。 -
oceanbase.CDB_WR_ACTIVE_SESSION_HISTORY
:展示所有租户持久化后的ASH数据。 -
oceanbase.CDB_WR_SNAPSHOT
:展示所有租户的SNAPSHOT信息。 -
oceanbase.CDB_WR_SQLSTAT
:用于展示所有租户执行过的SQL的基本性能统计数据,每个SQL_ID + Plan_Hash的唯一值为一行。 -
oceanbase.CDB_WR_SQLTEXT
:用于展示所有租户WR采集的SQL文本。 -
oceanbase.CDB_WR_SYSSTAT
:展示所有租户的系统统计项的详细信息。
性能视图
sys租户下的性能视图是用于显示数据库的性能统计信息和监控信息的虚拟表,可以通过查询这些视图来获取数据库的性能状态和监控信息。 性能视图的名称以GV$
和V$
开头,查询GV$
视图将返回所有符合条件的V$
视图信息。
GV$*
:用于显示整个集群的运行状态和性能指标信息,这类视图可以在整个集群中访问,提供全局状态信息。根据访问权限的不同有以下区分:- 在sys租户下访问,显示的是所有租户的信息;
- 在普通租户下访问,显示的是本租户的信息。
V$*
:用于显示客户端连接到的节点的运行状态和性能指标信息,这类视图只能用于提供客户端连接到的节点的状态信息。
⭐️ SYS租户下常用的性能视图包括:
-
GV$ACTIVE_SESSION_HISTORY
:展示活跃会话历史记录。 -
GV$OB_ACTIVE_SESSION_HISTORY
:用于展示所有租户下所有OBServer节点的活跃会话历史记录。 -
GV$OB_SERVER_STORAGE
:展示所有OBServer节点上共享存储集群配置的对象存储的相关信息。 -
GV$OB_MEMORY
:用于展示租户级别的内存统计信息。 -
GV$OB_MEMSTORE
:用于展示所有服务器上所有租户的MemTable的内存使用状况。 -
GV$OB_MEMSTORE_INFO
:展示所有服务器上所有租户的所有分区的MemTable的详细信息。 -
GV$OB_SSTABLES
:展示租户的SSTable信息。 -
GV$OB_TENANT_MEMORY
:用于展示集群上每个租户的内存使用状况。 -
GV$OB_PROCESSLIST
:展示租户所在的所有OBServer节点的会话信息。 -
GV$SESSION_EVENT
:用于展示集群内所有OBServer节点的Session级别等待事件。 -
GV$SESSION_WAIT
:该视图用于展示所有服务器上所有Session的当前或者上一次等待事件的一些信息,包括等待事件名称、等待耗时等。 -
GV$SESSION_WAIT_HISTORY
:用于展示所有服务器上所有Session的最近10次等待事件的信息。 -
GV$SYSTEM_EVENT
:展示集群所有租户级别的等待事件。 -
GV$SESSTAT
:所有OBServer节点的Session级别的统计事件信息。 -
GV$SYSSTAT
:展示所有服务器上租户级别的统计事件信息。 -
GV$SESSION_LONGOPS
:展示集群DDL操作的执行状态和进度。 -
GV$OB_COMPACTION_PROGRESS
:展示租户的OBServer级合并进度信息。 -
GV$OB_PLAN_CACHE_STAT
:展示当前租户在所有OBServer节点上的每个计划缓存整体的状态。 -
GV$OB_PLAN_CACHE_PLAN_STAT
:记录了当前租户在所有Server上的计划缓存中缓存的每一个缓存对象的状态。 -
GV$OB_SQL_AUDIT
:用于展示所有Server上每一次SQL请求的来源、执行状态等统计信息。 -
GV$SQL_PLAN_MONITOR
:展示所有OBServer节点慢查询的Plan层面的统计,每个慢查询都会有一条统计信息,同时记录该Plan的Trace信息。 -
GV$OB_SESSION
:记录所有Server中创建的Session信息。 -
GV$OB_KVCACHE
:展示每台OBServer节点上的KVCACHE信息。 -
GV$OB_PARAMETERS
:展示租户所在的所有OBServer节点上的配置项信息。 -
GV$OB_SERVERS
:展示所有OBServer节点的信息。 -
GV$OB_UNITS
:展示租户所在的OBServer节点的Unit信息,系统租户看到本集群所有OBServer节点的Unit信息。 -
GV$OB_SERVER_SCHEMA_INFO
:展示所有Server上的Schema信息。 -
GV$OB_MERGE_INFO
:展示OceanBase集群已经完成的compaction相关的统计信息。 -
GV$SQL_WORKAREA
:之前受SQL自动内存管理负责执行的所有Operator的Workarea统计信息。 -
GV$LATCH
:集群所有OBServer节点的Latch信息视图。
MySQL业务租户
查看MySQL业务租户下的系统视图有哪些:
show tables from information_schema;
show tables from mysql;
字典视图
MySQL租户下的字典视图包含information_schema.xxx
视图和mysql.xxx
视图。
information_schema.xxx
视图:该类视图提供对MySQL租户中数据库元数据(包括:数据库或表的名称、列的数据类型或访问权限)的访问。称为数据字典或系统目录。mysql.xxx
视图:该类视图包含存储数据库对象元数据的数据字典表和用于其他操作目的的系统表。
⭐️ MySQL租户下常用的字典视图包括:
-
mysql.help_topic
:与其他三个表mysql.help_category
、mysql.help_relation
、mysql.help_keyword
合作生成Help命令。 -
mysql.user
:用于记录用户级别的权限信息(VIRTUAL_TABLE)。 -
information_schema.ROUTINES
:提供存储过程相关的信息。 -
information_schema.CHARACTER_SETS
:记录OceanBase数据库的字符集信息。 -
information_schema.COLLATIONS
:记录每个字符集的比对方法信息。 -
information_schema.TABLES
:记录表的信息。 -
information_schema.VIEWS
:记录视图信息。 -
information_schema.COLUMNS
:记录列信息。 -
information_schema.GLOBAL_VARIABLES
:记录全局变量信息。 -
information_schema.SCHEMATA
:记录数据库元信息。 -
information_schema.PARTITIONS
:记录Partition信息。 -
information_schema.PROCESSLIST
:提供运行中的线程信息。 -
information_schema.KEY_COLUMN_USAGE
:记录Column中Key的约束信息。 -
information_schema.SESSION_STATUS
:记录Session的状态信息,如当前活跃连接数,数据库活跃时间(Uptime)等。 -
oceanbase.DBA_OB_DEADLOCK_EVENT_HISTORY
:展示死锁事件的历史记录,该视图在非root租户下展示本租户的历史记录。 -
oceanbase.DBA_OB_BACKUP_JOBS
:展示本租户自身的备份JOB任务。 -
oceanbase.DBA_OB_ARCHIVE_DEST
:展示本租户归档路径配置。 -
oceanbase.DBA_TAB_STATISTICS
:展示数据库中所有表的优化器统计信息。 -
oceanbase.DBA_OBJECTS
:展示数据库所有数据库对象,视图定义与ALL_OBJECTS
一致。 -
oceanbase.DBA_OB_TENANTS
:展示所有租户的基本信息。包括系统租户、用户创建的租户(用户租户),以及Meta租户。用户可以根据TENANT_TYPE
列来区分租户类型。
性能视图
MySQL租户下的性能视图名称以GV$
和V$
开头,每个V$
视图几乎都有相应的GV$
视图。
GV$*
:用于显示整个集群的运行状态和性能指标信息,这类视图可以在整个集群中访问,提供全局状态信息。 根据访问权限的不同有以下区分:- 在sys租户下访问,显示的是所有租户的信息;
- 在普通租户下访问,显示的是本租户的信息。
V$*
:用于显示客户端连接到的节点的运行状态和性能指标信息,这类视图只能用于提供客户端连接到的节点的状态信息。
⭐️ MySQL租户下常用的性能视图包括:
-
GV$ACTIVE_SESSION_HISTORY
:展示活跃会话历史记录。 -
GV$OB_ACTIVE_SESSION_HISTORY
:用于展示本租户下所有OBServer节点的活跃会话历史记录。 -
GV$OB_MEMORY
:用于展示租户级别的内存统计信息。 -
GV$OB_MEMSTORE
:用于展示所有服务器上所有租户的MemTable的内存使用状况。 -
GV$OB_MEMSTORE_INFO
:展示所有服务器上所有租户的所有分区的MemTable的详细信息。 -
GV$OB_SSTABLES
:展示租户的SSTable信息。 -
GV$OB_TENANT_MEMORY
:用于展示集群上每个租户的内存使用状况。 -
GV$OB_PROCESSLIST
:展示租户所在的所有OBServer节点的会话信息。 -
GV$SESSION_EVENT
:用于展示集群内所有OBServer节点的Session级别等待事件。 -
GV$SESSION_WAIT
:该视图用于展示所有服务器上所有Session的当前或者上一次等待事件的一些信息,包括等待事件名称、等待耗时等。 -
GV$SESSION_WAIT_HISTORY
:用于展示所有服务器上所有Session的最近10次等待事件的信息。 -
GV$SYSTEM_EVENT
:展示集群所有租户级别的等待事件。 -
GV$SESSTAT
:所有OBServer节点的Session级别的统计事件信息。 -
GV$SYSSTAT
:展示所有服务器上租户级别的统计事件信息。 -
GV$SESSION_LONGOPS
:展示集群DDL操作的执行状态和进度。 -
GV$OB_COMPACTION_PROGRESS
:展示租户的OBServer级合并进度信息。 -
GV$OB_PLAN_CACHE_STAT
:展示当前租户在所有OBServer节点上的每个计划缓存整体的状态。 -
GV$OB_PLAN_CACHE_PLAN_STAT
:记录了当前租户在所有Server上的计划缓存中缓存的每一个缓存对象的状态。 -
GV$OB_SQL_AUDIT
:用于展示所有Server上每一次SQL请求的来源、执行状态等统计信息。 -
GV$SQL_PLAN_MONITOR
:展示所有OBServer节点慢查询的Plan层面的统计,每个慢查询都会有一条统计信息,同时记录该Plan的Trace信息。 -
GV$OB_KVCACHE
:展示每台OBServer节点上的KVCACHE信息。 -
GV$OB_PARAMETERS
:展示租户所在的所有OBServer节点上的配置项信息。 -
GV$OB_UNITS
:展示租户所在的OBServer节点的Unit信息,系统租户看到本集群所有OBServer节点的Unit信息。 -
GV$OB_SERVER_SCHEMA_INFO
:展示所有Server上的Schema信息。 -
GV$OB_MERGE_INFO
:展示OceanBase集群已经完成的compaction相关的统计信息。 -
GV$SQL_WORKAREA
:之前受SQL自动内存管理负责执行的所有Operator的Workarea统计信息。 -
GV$LATCH
:集群所有OBServer节点的Latch信息视图。
Oracle业务租户
查看MySQL业务租户下的系统视图有哪些:
SELECT * FROM DBA_VIEWS;
SELECT * FROM ALL_VIEWS;
字典视图
Oracle租户下的字典视图包含DBA_*
、ALL_*
、USER_*
三类视图。
DBA_*
:显示整个数据库中的所有相关信息。包括所有用户的表、索引、视图、存储过程等。DBA_*
视图需要使用管理员权限访问。ALL_*
:用于用户对数据库的整体概览。除了用户拥有的Schema对象之外,这些视图还返回通过公开或显式授权给用户的Schema对象。USER_*
:包括当前用户的表、索引、视图、存储过程等,且带有前缀USER_
的视图通常不包括列OWNER
。
⭐️ Oracle租户下常用的字典视图包括:
-
DBA_TABLES
:展示数据库中的所有表。 -
DBA_TAB_COLS
:展示数据库中的所有表、视图、集群的所有列。 -
DBA_VIEWS
:展示数据库中的所有视图。其列与ALL_VIEWS
中的列相同。 -
DBA_OBJECTS
:展示数据库所有数据库对象。 -
DBA_PROCEDURES
:展示数据库中可用的所有函数和过程,以及它们的相关属性。 -
DBA_SOURCE
:展示数据库中所有存储对象的文本源。 -
DBA_JOBS
:展示当前提交的任务总览。 -
DBA_OB_ARCHIVE_DEST
:展示归档路径配置。 -
DBA_OB_ARCHIVELOG
:展示每个路径上的日志备份状态。 -
DBA_OB_IMPORT_TABLE_TASKS
:展示表级导入任务的记录。 -
DBA_OB_IMPORT_TABLE_JOBS
:展示导入任务的相关信息。 -
DBA_TAB_STATISTICS
:展示数据库中所有表的优化器统计信息。 -
DBA_IND_STATISTICS
:展示数据库中所有索引的优化器统计信息。 -
DBA_TAB_MODIFICATIONS
:展示数据库中表的累计修改信息。 -
DBA_USERS
:展示数据库的所有用户。 -
DBA_SYS_PRIVS
:展示授予用户和角色的系统特权。 -
DBA_TAB_PRIVS
:展示数据库中的所有对象授予。 -
DBA_ROLE_PRIVS
:展示授予所有用户的角色和数据库中的角色。 -
DBA_CONSTRAINTS
:展示数据库中所有表的约束信息。 -
DBA_AUDIT_TRAIL
:展示所有审计跟踪条目。 -
DBA_INDEXES
:展示数据库所有表的索引信息。 -
DBA_IND_PARTITIONS
:展示数据库中所有索引分区的信息。 -
DBA_PART_TABLES
:展示当前用户可访问的分区表的分区信息。 -
DBA_SEQUENCES
:展示数据库中所有SEQUENCE。 -
DBA_SYNONYMS
:展示数据库中所有同义词。 -
DBA_TRIGGERS
:展示数据库中的所有触发器。 -
DBA_RECYCLEBIN
:展示数据库中所有回收站的信息。 -
NLS_DATABASE_PARAMETERS
:展示DataBase级别(OceanBase数据库租户级)的NLS参数。 -
DBA_TYPES
:展示数据库中可用的用户自定义类型。 -
DBA_SEGMENTS
:展示数据库中所有段分配的存储信息。 -
DBA_DB_LINKS
:展示当前租户下所有已创建的DBLINK。 -
DBA_SCHEDULER_JOBS
:展示当前用户可访问的调度程序作业信息。 -
DBA_WR_SNAPSHOT
:展示本租户的SNAPSHOT信息。 -
DBA_WR_CONTROL
:展示WR相关的配置信息。 -
DBA_PROFILES
:展示所有的密码策略及其限制。 -
DBA_ERRORS
:展示数据库中的当前存储对象的错误。
性能视图
Oracle租户下的性能视图包含SYS.V$*
视图和SYS.GV$*
视图,均放在SYS库下,查询时可省略前缀SYS.
。
SYS.V$*
:用于显示客户端连接到的节点的运行状态和性能指标信息,这类视图只能用于提供客户端连接到的节点的状态信息。SYS.GV$*
:用于显示整个集群的运行状态和性能指标信息,这类视图可以在整个集群中访问,提供全局状态信息。根据访问权限的不同有以下区分:- 在SYS租户下访问,显示的是所有租户的信息。
- 在普通租户下访问,显示的是本租户的信息。
⭐️ Oracle租户下常用的性能视图包括:
-
GV$ACTIVE_SESSION_HISTORY
:展示活跃会话历史记录。 -
GV$OB_ACTIVE_SESSION_HISTORY
:用于展示本租户下所有OBServer节点的活跃会话历史记录。 -
GV$OB_MEMORY
:用于展示租户级别的内存统计信息。 -
GV$OB_MEMSTORE
:用于展示所有服务器上所有租户的MemTable的内存使用状况。 -
GV$OB_MEMSTORE_INFO
:展示所有服务器上所有租户的所有分区的MemTable的详细信息。 -
GV$OB_SSTABLES
:展示租户的SSTable信息。 -
GV$OB_TENANT_MEMORY
:用于展示集群上每个租户的内存使用状况。 -
GV$OB_PROCESSLIST
:展示租户所在的所有OBServer节点的会话信息。 -
GV$SESSION_EVENT
:用于展示集群内所有OBServer节点的Session级别等待事件。 -
GV$SESSION_WAIT
:该视图用于展示所有服务器上所有Session的当前或者上一次等待事件的一些信息,包括等待事件名称、等待耗时等。 -
GV$SESSION_WAIT_HISTORY
:用于展示所有服务器上所有Session的最近10次等待事件的信息。 -
GV$SYSTEM_EVENT
:展示集群所有租户级别的等待事件。 -
GV$SESSTAT
:所有OBServer节点的Session级别的统计事件信息。 -
GV$SYSSTAT
:展示所有服务器上租户级别的统计事件信息。 -
GV$SESSION_LONGOPS
:展示集群DDL操作的执行状态和进度。 -
GV$OB_COMPACTION_PROGRESS
:展示租户的OBServer级合并进度信息。 -
GV$OB_PLAN_CACHE_STAT
:展示当前租户在所有OBServer节点上的每个计划缓存整体的状态。 -
GV$OB_PLAN_CACHE_PLAN_STAT
:记录了当前租户在所有Server上的计划缓存中缓存的每一个缓存对象的状态。 -
GV$OB_SQL_AUDIT
:用于展示所有Server上每一次SQL请求的来源、执行状态等统计信息。 -
GV$SQL_PLAN_MONITOR
:展示所有OBServer节点慢查询的Plan层面的统计,每个慢查询都会有一条统计信息,同时记录该Plan的Trace信息。 -
GV$OB_KVCACHE
:展示每台OBServer节点上的KVCACHE信息。 -
GV$OB_PARAMETERS
:展示租户所在的所有OBServer节点上的配置项信息。 -
GV$OB_UNITS
:展示租户所在的OBServer节点的Unit信息,系统租户看到本集群所有OBServer节点的Unit信息。 -
GV$OB_SERVER_SCHEMA_INFO
:展示所有Server上的Schema信息。 -
GV$SQL_WORKAREA
:之前受SQL自动内存管理负责执行的所有Operator的Workarea统计信息。 -
GV$LATCH
:集群所有OBServer节点的Latch信息视图。 -
GV$DML_STATS
:展示当前用户表中的DML信息。 -
GV$INSTANCE
:展示了当前数据库实例的状态。 -
GV$GLOBAL_TRANSACTION
:显示当前活跃的全局事务的信息。 -
GV$DBLINK
:展示该视图上发出的查询会话打开后的所有数据库链接(IN_TRANSACTION=YES
的链接)。这些数据库链接必须在关闭之前提交或回滚。
References
【1】https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003378627
【2】https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003378625