首批通过分布式安全可靠测评,为关键业务系统打造
系统视图概述
更新时间:2025-03-17 11:01:32
OceanBase 数据库的系统视图分为字典视图和性能视图。本文主要为您介绍字典视图和性能视图的相关内容和查看方法。
字典视图是数据库中的一种虚拟表,用于显示数据库的元数据信息和系统状态信息,包括表、列、索引、用户、角色、权限等。字典视图通常存储在系统表空间中,是只读的,不能对其进行修改或删除。
性能视图是基于数据库内存结构而构建的虚拟表,用于显示数据库的性能统计信息和监控信息,主要与性能有关,被称为动态性能视图。性能视图可以提供有关内部磁盘结构和内存结构的数据,但不是其主要目的。性能视图通常存储在系统表空间中,是只读的,不能对其进行修改或删除。
字典视图和性能视图是数据库中非常重要的元数据信息和系统状态信息的来源,可以帮助我们了解数据库的结构、状态和性能,以便进行性能调优和优化。
sys 租户下视图概述
当我们需要查询 OceanBase 数据库的元数据信息和系统状态信息时,可以通过查询 sys 租户下的视图来获取。sys 租户是 OceanBase 数据库中的一个特殊租户,包含了所有的系统级别对象和元数据信息,如表空间、用户、角色、权限等。在 sys 租户下,有许多用于显示数据库结构和状态信息的虚拟表,也称为视图。下面将对 OceanBase 数据库中 sys 租户下的视图进行概述。
字典视图
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 租户下的性能视图是用于显示数据库的性能统计信息和监控信息的虚拟表,可以通过查询这些视图来获取数据库的性能状态和监控信息。 性能视图的名称以 GV$* 和 V$* 开头,查询 GV$ 视图将返回所有符合条件的 V$ 视图信息。
GV$*: 用于显示整个集群的运行状态和性能指标信息,这类视图可以在整个集群中访问,提供全局状态信息。 根据访问权限的不同有以下区分:- 在
sys租户下访问,显示的是所有租户的信息。 - 在普通租户下访问,显示的是本租户的信息。
- 在
V$*: 用于显示客户端连接到的节点的运行状态和性能指标信息,这类视图只能用于提供客户端连接到的节点的状态信息,如果需要访问其他节点的状态信息,请使用GV$*视图。
查询视图
可登录 sys 租户,通过 SHOW 语句查看对应类型视图。
查看
oceanbase.CDB_*视图、oceanbase.DBA_*视图以及性能视图的示例如下:obclient> USE oceanbase; obclient> SHOW TABLES;
MySQL 租户下视图概述
在 OceanBase 数据库中,MySQL 租户下的视图是一种虚拟表,是由一个或多个基本表的行和列组成的逻辑表。视图可以隐藏基本表的复杂性,简化查询操作,提高数据访问的效率和安全性。
字典视图
MySQL 租户下的字典视图包含 information_schema.xxx 视图和 mysql.xxx 视图。
information_schema.xxx视图:该类视图提供对 MySQL 租户中数据库元数据(包括:数据库或表的名称、列的数据类型或访问权限)的访问。称为数据字典或系统目录。mysql.xxx视图:该类视图包含存储数据库对象元数据的数据字典表和用于其他操作目的的系统表。并兼容了部分mysql.xxx前缀的视图。例如:mysql.help_xxx视图包含了服务器端的一些帮助信息;mysql.time_zone_xxx记录了时区相关的信息;mysql.user视图和mysql.db视图记录了用户权限相关的一些信息。
以下是一些常用的 MySQL 租户下的字典视图:
information_schema.tables:显示数据库中的表信息,包括表名、表类型、表所属的数据库等。
information_schema.columns:显示数据库中的列信息,包括列名、数据类型、是否为主键等。
information_schema.indexes:显示数据库中的索引信息,包括索引名、索引类型、索引所属的表等。
information_schema.views:显示数据库中的视图信息,包括视图名、视图定义等。
mysql.user:显示数据库中的用户信息,包括用户名、密码、权限等。
性能视图
MySQL 租户下的性能视图名称以 GV$* 和 V$* 开头,每个 V$ 视图几乎都有相应的 GV$ 视图。
GV$*: 用于显示整个集群的运行状态和性能指标信息,这类视图可以在整个集群中访问,提供全局状态信息。 根据访问权限的不同有以下区分:- 在
sys租户下访问,显示的是所有租户的信息。 - 在普通租户下访问,显示的是本租户的信息。
- 在
V$*: 用于显示客户端连接到的节点的运行状态和性能指标信息,这类视图只能用于提供客户端连接到的节点的状态信息,如果需要访问其他节点的状态信息,请使用GV$*视图。
查询视图
可登录 MySQL 租户,通过 SHOW 语句查看对应类型视图。
查看
information_schema.*视图的示例如下:obclient> USE information_schema; obclient> SHOW TABLES;查看
mysql.*视图的示例如下:obclient> USE mysql; obclient> SHOW TABLES;
Oracle 租户下视图概述
在 OceanBase 数据库中,Oracle 租户提供了一些兼容 Oracle 数据库中常用的表、视图和存储过程等对象,方便用户进行迁移和使用。在 Oracle 租户下通常也有一些可以显示数据库元数据和对象信息的系统表和视图。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 MySQL 模式。
字典视图
Oracle 租户下的字典视图由下表所示的信息组成。
| 前缀 | 权限 | 其他信息 |
|---|---|---|
| DBA_ | 数据库管理员 | 包括所有用户的表、索引、视图、存储过程等,某些 DBA_ 视图具有包含对管理员有用的信息的附加列。 |
| ALL_ | 所有用户 | 包括用户拥有的对象,但是只显示当前用户有权限访问的对象。 |
| USER_ | 所有用户 | 包括当前用户的表、索引、视图、存储过程等,且带有前缀 USER_ 的视图通常不包括列 OWNER。 |
带有
DBA_的视图显示整个数据库中的所有相关信息。
DBA_视图需要使用管理员权限访问。带有
ALL_的视图用于用户对数据库的整体概览。除了用户拥有的 Schema 对象之外,这些视图还返回通过公开或显式授权给用户的 Schema 对象。
带有
USER_的视图普通数据库用户最常用的视图。此类视图具有如下特点:
在数据库中引用用户的私有环境,包括关于用户创建的模式对象、用户授予的权限等的元数据。
仅显示与用户相关的行,返回
ALL_视图中信息的子集。具有与其他视图相同的列,但是隐含列
OWNER。
Oracle 租户下对于字典视图的访问,不同的用户拥有的权限不同:
SYS 用户 是数据库的超级管理员,拥有最高的权限,可以访问所有的数据库对象和元数据信息。在 SYS 用户下,可以访问所有带
DBA_、ALL_、USER_前缀的视图,包括所有用户的元数据信息。普通用户 只能访问自己的对象和元数据信息,以及被授权给自己的对象和元数据信息。即只能访问自己的
USER_前缀的视图和所有用户的ALL_前缀的视图,不能访问DBA_前缀的视图。
总之,在 Oracle 租户下,带 DBA_、ALL_、USER_ 前缀的视图是用于访问数据库元数据信息的视图,SYS 用户可以访问所有的视图,而普通用户只能访问自己的视图和所有用户的公共视图。
性能视图
Oracle 租户下的性能视图包含 SYS.V$* 视图和 SYS.GV$* 视图,均放在 SYS 库下,查询时可省略前缀 SYS.。
SYS.V$*: 用于显示客户端连接到的节点的运行状态和性能指标信息,这类视图只能用于提供客户端连接到的节点的状态信息,如果需要访问其他节点的状态信息,请使用SYS.GV$*视图。SYS.GV$*: 用于显示整个集群的运行状态和性能指标信息,这类视图可以在整个集群中访问,提供全局状态信息。 根据访问权限的不同有以下区分:- 在 SYS 租户下访问,显示的是所有租户的信息。
- 在普通租户下访问,显示的是本租户的信息。
查询视图
可通过 SELECT 语句查看对应类型的系统视图。
查询视图的示例如下:
obclient> SELECT * FROM DBA_VIEWS;
obclient> SELECT * FROM ALL_VIEWS;