---
title: "DBA_OB_TENANT_EVENT_HISTORY - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: DBA_OB_TENANT_EVENT_HISTORY 说明 该视图从 V4.2.0 版本开始引入。 功能描述 视图 DBA_OB_TENANT_EVENT_HISTORY 用于展示本租户的历史操作记录。 字段说明 字段 类型 是否为 NULL 描述 TIMESTAMP TIMESTAMP(6) WITH LOCAL…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.6.0

# DBA_OB_TENANT_EVENT_HISTORY

更新时间：2026-05-18 10:32:55

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/700.system-views/500.system-view-of-oracle-mode/200.dictionary-view-of-oracle-mode/16100.dba_ob_tenant_event_history-of-oracle-mode.md)

#### 说明

该视图从 V4.2.0 版本开始引入。

## 功能描述

视图 `DBA_OB_TENANT_EVENT_HISTORY` 用于展示本租户的历史操作记录。

## 字段说明

| 字段 | 类型 | 是否为 NULL | 描述 |
| --- | --- | --- | --- |
| TIMESTAMP | TIMESTAMP(6) WITH LOCAL TIME ZONE | NO | 执行时间，单位微秒 |
| MODULE | VARCHAR2(256) | NO | 模块名称 |
| EVENT | VARCHAR2(256) | NO | 事件名称 |
| NAME1 | VARCHAR2(256) | YES | 第一个属性名称 |
| VALUE1 | CLOB | YES | 第一个属性值 |
| NAME2 | VARCHAR2(256) | YES | 第二个属性名称 |
| VALUE2 | CLOB | YES | 第二个属性值 |
| NAME3 | VARCHAR2(256) | YES | 第三个属性名称 |
| VALUE3 | CLOB | YES | 第三个属性值 |
| NAME4 | VARCHAR2(256) | YES | 第四个属性名称 |
| VALUE4 | CLOB | YES | 第四个属性值 |
| NAME5 | VARCHAR2(256) | YES | 第五个属性名称 |
| VALUE5 | CLOB | YES | 第五个属性值 |
| NAME6 | VARCHAR2(256) | YES | 第六个属性名称 |
| VALUE6 | CLOB | YES | 第六个属性值 |
| EXTRA_INFO | CLOB | YES | 额外的信息 |
| SVR_IP | VARCHAR2(46) | YES | 执行动作所在的 OBServer 节点的 IP |
| SVR_PORT | NUMBER(38) | YES | 执行动作所在的 OBServer 节点的端口号 |
| TRACE_ID | VARCHAR2(64) | YES | 执行动作的 Trace ID |
| COST_TIME | NUMBER(38) | YES | 执行动作所消耗的时间 |
| RET_CODE | NUMBER(38) | YES | 执行动作的错误码，如果为 `0`，则表示执行成功 |
| ERROR_MSG | VARCHAR2(512) | YES | 执行动作失败后的错误信息 |

### 典型租户事件示例

以下主要展示了 `TENANT ROLE CHANGE`（主备租户切换）、`SERVICE NAME`（服务名）、`DBMS_BALANCE` 等模块的典型租户事件。

当用户进行不同的模块操作时，所对应的事件 `NAME` 和 `VALUE` 值各不相同。

#### TENANT ROLE CHANGE

`TENANT ROLE CHANGE` 模块下有 `FAILOVER TO PRIMARY` 、`SWITCHOVER TO PRIMARY`、`SWITCHOVER TO STANDBY` 三种操作。

- **FAILOVER TO PRIMARY 操作**

  当用户发起一次 `FAILOVER TO PRIMARY` 操作的时候，租户事件记录表中以下重要事件。

     - **FAILOVER TO PRIMARY START**

      该事件记录了 `ALTER SYSTEM ACTIVATE STANDBY` 命令的具体时刻及相关租户信息。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：STMT_STR | VALUE1：用户输入的命令文本 |
      | NAME2：TENANT_INFO | VALUE2：租户在命令发起时的状态或者信息 |
     - **FAILOVER TO PRIMARY END**

      该事件记录了 `ALTER SYSTEM ACTIVATE STANDBY` 命令完成的精确时刻，包含了执行该操作的租户相关信息，日志流的最终状态，以及关键步骤的耗时细节。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：STMT_STR | VALUE1：用户输入的命令文本 |
      | NAME2：TENANT_INFO | VALUE2：租户在命令结束时的状态或者信息 |
      | NAME3：FAILOVER_SCN | VALUE3：租户 FAILOVER 后的同步位点 |
      | NAME4：COST_DETAIL | VALUE4：命令执行中的阶段耗时统计，单位为微秒 |
      | NAME5：ALL_LS | VALUE5：租户修改 ACCESS MODE 时的所有日志流状态 |
 - **SWITCHOVER TO PRIMARY 操作**

  当用户发起一次 `SWITCHOVER TO PRIMARY` 操作的时候，租户事件记录表中以下重要事件。

     - **SWITCHOVER TO PRIMARY START**

      该事件记录了 `ALTER SYSTEM SWITCHOVER TO PRIMARY` 命令的具体时刻及相关租户信息。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：STMT_STR | VALUE1：用户输入的命令文本 |
      | NAME2：TENANT_INFO | VALUE2：租户在命令发起时的状态或者信息 |
     - **WAIT LOG SYNC**

      该事件记录了租户日志同步的有关信息。当用户执行 `ALTER SYSTEM SWITCHOVER TO PRIMARY` 命令时，涉及到的租户必须等待直到从当前的主租户那里同步到所有最新的日志记录，以确保数据的一致性和完整性。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：IS_SYS_LS_SYNCED | VALUE1：租户的系统日志流是否同步 |
      | NAME2：IS_ALL_LS_SYNCED | VALUE2：租户的所有日志流是否同步 |
      | NAME3：NON_SYNC_INFO | VALUE3：如果存在不同步的日志流，系统将显示不同步的日志流数量，并提供同步速度最慢的前五个日志流的相关信息。 |
     - **SWITCHOVER TO PRIMARY END**

      该事件记录了 `ALTER SYSTEM SWITCHOVER TO PRIMARY` 命令完成的精确时刻，包含了执行该操作的租户相关信息，日志流的最终状态，以及关键步骤的耗时细节。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：STMT_STR | VALUE1：用户输入的命令文本 |
      | NAME2：TENANT_INFO | VALUE2：租户在命令结束时的状态或者信息 |
      | NAME3：SWITCHOVER_SCN | VALUE3：租户 SWITCHOVER 后的同步位点 |
      | NAME4：COST_DETAIL | VALUE4：命令执行中的阶段耗时统计，单位为微秒 |
      | NAME5：ALL_LS | VALUE5：租户修改 ACCESS MODE 时的所有日志流状态 |
 - **SWITCHOVER TO STANDBY 操作**

  当用户发起一次 `SWITCHOVER TO STANDBY` 操作的时候 ，租户事件记录表中以下重要事件。

     - **SWITCHOVER TO STANDBY START**

      该事件记录了 `ALTER SYSTEM SWITCHOVER TO STANDBY` 命令的具体时刻及相关租户信息。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：STMT_STR | VALUE1：用户输入的命令文本 |
      | NAME2：TENANT_INFO | VALUE2：租户在命令发起时的状态或者信息 |
     - **SWITCHOVER TO STANDBY END**

      该事件记录了 `ALTER SYSTEM SWITCHOVER TO STANDBY` 命令完成的精确时刻，包含了执行该操作的租户相关信息，日志流的最终状态，以及关键步骤的耗时细节。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：STMT_STR | VALUE1：用户输入的命令文本 |
      | NAME2：TENANT_INFO | VALUE2：租户在命令结束时的状态或者信息 |
      | NAME3：SWITCHOVER_SCN | VALUE3：租户 SWITCHOVER 后的同步位点 |
      | NAME4：COST_DETAIL | VALUE4：命令执行中的阶段耗时统计，单位为微秒 |
      | NAME5：ALL_LS | VALUE5：租户修改 ACCESS MODE 时的所有日志流状态 |

#### SERVICE NAME

`SERVICE NAME` 模块下有 `CREATE SERVICE`、`DELETE SERVICE`、`START SERVICE`、`STOP SERVICE` 四种操作。

这四种操作可通过 `TRACE_ID` 进行检索。例如，通过找到创建服务事件，可以根据该事件的 `TRACE_ID` 追踪到创建服务还触发了广播。

- **CREATE SERVICE**

  当某一个用户租户被发起一次创建服务时，会记录以下事件。

     - **BROADCAST SERVICE NAME**

      该事件详细记录了广播的内容、目标 OBServer 机器的列表，以及最终成功接收广播的 OBServer 机器列表。当用户执行 `ALTER SYSTEM CREATE SERVICE` 命令时，发起该命令的 OBServer 会向涉及该租户的所有 Unit 所在的 OBServer 广播该租户当前的服务名称信息。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：EPOCH | VALUE1：本次广播的租户当前的所有服务名有关信息版本 |
      | NAME2：TARGET_SERVICE_NAME_ID | VALUE2：触发本次广播事件的 `service_name_id` |
      | NAME3：SERVICE_NAME_LIST | VALUE3：租户当前的所有服务名有关信息 |
      | NAME4：SERVICE_NAME_COMMAND_TYPE | VALUE4：触发本次广播事件的操作类型 |
      | NAME5：TARGET_SERVERS_LIST | VALUE5：目标广播的机器，租户下 Unit 所在的所有非永久下线机器 |
      | NAME6：SUCCESS_SERVERS_LIST | VALUE6：广播成功的机器 |
     - **CREATE SERVICE**

      该事件记录了需要创建的服务名称，以及服务创建完成后相关的详细信息。用户发起的执行 `ALTER SYSTEM CREATE SERVICE` 命令执行完成后会生成该事件。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：SERVICE_NAME_STRING | VALUE1：用户希望创建的新的服务名名称 |
      | NAME2：CREATED_SERVICE_NAME | VALUE2：创建出的服务名有关信息 |
 - **DELETE SERVICE**

  当某一个用户租户被发起一次删除服务时，会记录以下事件。

     - **DELETE SERVICE**

      该事件记录了命令发起时刻的有关信息，当用户发起的 `ALTER SYSTEM DELETE SERVICE` 命令执行完成后会生成该事件。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：DELETED_SERVICE_NAME | VALUE1：想要删除的服务名有关信息 |
 - **START SERVICE**

  当某一个用户租户被发起一次启动服务时，会记录以下事件。

      该事件详细记录了广播的内容、目标 OBServer 机器的列表，以及最终成功接收广播的 OBServer 机器列表。当用户执行 `ALTER SYSTEM SERVICE NAME` 命令时，发起该命令的 OBServer 会向涉及该租户的所有 Unit 所在的 OBServer 广播该租户当前的服务名称信息。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：EPOCH | VALUE1：本次广播的租户当前的所有服务名有关信息版本 |
      | NAME2：TARGET_SERVICE_NAME_ID | VALUE2：触发本次广播事件的 `service _name _id` |
      | NAME3：SERVICE_NAME_LIST | VALUE3：租户当前的所有 `service_name` |
      | NAME4：SERVICE_NAME_COMMAND_TYPE | VALUE4：触发本次广播事件的操作类型 |
      | NAME5：TARGET_SERVERS_LIST | VALUE5：目标广播的机器，租户下 Unit 所在的所有非永久下线机器 |
      | NAME6：SUCCESS_SERVERS_LIST | VALUE6：广播成功的机器 |
     - **START SERVICE**

      该事件记录了命令发起时刻以及结束时刻的有关信息，用户发起的执行 `ALTER SYSTEM START SERVICE` 命令执行完成后会生成该事件。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：SERVICE_NAME_BEFORE | VALUE1：启动服务前的服务名有关信息 |
      | NAME2：SERVICE_NAME_AFTER | VALUE2：启动服务后的服务名有关信息 |
 - **STOP SERVICE**

  当某一个用户租户被发起一次停止服务时，会记录以下事件。

     - **KILL CONNECTIONS OF SERVICE NAME**

      每一个 OBServer 都会终止在其上通过被停止的服务名建立的连接，然后在租户事件视图中生成一条记录。如果某个 OBServer 上没有通过被停止的服务名建立的连接，则该事件不会被记录在表中。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：SERVICE_NAME | VALUE1：被停止的服务名的有关信息 |
      | NAME2：KILLED_CONNECTIONS_COUNT | VALUE2：杀掉的连接数 |
      | NAME3：KILLED_CONNECTIONS_LIST | VALUE3：杀掉的连接对应的 ID |
     - **BROADCAST SERVICE NAME**

      该事件详细记录了广播的内容、目标 OBServer 机器的列表，以及最终成功接收广播的 OBServer 机器列表。当用户执行 `ALTER SYSTEM STOP SERVICE` 命令时，发起该命令的 OBServer 会向涉及该租户的所有 Unit 所在的 OBServer 广播该租户当前的服务名称信息。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：EPOCH | VALUE1：本次广播的租户当前的所有服务名有关信息版本 |
      | NAME2：TARGET_SERVICE_NAME _ID | VALUE2：触发本次广播事件的 `service _name _id` |
      | NAME3：SERVICE_NAME_LIST | VALUE3：租户当前的所有 `service_name` |
      | NAME4：SERVICE_NAME_COMMAND_TYPE | VALUE4：触发本次广播事件的操作类型 |
      | NAME5：TARGET_SERVERS_LIST | VALUE5：目标广播的机器，租户下 Unit 所在的所有非永久下线机器 |
      | NAME6：SUCCESS_SERVERS_LIST | VALUE6：广播成功的机器 |
     - **STOP SERVICE**

      该事件记录了命令发起时刻以及结束时刻的有关信息，用户发起的执行 `ALTER SYSTEM STOP SERVICE` 命令执行完成后会生成该事件。

      | 属性 | 属性值 |
      | --- | --- |
      | NAME1：SERVICE_NAME_BEFORE | VALUE1：停止服务前的服务名有关信息 |
      | NAME2：SERVICE_NAME_AFTER | VALUE2：停止服务后的服务名有关信息 |

#### DBMS_BALANCE

`DBMS_BALANCE` 模块下有 `TRIGGER PARTITION BALANCE` 、`SET BALANCE WEIGHT`、`CLEAR BALANCE WEIGHT`、`CLEAR EXPIRED BALANCE WEIGHT` 4 种操作。

- **TRIGGER PARTITION BALANCE** 操作

  当用户发起一次 `DBMS_BALANCE.TRIGGER_PARTITION_BALANCE` 操作时，租户事件记录表中就会记录 `TRIGGER PARTITION BALANCE` 事件。

  `TRIGGER PARTITION BALANCE` 事件记录了 `DBMS_BALANCE.TRIGGER_PARTITION_BALANCE` 命令发起的具体时刻及相关参数信息。

  | 属性 | 属性值 |
  | --- | --- |
  | NAME1：BALANCE_TIMEOUT_S | VALUE1：触发均衡时的超时参数，单位秒 |
 - **SET BALANCE WEIGHT**

  当用户发起一次 `DBMS_BALANCE.SET_BALANCE_WEIGHT` 操作时，租户事件记录表中就会记录 `SET BALANCE WEIGHT` 事件。

  `SET BALANCE WEIGHT` 事件记录了 `DBMS_BALANCE.SET_BALANCE_WEIGHT` 命令发起的具体时刻及相关参数信息。

  | 属性 | 属性值 |
  | --- | --- |
  | NAME1：WEIGHT | VALUE1：分区权重 |
  | NAME2：DATABASE_NAME | VALUE2：设置分区权重的表所属的数据库名 |
  | NAME3：TABLE_NAME | VALUE3：设置分区权重的表的表名 |
  | NAME4：PARTITION_NAME | VALUE4：设置分区权重的一级分区名 |
  | NAME5：SUBPARTITION_NAME | VALUE5：设置分区权重的二级分区名 |
 - **CLEAR BALANCE WEIGHT**

  当用户发起一次 `DBMS_BALANCE.CLEAR_BALANCE_WEIGHT` 操作时，租户事件记录表中就会记录 `CLEAR BALANCE WEIGHT` 事件。

  `CLEAR BALANCE WEIGHT` 事件记录了 `DBMS_BALANCE.CLEAR_BALANCE_WEIGHT` 命令发起的具体时刻及相关参数信息。

  | 属性 | 属性值 |
  | --- | --- |
  | NAME1：DATABASE_NAME | VALUE1：清除分区权重的表所属的数据库名 |
  | NAME2：TABLE_NAME | VALUE2：清除分区权重的表的表名 |
  | NAME3：PARTITION_NAME | VALUE3：清除分区权重的一级分区名 |
  | NAME4：SUBPARTITION_NAME | VALUE4：清除分区权重的二级分区名 |
 - **CLEAR EXPIRED BALANCE WEIGHT**

  当后台线程清理失效的分区权重时，租户事件记录表中就会记录 `CLEAR EXPIRED BALANCE WEIGHT` 事件。

  `CLEAR EXPIRED BALANCE WEIGHT` 事件记录了后台清理失效分区权重的具体时刻及相关参数信息。

  | 属性 | 属性值 |
  | --- | --- |
  | NAME1：TABLE_NAME | VALUE1：清理的失效分区权重的表的表名 |
  | NAME2：PARTITION_NAME | VALUE2：清理的失效分区权重的一级分区名 |
  | NAME3：SUBPARTITION_NAME | VALUE3：清理的失效分区权重的二级分区名 |

## 查询示例

查询本租户的历史操作记录，展示第 1 条记录。

```shell
obclient [SYS]> SELECT * FROM SYS.DBA_OB_TENANT_EVENT_HISTORY WHERE ROWNUM = 1\G

```

查询结果如下：

```shell
*************************** 1. row ***************************
 TIMESTAMP: 2023-12-14 14:33:20.321725
    MODULE: TENANT ROLE CHANGE
     EVENT: SWITCHOVER TO STANDBY END
     NAME1: STMT_STR
    VALUE1: ALTER SYSTEM SWITCHOVER TO STANDBY TENANT backup_mysql_tenant
     NAME2: TENANT_INFO
    VALUE2: {tenant_id:1002, tenant_role:"STANDBY", switchover_status:"NORMAL", switchover_epoch:1702535600271677, sync_scn:1702535620070597000, replayable_scn:1702535620070597000, readable_scn:1702535620070597000, recovery_until_scn:4611686018427387903, log_mode:"ARCHIVELOG", max_ls_id:1003}
     NAME3: SWITCHOVER_SCN
    VALUE3: 1702535620070597000
     NAME4: COST_DETAIL
    VALUE4: WAIT_LOG_END: 100190, CHANGE_ACCESS_MODE: 47261, OTHERS: 136839
     NAME5: ALL_LS
    VALUE5: NORMAL: 1, 1001, 1002, 1003
     NAME6: NULL
    VALUE6:
EXTRA_INFO: NULL
    SVR_IP: 100.xx.xx.xx
  SVR_PORT: 13324
  TRACE_ID: Y340C64586BD4-00060C724AEB962B-0-0
 COST_TIME: 284290
  RET_CODE: 0
 ERROR_MSG: NULL
1 row in set

```

## 相关文档

- [创建服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682942)
 - [查看服务状态](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682946)
 - [启动服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682944)
 - [暂停服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682945)
 - [删除服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682943)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
