OceanBase
English日本語简体中文
Docs Home
Products
Integrations
Release Notes

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service
OceanBase DatabaseOceanBase Cloud ToolsConnectors and MiddlewareLifecycle Support Policy

OceanBase Developer Center

V4.4.3
  • Topics Overview
  • Overview
    • What is ODC?
    • Features
    • Architecture
    • Limitations
    • ODC console
  • Quick Start
    • Client ODC
      • Overview
      • Install Client ODC
      • Use Client ODC
    • Web ODC
      • Overview
      • Deploy Web ODC
      • Use Web ODC
  • Data Source Management
    • Create a data source
    • Data sources and project collaboration
    • Database O&M
      • Session management
      • Global variable management
      • Recycle bin management
  • SQL Development
    • Edit and execute SQL statements
    • Perform PL compilation and debugging
    • Use the command-line window
    • Edit and export the result set
    • Execution analysis
    • Generate test data
    • System settings
    • Intelligent SQL development
    • Common features
    • Database objects
      • Table objects
        • Overview
        • Create a table
      • View objects
        • Overview
        • Create a view
        • Manage views
      • Materialized view objects
        • Overview
        • Create a materialized view
        • Manage materialized views
      • Function objects
        • Overview
        • Create a function
        • Manage functions
      • Stored procedure objects
        • Overview
        • Create a stored procedure
        • Manage stored procedures
      • Sequence objects
        • Overview
        • Create a sequence
        • Manage sequences
      • Package objects
        • Overview
        • Create a program package
        • Manage program packages
      • Trigger objects
        • Overview
        • Create a trigger
        • Manage triggers
      • Type objects
        • Overview
        • Create a type
        • Manage types
      • Synonym objects
        • Overview
        • Create a synonym
        • Manage synonyms
      • External resource objects
        • External resources
        • Create an external resource
        • Manage external resources
  • Database Change Risk Management
    • Project collaborative management
      • Project management
      • Manage databases
      • Manage logical databases
      • Add object storage files
      • Manage project members
      • Desensitize data
      • Notification management
        • Overview
        • View notification records
        • Manage notification channels
          • Create a notification channel
          • View, edit, and delete a notification channel
          • Configure a custom channel
        • Manage notification rules
    • Manage user permissions
      • Users and roles
      • Automatic authorization
      • Apply for project permissions
      • Apply for database permissions
      • Apply table/view permissions
    • Security standards
      • Environment configuration
        • SQL check specifications
        • SQL window specification
      • Risk Management
        • Overview
        • Manage risk identification rules
        • Manage approval processes
      • Desensitization algorithms
      • Operation audit
  • Ticket Management
    • Import schemas and data
    • Export schemas and data
    • Database change management
    • Manage changes to logical databases
    • Batch database change management
    • Online schema changes
    • Synchronize shadow tables
    • Schema comparison
  • Data Lifecycle Management
    • Data archiving
    • Data cleanup
    • Manage partitioning plans
      • Manage partitioning plans
      • Set partitioning strategies
      • Examples of partitioning strategies
    • SQL Plan
  • System Integration
    • Login integration
    • Approval integration
    • SQL approval integration
    • Bastion host integration
    • Integrate with LLMs
  • Deployment Guide
    • Deployment overview
    • Preparations before deployment
    • Deploy ODC in single-node mode
    • Deploy ODC in high-availability mode
    • Deployment verification
  • Upgrade Guide
    • Upgrade Overview
    • Preparations for upgrade
    • Update single-node ODC
    • Update high-avaliability ODC
    • Upgrade verification
    • Rollback after upgrade failed
  • Best Practices
    • Tips for SQL development
    • Explore ODC team workspaces
    • Understanding real-time SQL diagnostics for OceanBase AP
    • OceanBase historical database solutions
    • ODC SQL check for automatic identification of high-risk operations
    • Integration with ODC enterprise-level account system
    • Manage and modify sharded databases and tables via ODC
    • Data masking and control practices
    • Enterprise-level control and collaboration: Safeguard every database change
  • Troubleshooting
    • ODC troubleshooting process
    • Collect message
      • View the runtime environment and version information
      • View web ODC logs
      • View client ODC logs
      • View end-to-end ODC-related logs
      • View ODC MetaDB data
      • Query the index status in OceanBase Database V4.x
      • Query the index status in OceanBase Database V1.4.x to V3.2.x
      • Collect JVM runtime information
      • Use tcpdump to capture packets
    • FAQ
      • Installation of client ODC
      • Web ODC deployment and startup
      • Connection Information
      • Command-line window
      • DDL statement display
  • Release Notes
    • V4.4
      • ODC V4.4.0
      • ODC V4.4.1
      • ODC V4.4.2
      • ODC V4.4.3
    • V4.3
      • ODC V4.3.4
      • ODC V4.3.3
      • ODC V4.3.2
      • ODC V4.3.1
      • ODC V4.3.0
    • V4.2
      • ODC V4.2.4
      • ODC V4.2.3
      • ODC V4.2.2
      • ODC V4.2.1
      • ODC V4.2.0
    • V4.1
      • ODC V4.1.3
      • ODC V4.1.2
      • ODC V4.1.1
      • ODC V4.1.0
    • V4.0
      • ODC V4.0.2
      • ODC V4.0.0
    • V3.4
      • ODC V3.4.0
    • V3.3
      • ODC V3.3.3
      • ODC V3.3.2
      • ODC V3.3.1
      • ODC V3.3.0
    • V3.2
      • ODC V3.2.3
      • ODC V3.2.2
      • ODC V3.2.1
      • ODC V3.2.0

Download PDF

Document Feedback
  1. Documentation Center
  2. OceanBase Developer Center
  3. V4.4.3

Query the index status in OceanBase Database V1.4.x to V3.2.x

Last Updated:2026-09-03 09:11:30

Index status
SQL layer semantics of index creation
Index creation process
Query index status
MySQL compatible mode
Oracle compatible mode
Query index tasks

Notice

  • This method is applicable to OceanBase Database V1.4.x to V3.2.x. To query the index progress, you must use the sys tenant account.
  • To query the index progress in OceanBase Database V4.1 and later, you can use a simpler method. For more information, see Query the index status in OceanBase Database V4.x.

Index status

SQL layer semantics of index creation

OceanBase Database is a distributed database. Its index creation process differs from that of a relational database in the following aspects:

  • When you create an index in OceanBase V2.2 or earlier, the DDL statement is asynchronously executed. That is, the DDL statement for creating the index is directly returned to the client, and the server side asynchronously executes the index creation task. In OceanBase V1.x, an index creation task is executed during a major compaction. In OceanBase V2.x or later, an index creation task is executed immediately.

  • When you create an index in OceanBase Database V2.2 or later, the DDL statement is executed immediately. However, the query timeout mechanism on the client side is abandoned. When the OBServer node and ODP process the index change DDL statement, the OBServer node and ODP implicitly change the ob_query_timeout value to 0, which indicates no execution timeout. The query timeout parameter specified on the client side will be ignored. If the socket timeout parameter is specified on the client side, when the index creation takes longer than the socket timeout period, the client will close the connection. However, the database server continues the index creation process.

    Therefore, basically, the index creation process in OceanBase Database remains asynchronously. You can query an internal table to determine the status of an index creation task. This topic describes how to query the index status in OceanBase Database in the MySQL compatible mode and Oracle compatible mode.

Index creation process

The index creation process consists of the following four phases:

  1. Preparation: The system generates index table metadata and sets the index table to a write-only state. The system then waits for the data insertion transactions of the index table to end and obtains the construction snapshot savepoints.

  2. Construction: The system scans data in the primary table based on the obtained snapshot savepoints and write them to the baseline SSTable of the index table. The system also writes data generated by incremental transactions to the MemTable. Finally, baseline data is completed, that is, the system synchronizes DML operations performed after the snapshot point to the index.

  3. Copy: After an index is created on a single replica, the system synchronizes the index to index table replicas by using the consistency algorithm.

  4. Final: The system performs data verification, and additionally uniqueness verification for the unique index. After the verification is completed, the system sets the index table the read/write state. If the verification fails, the system sets the index table to the unavailable state.

Query index status

The internal table __all_table_v2 is used to maintain the metadata of each index. Enumerated values of index_status indicate the index status. In different OceanBase Database versions, index_status values and meanings vary. The following table describes the field in different OceanBase Database versions.

index_status
OceanBase Database V1.4.7x
OceanBase V2.2.7x and later
1
  • The index is being created.
  • The index is created but does not take effect. The index takes effect after a major compaction.
The index is being created.
2 The index is available. The index is available.
3 A unique index is created and is being verified for uniqueness. A unique index takes effect after two major compactions. If this status is not returned, the index immediately takes effect after it is created in a version later than OceanBase Database V2.2. You do not need to initiate a compaction for the index to take effect.
5 An index error occurs. You can execute the drop statement to drop the index and then execute the create statement to recreate the index. Generally, this status does not occur. If an index fails to be created in a version later than OceanBase Database V2.2, the index is automatically dropped.

MySQL compatible mode

Query the index status under the business tenant. Here is the sample command:

select t.table_name as table_name, t.table_id as table_id,
  i.table_name as index_name, i.table_id as index_id,
  case i.index_status
    when 1 then 'UNAVAILABLE'
    when 2 then 'AVAILABLE'
    when 3 then 'UNIQUE_CHECK'
    when 5 then 'ERROR'
    else 'UNKNOWN'
  end as index_status
from
  oceanbase.__all_table_v2 t
  join oceanbase.__all_table_v2 i on t.table_id = i.data_table_id
  JOIN oceanbase.__all_database d on t.database_id = d.database_id
where
  d.database_name = 'test'
  and t.table_name = 't_test';

Here is the sample result:

1

Oracle compatible mode

Query the index status under the business tenant. Here is the sample command:

SELECT T.TABLE_NAME AS TABLE_NAME,
  I.TABLE_NAME AS INDEX_NAME,
  CASE I.INDEX_STATUS
    WHEN 1 THEN 'UNAVAILABLE'
    WHEN 2 THEN 'AVAILABLE'
    WHEN 3 THEN 'UNIQUE_CHECK'
    WHEN 5 THEN 'ERROR'
    ELSE 'UNKNOWN'
  END AS INDEX_STATUS
FROM
  SYS.ALL_VIRTUAL_TABLE_REAL_AGENT T
  JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT I ON T.TABLE_ID = I.DATA_TABLE_ID
  JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID
WHERE
  D.DATABASE_NAME = 'your_user_name'
  AND T.TABLE_NAME = 'your_table_name';

Query index tasks

You can query the virtual table __all_virtual_sys_task_status to check whether an index creation task exists. If the __all_virtual_sys_task_status table contains the corresponding task information, the index creation task is in the data completion phase, which is the most time-consuming phase in the index creation process. In multi-partition scenarios, each partition corresponds to a record in the __all_virtual_sys_task_status table.

In the business tenant, query the __all_virtual_sys_task_status table for the index creation task. Here is the sample command:

select start_time, task_type, svr_ip, comment
from __all_virtual_sys_task_status
where tenant_id=1014;

Query the __all_virtual_sys_task_status virtual table for the index task status:

  • If the task can be found in the table, the index creation task is being executed normally. You can wait until the index creation is completed.

  • If no tasks are found, the index creation task fails. Check the OBServer log for cause analysis.

    • The index is being created.
    • The index is created but does not take effect. The index takes effect after a major compaction.

Notice

In OceanBase Database V2.2 or later, if the task is not found in the __all_virtual_sys_task_status table and the index status is UNAVAILABLE, contact OceanBase Technical Support for troubleshooting.

You can view the task-related information in the comment field. An example of the comment field:

build index task: pkey={tid:1101710651081589, partition_id:0, part_cnt:0}
index_id=1101710651081594 snapshot_version=1686295718878029 parallelism=1
Parameter
Description
tid The ID of the table.
partition_id The ID of the partition.
index_id The ID of the index.

Notice

The table_id field in an internal table in the sys tenant is different from the table_id field in the business tenant. In the sys tenant, the table_id also includes the high 32 bits of the tenant_id .

Previous topic

Query the index status in OceanBase Database V4.x
Last

Next topic

Collect JVM runtime information
Next
on this page
Index status
SQL layer semantics of index creation
Index creation process
Query index status
MySQL compatible mode
Oracle compatible mode
Query index tasks