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 Database

Enterprise
  • V4.6.0
  • V4.5.0
  • V4.4.2
  • V4.3.5
  • V4.3.3
  • V4.3.2
  • V4.3.1
  • V4.3.0
  • V4.2.5
  • V4.2.1
  • V4.2.0
  • V4.1.0
  • V3.2.4
  • V3.2.3
  • V3.2.2
  • V3.2.1
  • V3.2.0
  • V3.1.2
  • V3.1.1
  • V2.2.77

Download PDF

Document Feedback
  1. Documentation Center
  2. OceanBase Database
  3. master

OceanBase Database Enterprise Edition V4.2.1

Last Updated:2026-09-03 02:29:56

V4.2.1 BP11 Hotfix15
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix14
Version information
Purpose
Considerations
Bug fixes
V4.2.1 BP11 Hotfix13
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix12
Version information
Purpose of the release
Bug fixes
V4.2.1 BP11 Hotfix11
Version information
Purpose of the release
Bug fixes
V4.2.1 BP11 Hotfix10
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix9
Version information
Purpose of the release
Bug fixes
V4.2.1 BP11 Hotfix7
Version information
Purpose of release
Notes
Bug fixes
V4.2.1 BP11 Hotfix6
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix5
Version information
Purpose
Bug fixes
V4.2.1 BP11 Hotfix4
Version information
Purpose of this release
Bug fixes
V4.2.1 BP11 Hotfix3
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix2
Version information
Purpose
Bug fixes
V4.2.1 BP11 Hotfix1
Version information
Purpose of release
Bug fixes
V4.2.1 BP11
Version Information
What's new
Enhanced features and stability
Syntax changes
Critical Fix
V4.2.1 BP10 Hotfix6
Version information
Purpose of the release
Bug fixes
V4.2.1 BP10 Hotfix5
Version information
Bug fixes
V4.2.1 BP10 Hotfix4
Version information
Key bug fixes
V4.2.1 BP10 Hotfix2
Version information
Key bug fixes
V4.2.1 BP10
Version information
Upgrade instructions
Feature enhancements
Product behavior changes
System variable changes
View changes
Critical bug fixes
V4.2.1 BP9 Hotfix2
Version information
Bug fixes
V4.2.1 BP9 Hotfix1
Version information
Bug fixes
V4.2.1 BP9
Version information
Upgrade notes
Feature enhancements
Changes in product behavior
Configuration item changes
System variable changes
View changes
Bug fixes
V4.2.1 BP8 Hotfix1
Version information
Bug fixes
V4.2.1 BP8
Version information
Upgrade instructions
Feature enhancements
Configuration item changes
View changes
Bug fixes
V4.2.1 BP7 Hotfix3
Version information
Bug fixes
V4.2.1 BP7 Hotfix2
Version information
Bug fixes
V4.2.1 BP7 Hotfix1
Version information
Bug fixes
V4.2.1 BP7
Version information
Upgrade notes
Feature Enhancements
Product behavior changes
Configuration item changes
System variable changes
View changes
Bug fixes
V4.2.1 BP6 Hotfix1
Version information
Key bug fixes
V4.2.1 BP6
Version information
Upgrade instructions
Performance optimization
Bug fixes
V4.2.1 BP5
Version information
Upgrade instructions
Feature enhancements
Product behavior changes
Configuration item changes
View changes
Bug fixes
V4.2.1 BP4 Hotfix3
Version information
Bug fixes
V4.2.1 BP4 Hotfix2
Version information
Bug fixes
V4.2.1 BP4 Hotfix1
Version information
Bug fixes
V4.2.1 BP4
Version information
Upgrade notes
Feature enhancements
Product behavior changes
Configuration changes
View changes
Bug fixes
V4.2.1 BP3 Hotfix5
Version information
Bug fixes
V4.2.1 BP3 Hotfix4
Version information
Bug fixes
V4.2.1 BP3 Hotfix3
Version information
Bug fixes
V4.2.1 BP3 Hotfix2
Version information
Bug fixes
V4.2.1 BP3 Hotfix1
Version information
Bug fixes
V4.2.1 BP3
Version information
Upgrade notes
Feature enhancements
Product behavior changes
Configuration item changes
View changes
Bug fixes
V4.2.1 BP2 Hotfix1
Version information
Product behavior changes
Bug fixes
V4.2.1 BP2
Version information
Version upgrade
Feature enhancements
Product behavior changes
Configuration item changes
System variable changes
System table or view changes
Bug fixes
Considerations
V4.2.1 BP1 Hotfix1
Version information
Bug fixes
V4.2.1 BP1
Version information
Version upgrade
Feature enhancements
Product behavior changes
Configuration item changes
View changes
Bug fixes
V4.2.1 GA Hotfix2
Version information
Version upgrade
Bug fixes
V4.2.1 GA Hotfix1
Version information
Bug fixes
V4.2.1 GA
Version information
Version overview
Key features
Recommended tools
Upgrade considerations

V4.2.1 BP11 Hotfix15

Version information

  • Release date: February 11, 2026
  • Version: V4.2.1 BP11 Hotfix15
  • RPM version: oceanbase-4.2.1.11-111150022026020915

Release purpose

Fix issues reported by users and improve the stability of the version.

Bug fixes

  • Fixed the issue where an error occurred when the SELECT clause of a PL subquery contained the rowid and the FROM clause table had an alias.
  • Fixed the issue where the __all_monitor_modified table was not cleared in a timely manner for non-partitioned tables, leading to an increase in dirty data and affecting the execution plan cost and CPU usage.
  • Fixed the issue where data may be incorrectly filtered when the SPF PKEY plan contains NULL values.
  • Fixed the issue where the table structure of a temporary table created by using the CREATE TABLE ... AS SELECT ... statement could not be obtained in specific scenarios.

V4.2.1 BP11 Hotfix14

Version information

  • Release date: January 9, 2026
  • Version: V4.2.1 BP11 Hotfix14
  • RPM version: oceanbase-4.2.1.11-111140012026010621

Purpose

Fix business feedback issues and improve version stability.

Considerations

If you want to upgrade a cluster from V4.2.1 BP11 Hotfix14 to V4.2.5, you must first upgrade it to V4.2.5 BP7 Hotfix3 or a later hotfix/BP version.

Bug fixes

  • Fixed the issue where a core dump may occur when a parameterized parameter of LOB type cannot be parameterized when adding an SQL plan to the plan cache.
  • Fixed the issue where the first query may return incorrect results when using ROWNUM >= ? to implement the OFFSET feature, and the parameter is set to 0.
  • Fixed the issue where incorrect results may be returned due to shared results from ROLLUP expressions under specific query conditions.
  • Fixed the issue where the template information may be lost in the SHOW CREATE TABLE result after adding or dropping a partition in a template secondary partitioned table, which may affect OMS migration.
  • Fixed the issue where a core dump may occur when executing SHOW CREATE on a PL script that contains garbled characters.
  • Fixed the issue where an error 4038 may occur when dropping a table that contains a noorder auto-increment column in a special scenario.
  • Fixed the issue where the sql_info and sql_id in the processlist view may be inconsistent when executing two SQL statements consecutively in a special scenario, with the second SQL statement taking a long time for hard parsing.
  • Fixed the issue where incorrect results may be returned when the merge join condition contains a shared expression and the data distribution is special.
  • Fixed the issue where an incorrect plan may be matched and executed when the actual parameter type is not set for arraybinding single-row execution.
  • Fixed the issue where a privilege amplification risk may occur in a special scenario.
  • Fixed the issue where a core dump may occur when querying the compaction_diagnose_info or dag_warning_info virtual table in a special scenario, due to accessing released memory.
  • Fixed the issue where data inconsistency may occur during the transfer process of an R replica or standby database in a special scenario, due to the source log stream being offline.
  • Fixed the issue where the original attributes may be overwritten when using ALTER SYSTEM to modify the table mode in a special scenario.

V4.2.1 BP11 Hotfix13

Version information

  • Release date: December 12, 2025
  • Version number: V4.2.1 BP11 Hotfix13
  • RPM version number: oceanbase-4.2.1.11-111130012025120810

Release purpose

This version fixes business feedback issues and improves the stability of the version.

Bug fixes

  • Fixed the issue where a large number of IF statements in PL can lead to a stack overflow (core dump).
  • Fixed the issue where, if a dump occurs but is not successfully written to disk, queries may directly read from the cache, potentially leading to incorrect results in specific scenarios.
  • Fixed the issue where, in an Oracle-compatible tenant with GBK encoding, accessing a remote OceanBase Oracle-compatible tenant with Chinese database names, table names, or column names may result in an error.
  • Fixed the issue where, when accessing a remote user's sequence via a DB link, specifying a username may not allow access to other users' sequences.
  • Fixed the issue where, during an upgrade, if existing views are modified, they are deleted and recreated, but the view permissions are incorrectly deleted, leading to the loss of original permissions after the upgrade.
  • Fixed the issue where, when exceptions are thrown at the transaction layer, if they occur within a PL block, these exceptions may be captured and ignored by exception handling, leading to the inability to detect unexpected exceptions.
  • Fixed the issue where, in merge join scenarios, if vectorization 2.0 is not enabled, a 4013 error may occur in specific scenarios.
  • Fixed the issue where, if the number of rows inserted into a partition in the statistics is less than the number of rows deleted, it may trigger a prolonged hard parsing of SQL.
  • Fixed the issue where, in an UPDATE SET statement, if a column is set to a subquery that does not return a result set but queries a constant expression, the result may be incorrect.
  • Fixed the issue where, when using format strings like TO_CHAR(0, 'fm9990.99') that include elements such as fm, 0, and 9, the handling of 0 values may be incompatible with Oracle behavior.
  • Fixed the issue where, if SYS_CONTEXT is used as the default value when creating a table, and then the COMMENT ON COLUMN statement is executed, triggering the check_default_value logic, the expression may execute and result in an error.
  • Fixed the issue where, when preparing SQL statements, parameter predicates included in the expression may be normalized and eliminated, leading to parameter index offset errors during execution, resulting in the actual SQL not being equivalent to the original semantics.
  • Fixed the issue where, after a thread throws a right to die exception, the related memory is released, potentially leading to a core dump.
  • Fixed the issue where, during the allocation and serialization of join filters, a core dump may occur if memory is insufficient.
  • Fixed the issue where, during the microblock writing of large wide tables, the merge operation may get stuck in specific scenarios.
  • Fixed the issue where, if memory is insufficient, frequent creation of new sessions and deserialization in remote execution may lead to a core dump.

V4.2.1 BP11 Hotfix12

Version information

  • Release date: November 6, 2025
  • Version number: V4.2.1 BP11 Hotfix12
  • RPM version number: oceanbase-4.2.1.11-111120022025110311

Purpose of the release

To fix issues reported by users and improve the stability of the version.

Bug fixes

  • Fixed the issue where the decimal places were not correctly retained when the result of the JSON_UNQUOTE function was of the double type after type inference and the SUM aggregation was performed.
  • Optimized thread resource management and fixed the issue where thread resources were continuously occupied in special scenarios, and the system could not timely expand the thread queue to handle the response, thus avoiding queue backlog.
  • Fixed the issue where a core dump occasionally occurred during the observer startup failure exit process.
  • Fixed the issue where a serialization error might be triggered when calculating the regular expression expression in the distributed execution plan.
  • Optimized the timeout logic of root_inspection during cluster upgrades to solve the problem where the inspection of a single tenant timed out due to the pressure on the system tenant in large-scale multi-tenant environments, leading to timeout in the post stage of the upgrade.
  • Fixed the issue where the state might roll back due to concurrent modification of the piece state during the primary switch process.

V4.2.1 BP11 Hotfix11

Version information

  • Release date: October 16, 2025
  • Version: V4.2.1 BP11 Hotfix11
  • RPM version: oceanbase-4.2.1.11-111110012025101314

Purpose of the release

To fix business feedback issues and improve version stability.

Bug fixes

  • Fixed the issue where, when creating a tenant, if the operating system timezone contains a non-integer offset, the system_time_zone minutes part is lost, leading to inconsistency with the operating system timezone.
  • Fixed the issue where, when executing a statement containing the returning clause via the ps protocol, a memory leak may occur in specific scenarios.
  • Fixed the issue where frequent triggering of I/O calibration (I/O performance calibration) may cause a core dump.
  • Fixed the issue where, after enabling the compensation log feature, the automatic cleanup process failed to delete some compensation logs.
  • Fixed the issue where frequent batch modification of configuration items may cause deadlocks, blocking a large number of threads, leading to lock and queue congestion, and ultimately causing slow execution of inner SQL statements or thread suspension.
  • Fixed the issue where, when a query references a rowid expression and the partitioning column has an equality constant condition, and the expression is rewritten as a shared expression projection, it may result in error 4002.
  • Fixed the issue where, after cost verification in specific scenarios, the precomputed cache failed to clear the released memory, leading to the use of incorrect values when generating plans, resulting in error 4001.
  • Fixed the issue where, when creating a dblink, the host_name specified after MY_NAME exceeds 15 bytes and is truncated, preventing local data retrieval.
  • Fixed the issue where, in specific scenarios, backup cleanup may mistakenly delete logs, causing recovery failure.

V4.2.1 BP11 Hotfix10

Version information

  • Release date: September 25, 2025
  • Version number: V4.2.1 BP11 Hotfix10
  • RPM version number: oceanbase-4.2.1.11-111100012025092309

Release purpose

This version fixes business feedback issues and improves version stability.

Bug fixes

  • Fixed an issue where, in the thread interruption mechanism of PX, if the main thread coordinator sends internal SQL refresh location information when checking retry conditions, the internal SQL may continuously report errors and retry due to the interruption status not being cleared.
  • Fixed an issue where, if a baseline is added immediately after the first execution of a query, and there are a large number of dynamic SQL statements or frequent changes in the business environment, it may lead to a large accumulation of baselines, resulting in high disk usage and low efficiency in SPM baseline operations.
  • Fixed an issue where the ObObj comparison function does not support outrow LOB. When a PL/SQL custom function uses LOB as an input parameter and uses it as an SQL filter condition within the function, it incorrectly triggers the ObObj comparison function, causing the system to hang.

V4.2.1 BP11 Hotfix9

Version information

  • Release date: September 18, 2025
  • Version number: V4.2.1 BP11 Hotfix9
  • RPM version number: oceanbase-4.2.1.11-111090012025091215

Purpose of the release

To fix business feedback issues and improve the stability of the version.

Bug fixes

  • Fixed an issue where the result was incorrect due to an error in rewriting nested subqueries in specific scenarios.
  • Fixed an issue where the query would hang due to incorrect extraction of query range from rowid expressions and partition pruning conditions in specific scenarios.
  • Fixed an issue where migration operations could lead to multiple log streams on a single node, causing I/O saturation of write threads.
  • Fixed an issue where the CREATE IF NOT EXISTS statement failed to correctly determine the index status, leading to misleading success messages after a failed rollback.
  • Fixed an issue where performance could degrade due to excessive hash collisions in the second HashJoin operation when the join keys were the same but the DOP was different in specific scenarios.
  • Fixed an issue where the INSERT operation would fail with error code 4019 after reducing the auto-increment value using ALTER AUTO_INCREMENT, preventing data insertion.
  • Fixed an issue where incorrect results could occur in multi-table queries with retries, especially when non-left join (NLJ) plans were used in correlated subqueries and conditions were pushed down to the right tables of the subqueries.
  • Fixed an issue where results were unstable when using encoded sorting with empty string values in the GBK character set in specific scenarios.

V4.2.1 BP11 Hotfix7

Version information

  • Release date: August 14, 2025
  • Version: V4.2.1 BP11 Hotfix7
  • RPM version: oceanbase-4.2.1.11-111070032025081120

Purpose of release

To fix business feedback issues and improve version stability.

Notes

Starting from V4.2.1 BP11 Hotfix7, RPM packages for el8 will no longer be released.

Bug fixes

  • Fixed the issue where, in large-scale IN scenarios, when the IN expression detects a column of text type or urowid type and the number of elements in the IN list exceeds 66,000, a stack overflow and core dump may occur.
  • Fixed the issue where, if OBServer does not set TCP_USER_TIMEOUT for connections received on the server side, the connection will not be disconnected when the socket is suspended, leading to continuous failures of RPC requests sent through this socket, which manifests as OBServer frequently being in an inactive state.
  • Fixed the issue where, when using lag/lead window functions in PL, if ignore nulls is specified but the generated SQL does not include ignore nulls, the results will be incorrect.
  • Fixed the issue where, when the distributed routing feature is enabled, an error occurs during the creation of a PL expr savepoint, incorrectly entering the rollback path for the PL expr savepoint, leading to transaction rollback due to savepoint creation failure.
  • Fixed the issue where, in transaction routing scenarios, if a multi-statement query contains SELECT FOR UPDATE and does not return an ok package, the transaction state will not be synchronized, resulting in an error.
  • Fixed the issue where, when killing a session, if the statement on the session is waiting for a lock, the kill session operation may not take effect in a timely manner, and the lock may be released with a delay.
  • Fixed the issue where, during a specific scenario of primary-standby switch, the internal table of log archiving may become abnormal, causing log archiving to be stuck.
  • Fixed the issue where, if the EXISTS OR EXISTS subquery contains specific correlated conditions, the results may be incorrect.
  • Fixed the issue where, in distributed scenarios, if the default value of a column is seq.nextval, a UNIQUE CONSTRAINT error may occur.
  • Fixed the issue where, when SPM is enabled, if the SQL text length is too long and there is no automatic baseline cleanup mechanism, the internal table will occupy increasing disk space.
  • Fixed the issue where, if a PL expr savepoint is created before expr calculation in a procedure, an error may occur at the transaction layer in distributed routing scenarios.
  • Fixed the issue where, if a subquery exists in a DML statement and PDML is enabled, and the subquery is promoted to a view and the view is merged, an Invalid argument error may occur.
  • Fixed the issue where, if count(constant) or count(column) && column = constant exists in the query, the rewrite will generate overly strict constraints, leading to plan matching failure.
  • Fixed the issue where, when OBServer restarts, RPC requests may occasionally trigger a core dump.
  • Fixed the issue where, in specific scenarios, using encoding sort may lead to memory out-of-bounds access and a core dump.
  • Fixed the issue where, when updating multiple columns in UPDATE SET, if each column's SET value is a subquery and at least one subquery contains SCALAR GROUP BY, an correctness issue may occur in empty table scenarios.
  • Fixed the issue where, if an error occurs during downpush aggregation, logging the error may lead to a core dump.
  • Fixed the issue where, when adding default spaces to a column, an error 4103 may occur during index creation.
  • Fixed the issue where, in rownum >= 0 scenarios, incorrect expression constraints may be generated, leading to plan mismatch.
  • Fixed the issue where, after a primary-standby switch, executing nextval on a sequence may occasionally result in an error 4016.

V4.2.1 BP11 Hotfix6

Version information

  • Release date: July 22, 2025
  • Version: V4.2.1 BP11 Hotfix6
  • RPM version: oceanbase-4.2.1.11-111060012025071816

Release purpose

To fix issues reported by users and improve the stability of the version.

Bug fixes

  • Fixed the issue where executing the SEQUENCE RESTART DDL operation during a primary-standby switch may cause sequence value duplication.
  • Fixed the issue where the use of question marks to pass output parameters in libobclient prepared statements is not supported, leading to issues with output parameter return packages.
  • Fixed the issue where high tenant CPU specifications, high system load, or network I/O bottlenecks may cause a large number of concurrent requests for streaming RPCs such as remote execution and remote LOB column queries to trigger 4067 errors.
  • Optimized the performance of the TRUNCATE operation on partitions when the number of rows recorded in the __all_table_history table is large.

V4.2.1 BP11 Hotfix5

Version information

  • Release date: July 15, 2025
  • Version: V4.2.1 BP11 Hotfix5
  • RPM version: oceanbase-4.2.1.11-111050022025071110

Purpose

Fix issues reported by customers and improve the stability of the version.

Bug fixes

  • Fixed the issue where the "transaction lock wait count" and "transaction lock average wait time" monitoring values in the GV$SYSSTAT view are always 0.
  • Fixed the issue where, in specific scenarios (such as incremental pure write), the minor compaction may prevent macroblocks from being reused, increasing I/O and CPU usage.
  • Fixed the issue where, in distributed routing scenarios, deadlocks on temporary nodes could not be resolved promptly, and deadlocks could not be detected in PL local retry scenarios.
  • Fixed the issue where, when using the UTF-8 binary character set with a text parameter in the in(a,b) function, the result set may be incorrect.
  • Fixed the issue where, when dropping a partitioned table with global indexes concurrently with data writes to other partitions, log replay may be blocked or OBCDC may crash.
  • Optimized the inaccurate row estimation in specific scenarios to avoid execution plan deviation and incorrect index selection.
  • Fixed the issue where, when disconnecting a native Oracle dblink connection, the dblink connection pool may be locked due to network issues, causing other threads accessing the dblink to be blocked, threads to be exhausted, queues to be backed up, and tenants to become unavailable.
  • Fixed the issue where, when using arraybinding, the JDBC driver converts the row timestamp to a date type during the first execution, leading to incorrect timestamp type recognition during subsequent plan reuse.
  • Fixed the issue where, in specific SQL scenarios, the generation of non-constant shared expressions may cause a core dump during semi/anti join pushdown.
  • Fixed the issue where, in Oracle-compatible tenant mode, the INSERT ALL statement does not validate the user's INSERT permissions, potentially allowing unauthorized data insertion.
  • Fixed the issue where, in Oracle-compatible tenant mode, if a CHAR column has a default value with a space prefix or suffix, an incorrect 4103 error may be reported when an index is created on the column.
  • Fixed the kernel statistics error that could cause a significant increase in OBKV latency.
  • Fixed the issue where, when the internal precision of the DOUBLE type is long (data cannot be accurately represented), writing to a VARCHAR column with a length limit may result in an error.
  • Fixed the issue where, in UDF precomputation scenarios, if the nest_count value has type restrictions, an error is reported when the nest_count does not meet expectations during execution.
  • Fixed the issue where, when using the plus archivelog mode for recovery, specifying the recovery point with time=xxx may fail to reach the specified point.

V4.2.1 BP11 Hotfix4

Version information

  • Release date: June 12, 2025
  • Version: V4.2.1 BP11 Hotfix4
  • RPM version: oceanbase-4.2.1.11-111040032025061010

Purpose of this release

To fix issues reported by customers and improve the stability of the version.

Bug fixes

  • Fixed the issue where a 500 tenant memory leak occurs when the number of rows in the temp table exceeds 900,000 during a plan with a CTE that uses a temp table.
  • Fixed the issue where a memory leak occurs when five or more tables are involved in left to anti/group by push down/join elimination rewriting or when five or more tables are involved in the relevant hint.
  • Fixed the issue where the server does not send any content to the client when an update statement is executed with the useArrayBinding=true option and the SQL statement does not contain bound parameters but specific values, causing the client to hang.
  • Fixed the issue where the query result is incorrect when the same table is present on both sides of a semi join, there are no direct join conditions, and both sides have unique key equality conditions.
  • Fixed the issue where the query result is incorrect when the query condition contains rownum=1 and the query can trigger view merging.
  • Fixed the issue where, when a DDL statement is executed in PL and the error code -4023 is triggered, the error code is thrown to the application layer and automatic retries are not performed.
  • Fixed the issue where, after an account is locked, the account can be logged in with the correct password without waiting for the connection_control_min_connection_delay time.
  • Fixed the issue where, when the tenant memory hold is continuously equal to the tenant memory limit, the automatic memory management always provides the minimum memory bound, causing unexpected data writes to the disk and execution timeouts.
  • Fixed the issue where, after bypass import or offline DDL, the table_prefs configuration item becomes empty.
  • Fixed the issue where, when a user variable is defined and set in an SQL statement, the plan is not hit when the SQL statement is executed for the first time in a session.
  • Fixed the issue where, in a poor network environment, the update information data reaches a bottleneck and cannot complete read/write switching within one second, causing the migration to fail and write operations to be prohibited during the switching process, resulting in write jitter for the business.
  • Fixed the issue where, in special scenarios, the trim space processing incorrectly obtains a space of size 0, causing a thread to enter an infinite loop and the merge to fail.
  • Fixed the issue where, when an error occurs during a multi-statement query and retrying with single-statement queries also fails, the connection is disconnected.
  • Fixed the issue where, when a table contains a function index, the SHOW CREATE TABLE statement execution fails due to missing parentheses, causing a syntax error and a link execution error.
  • Fixed the issue where, when a table has a large number of indexes, querying the GV$OB_PLAN_CACHE_PLAN_EXPLAIN view for the execution plan of a statement containing the table results in an error 4016 due to insufficient reserved length for the property field.
  • Fixed the issue where, in specific scenarios, data backed up and restored during migration may become unavailable.
  • Fixed the issue where, when migration kill transactions are enabled and there are concurrent active transactions writing to the source, migration may get stuck with a small probability.
  • Fixed the issue where, in specific scenarios, the light_backtrace function is called in the library function context, potentially causing a coredump.
  • Fixed the issue where the cast(question_mark as udt) scenario may report an error.
  • Fixed the issue where, in specific scenarios, after migration, the transaction status cannot be found when querying the corresponding partition in the destination log stream, potentially causing query errors or affecting read/write operations.
  • Fixed the issue where, in specific scenarios, a coredump may occur during the observer exit process.

V4.2.1 BP11 Hotfix3

Version information

  • Release date: May 20, 2025
  • Version: V4.2.1 BP11 Hotfix3
  • RPM version: oceanbase-4.2.1.11-111030012025051713

Release purpose

This version fixes issues reported by users and improves the stability of the system.

Bug fixes

  • Fixed the issue where, when an error occurs during a multi-statement query and subsequent retries with single statements also fail, it results in a connection being dropped.

V4.2.1 BP11 Hotfix2

Version information

  • Release date: May 15, 2025
  • Version: V4.2.1 BP11 Hotfix2
  • RPM version: oceanbase-4.2.1.11-111020032025051316

Purpose

Fix business feedback issues and improve version stability.

Bug fixes

  • Fixed the issue where, in specific scenarios, executing multiple layers of PL statements could result in a 4019 stack overflow error during parsing, with excessively long PL text causing a core dump.
  • Fixed the issue where, in specific scenarios, non-precise LIKE expressions could incorrectly extract query ranges, leading to incorrect results.
  • Fixed the issue where, in ARM environments, dictionary encoding could fail to filter NULL values when applied to baseline microblocks under specific conditions.
  • Fixed the issue where, when a query limits results using rownum with a lower bound of >= 0, incorrect results could be returned.
  • Fixed the issue where, in specific scenarios, a UNION ALL statement with more than 128 queries and large IN statements with over 1000 constants could trigger a core dump.
  • Fixed the issue where, in specific scenarios, concurrent execution of prepared statements with a key-value cache wash could lead to a core dump with low probability.
  • Fixed the issue where, in specific scenarios, concurrent changes to PL variables of type object could trigger a core dump.
  • Fixed the issue where, in specific scenarios, if the length of index_key exactly matches the allocated buffer length, a core dump or incomplete DDL operation could occur.
  • Adjusted the default value of weak_read_refresh_interval from 100ms to 500ms (only applicable to new clusters in V4.2.1) and optimized the internal table __all_weak_read_service (table_id 226) to prevent memory expansion caused by frequent minor merges triggered by numerous UPDATE operations on the same row.
  • Fixed the issue where the to_base64 function for LOB types would return error 4016 when handling empty strings.
  • Fixed the issue where, in a gbk tenant, during the prepare phase, a UDT-type bound variable in a CAST function would trigger error OBE-00932 during validation.
  • Fixed the issue where, in PL, an UPDATE view containing an ORDER BY column not specified in the SELECT clause would trigger an error.

V4.2.1 BP11 Hotfix1

Version information

  • Release date: April 15, 2025
  • Version: V4.2.1 BP11 Hotfix1
  • RPM version: oceanbase-4.2.1.11-111010032025041110

Purpose of release

This version fixes business feedback issues and improves version stability.

Bug fixes

  • Fixed the issue where, when a plan contains two consecutive constraints that evaluate to true, and under specific constraint conditions, the plan cache incorrectly matches an erroneous plan, leading to incorrect results.
  • Fixed the issue where, when the _enable_enhanced_cursor_validation switch is enabled, and a transaction has already opened >= 8 tables before the cursor is opened, and the cursor needs to access tables from the 8th onwards, the cursor will not read the current transaction's modifications to these tables.
  • Fixed the issue where, in the same session, if a package variable of type object is modified first, and during the package variable synchronization phase, concurrent changes to the number of object definition columns may cause a core dump.
  • Fixed the issue where the existence of a public synonym with a name that matches an existing object makes the public synonym invisible, preventing it from being hit in the PL/SQL cache and resulting in slow execution as each PL/SQL execution requires recompilation.
  • Fixed the issue where, in a CREATE TABLE statement with TTL = (create_time + INTERVAL 30 DAY), the create_time column, which is enclosed in backticks, is incorrectly cleaned up, leading to the removal of unexpired data.
  • Fixed the issue where, when I/O bandwidth exceeds 1.5 GB, the I/O calibration data may be underestimated, leading to a decrease in I/O isolation effectiveness.

V4.2.1 BP11

Version Information

  • Publication Date: 2024/03/28
  • Version: V4.2.1 BP11
  • RPM package version: oceanbase-4.2.1.11-111000052025032520

What's new

  • Upgrade from the following versions: 4.1.0 BP1–BP4, 4.2.0 GA, 4.2.0 BP1, 4.2.1 GA, and 4.2.1 BP1–10 to this version.
  • During the coexistence of 4.2.1 GA and hotfix clusters when upgrading to version 4.2.1 BP11, job creation is not allowed.

Enhanced features and stability

  • Specify source endpoints for backup/archive

    OceanBase Database clusters are commonly deployed in scenarios such as three IDCs in one city, three IDCs across two cities, and five IDCs across three regions. In these scenarios, the cross-IDC and cross-region network bandwidth is often more scarce than the local bandwidth. Therefore, the data backup process often generates a large amount of network traffic. To control the backup's occupation of the scarce bandwidth, a new version provides configuration options for the backup and archive paths. By configuring the accessible path's zone, IDC, and region, you can specify the range of nodes that can be used for the data backup and archiving.

  • Proactive scaling

    The concept of the scale-out factor is introduced. It defines the number of log streams that a log stream should be split into. Additionally, log stream O&M commands are added, allowing you to modify the region and primary zone of a log stream in preparation for scaling out.

Syntax changes

Syntax
Description
Syntax of the newly added backup and archiving task source with archiving destination configuration
  • For the data_backup_dest and log_archive_dest parameters, you can configure regions, zones, or IDCs.
  • Syntax: ALTER SYSTEM {alter|change|modify} external_storage_dest PATH = 'xxx' SET attribute = '{locality=xxxx}'; supports modifying the region, zone, or IDC setting specified in a backup or archiving destination by using the attribute = '{locality=xxxx}' option.
Add or modify the syntax for the system parameter of a log stream
  • Introduce the operation and maintenance commands for a log stream. Modify the log stream to change the zone and primary_zone parameters.
  • Syntax: ALTER SYSTEM MODIFY LS $ls_id [UNIT_GROUP $unit_group_id] [PRIMARY_ZONE '$zone_name'] [TENANT = '$tenant_name'];

Critical Fix

  • Fixed a problem where the disk usage is high when the intermediate result set is too large when a Cartesian product without an equijoin condition appears in the plan when the GroupBy operator is pulled up under specific circumstances.
  • Fixed some unexpected errors during session variable read when session variable synchronization was not performed during protocol processing logic for the dual protocol.
  • Fix the issue where a core dump might occur due to excessive recursion during PL compilation in special scenarios.
  • Fixed an issue where using generated columns as partitioning keys for LIST partitioning could result in error 4016 due to partition pruning when the filter condition for the generated column was dependent on the original column.
  • Fixed an issue where, when the number of columns in a partitioned table exceeds 128, the 4016 error is reported.
  • Fixed an issue where when the SQL statement type is merge into and it fails with error 4016 during the window function rewrite process.
  • Fixed the issue where using aggregate functions such as wm_concat that require staging data may cause an Out of Memory (OOM) error and return the error code 4013.
  • Fixed an issue where casting a tinyint as signed should result in a bigint, but it was unintentionally casting to a tinyint.

V4.2.1 BP10 Hotfix6

Version information

  • Release date: February 28, 2025
  • Version: V4.2.1 BP10 Hotfix6
  • RPM version: oceanbase-4.2.1.10-110060022025022409

Purpose of the release

To fix business feedback issues and improve version stability.

Bug fixes

  • Fixed the issue where a core dump may occur during SQL hint processing by the lexical analyzer when memory allocation fails.
  • Fixed the issue where a core dump may occur during query execution when the query contains duplicate aggregate functions and involves implicit type casting.
  • Fixed the issue where the sequence step may become abnormal when non-deterministic UDF variables are assigned values after the _enable_var_assign_use_das parameter is enabled.
  • Fixed the issue where the optimizer may hang when generating an execution plan for a multi-table query with redundant equality conditions in the join condition, and the KILL SESSION command cannot terminate the session.
  • Fixed the issue where the semantic analyzer and query rewriter threads may be blocked when a query statement contains a very large IN clause, and the KILL SESSION command cannot terminate the session.
  • Fixed the issue where session variables may not be correctly rolled back to the default values of global system variables after the RESET CONNECTION command is executed.
  • Fixed the issue where the deletion of a table's unique constraint in Oracle-compatible mode may be blocked due to the accidental deletion of associated constraints.
  • Fixed the issue where a core dump may occur during batch processing of foreign key constraints.
  • Fixed the issue where a core dump may occur during the join elimination process by the optimizer when executing a very large JOIN query (more than 1000 tables).
  • Fixed the issue where a core dump may occur during the rewriting of the ORDER BY clause in specific scenarios.
  • Fixed the issue where a core dump may occur due to insufficient capacity of the serialization buffer.
  • Fixed the issue where an error 4016 may be triggered during the UNPIVOT operation in a distributed execution plan.
  • Fixed the issue where an error 4016 may be triggered when the dynamic sampling feature for partitioned tables generates an invalid SQL statement when the partition name is a pure number.
  • Fixed the issue where an error 4002 may be triggered when the FETCH statement follows the RETURN statement.
  • Fixed the issue where the NULL attribute update of the original primary key column fails and NULL values cannot be inserted after the primary key constraint (Primary Key) is deleted in Oracle-compatible mode.
  • Fixed the issue where the startup (Bootstrap) of the new cluster fails when the IP addresses and RPC ports of the Observer nodes in the old cluster are reused by the new cluster, and some nodes in the old cluster are still running.
  • Fixed the issue where the dependency relationship table is not synchronized updated after the PL object depends on the renamed table.

V4.2.1 BP10 Hotfix5

Version information

  • Release date: January 22, 2025
  • Version: V4.2.1 BP10 Hotfix5
  • RPM version: oceanbase-4.2.1.10-110050012025011614

Bug fixes

  • Fixed the issue where memory accumulation occurs after reset connection.
  • Fixed the issue where the results of filtering JSON fields with the IN condition are incorrect in specific scenarios.
  • Fixed the issue where core dump may occur due to incorrect pruning of the ORDER BY UNION statement.
  • Fixed the issue where core dump may occur due to incorrect merging and rewriting of subqueries in the UPDATE SET statement when shared subquery expressions exist.
  • Fixed the issue where the optimizer strategy adjustment causes the inability to select the back-table index in some scenarios.

V4.2.1 BP10 Hotfix4

Version information

  • Release date: December 25, 2024
  • Version: V4.2.1 BP10 Hotfix4
  • RPM version: oceanbase-4.2.1.10-110040012024122218

Key bug fixes

  • Fixed the issue where the tenant becomes unavailable due to exceeding the tenant_id limit.
  • Fixed the issue where the alter sequence PL needs to be recompiled.
  • Fixed the issue where queries are incorrect when there are outer joins and complex filter predicates in specific forms.
  • Fixed the error when using dbms_session in the gb18030 character set.

V4.2.1 BP10 Hotfix2

Version information

  • Release date: December 5, 2024
  • Version: V4.2.1 BP10 Hotfix2
  • RPM version: oceanbase-4.2.1.10-110020012024120420

Key bug fixes

  • Fixed the issue where the performance of queries and writes decreases under high write pressure in certain scenarios.
  • Fixed the issue where error 4002 occurs in stored procedures under specific character set scenarios.
  • Fixed the issue where dynamic sampling estimates rows incorrectly in certain scenarios.
  • Fixed the issue where the result of the LIKE expression is incorrect under specific character set scenarios.
  • Fixed the issue where the estimated rows of a local index on a partitioned table are too small.
  • Fixed the issue where resources are not released after unit migration in certain scenarios.
  • Fixed the issue where error 14037 occurs when creating specific partitioned tables.
  • Fixed the issue where the system gets stuck during major compactions when adding unique indexes in parallel.

V4.2.1 BP10

Version information

  • Release date: November 15, 2024
  • Version: V4.2.1 BP10
  • RPM version: oceanbase-4.2.1.10-110000072024111216

Upgrade instructions

  • This version supports upgrades from 4.1.0 BP1-BP4, 4.2.0 GA, 4.2.0 BP1, 4.2.1 GA, and 4.2.1 BP1-BP9.
  • During the mixed operation of 4.2.1 GA and hotfix clusters upgrading to 4.2.1 BP10, job creation is not allowed.

Feature enhancements

  • Backup configuration parameters

    When users perform data backup, they also expect to back up cluster-level and tenant-level configuration parameters to facilitate quick recovery of cluster and tenant states. The new version supports using the ALTER SYSTEM BACKUP CLUSTER PARAMETERS TO 'xxxx' command to specify a path for backing up cluster-level parameters separately. It also allows adding tenant parameters to the backup data set. The ob_admin tool provides the dump_backup command to view backup parameter information.

  • Backup tenant resource configuration information

    To avoid business fluctuations, the resource configuration of the target tenant during physical recovery is recommended to be the same as the source tenant. The new version supports backing up tenant resource-related configurations, including primary_zone, unit_num, locality, and unit config, to the backup data set, facilitating the recovery of tenants with the same specifications.

  • Optimize archive standby delay

    In a cross-cloud disaster recovery architecture, the archive standby delay can be reduced to within 1 second.

  • ASH diagnostics for hot partitions

    If no slow SQL queries are present but a node has high CPU load, a hot partition issue may exist. The new version adds tablet_id information collection in ASH to monitor hot partitions for further maintenance.

  • Batch import existing execution plans to SPM baseline

    OceanBase Database supports importing execution plans from the cache to SPM baselines by specifying sql_id. However, when many plans need to be imported, it can be cumbersome to do so one by one. The new version introduces the DBMS_SPM.BATCH_LOAD_PLANS_FROM_CURSOR_CACHE procedure to support batch imports.

Product behavior changes

  • Disable the composite DDL operation that allows deleting and adding indexes in a single statement

    OceanBase Database V2.x supports composite DDL operations that allow deleting and adding indexes in a single statement. However, this operation is not atomic, leading to a period where no indexes are available after the old index is deleted and the new index is not yet added. To mitigate the business risk, this composite DDL is disabled by default. If users need to use this feature, they can set the _enable_drop_and_add_index parameter to true after understanding the implementation logic.

System variable changes

System variable
Change type
Description
pid_file New A new GLOBAL-level read-only system variable in MySQL-compatible mode, used to display the path of the file containing the server's write process ID.
port New A new GLOBAL-level read-only system variable in MySQL-compatible mode, used to display the TCP/IP port number on which the server listens.
socket New A new GLOBAL-level read-only system variable in MySQL-compatible mode, used to display the name of the socket file for local client connections on Unix platforms.

View changes

System view
Change type
Description
GV$ACTIVE_SESSION_HISTORY New column A new TABLET_ID column to display the tablet ID accessed by the session during sampling.

Critical bug fixes

  • Fixed the issue where truncation operations occasionally took a long time during batch processing.
  • Fixed the issue where JSON index acceleration queries could not be used in some scenarios.
  • Fixed the issue where core dumps could not be backed up to OSS using high versions of glibc.
  • Fixed the issue where disk space increased due to statistics collection in some scenarios.
  • Fixed the issue where suboptimal index selection occurred in specific cases.
  • Fixed the issue where an error occurred when the Primary Zone length exceeded the maximum allowed size.
  • Fixed the issue where SPM selected suboptimal execution plans in specific scenarios.
  • Fixed the issue where core dumps could occur when sending LOB data in batches via JDBC.

V4.2.1 BP9 Hotfix2

Version information

  • Release date: October 25, 2024
  • Version number: V4.2.1 BP9 Hotfix2
  • RPM version number: oceanbase-4.2.1.9-109020012024102319

Bug fixes

Fixed the issue where the return type of the ifnull function for integer types is inconsistent with MySQL.

V4.2.1 BP9 Hotfix1

Version information

  • Release date: October 12, 2024
  • Version number: V4.2.1 BP9 Hotfix1
  • RPM version number: oceanbase-4.2.1.9-109010022024101120

Bug fixes

  • Fixed the issue where ob_admin check_exist does not take effect and the tenant_backup_set_infos.obbak file cannot be dumped.

V4.2.1 BP9

Version information

  • Release date: September 20, 2024
  • Version: V4.2.1 BP9
  • RPM version: oceanbase-4.2.1.9-109000092024091919

Upgrade notes

  • This version supports upgrades from V4.1.0 BP1-BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1-BP8.
  • During the mixed operation of V4.2.1 GA and hotfix clusters upgrading to V4.2.1 BP9, job creation is not allowed.

Feature enhancements

  • Automatic routing between primary and standby tenants

    In the V2.x and V3.x series, OceanBase Database supports cluster-level primary and standby tenants. You can use CLUSTER_NAME to uniquely identify a primary/standby cluster pair. When you connect to a primary/standby cluster pair by using ODP, you can specify the cluster name to automatically route to the primary cluster. In the V4.x series, OceanBase Database supports tenant-level primary and standby tenants. A primary tenant does not record information about standby tenants, and a standby tenant does not record information about the primary tenant. The primary/standby relationship is maintained by external tools such as OCP. Therefore, you cannot automatically route to the primary tenant by using ODP. The new version introduces the SERVICE_NAME concept to manage a primary/standby tenant pair. You can specify the SERVICE_NAME to log in to the primary tenant by using ODP, for example, obclient -h $ip -P $port -u$user_name@SERVICE:$service_name. ODP can route the connection to the primary tenant based on the SERVICE_NAME to meet the automatic routing requirements of V4.x. In addition, a set of SERVICE_NAME management commands is provided under the sys tenant to create, delete, start, and stop SERVICE_NAME.

    This feature requires ODP V4.3.1 and OCP V4.3.1 or later.

  • Partition balancing at scheduled or manual intervals

    OceanBase Database V4.2 supports partition balancing based on Transfer. You can use the tenant-level parameter partition_balance_schedule_interval to control the scheduling cycle of partition balancing tasks. By default, partition balancing is performed every 2 hours from the time when an OBServer node starts. This parameter is not user-friendly and cannot control the execution time of partition balancing tasks. Since a Transfer operation may block read/write operations on the corresponding partition, performing partition balancing during peak business hours may affect the response time. If a large number of partitions need to be balanced, the cluster load may temporarily increase, which may affect the cluster performance. To optimize this scenario, the DBMS_BALANCE system package is introduced. This package provides the DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(balance_timeout) method to manually trigger partition balancing. In addition, a scheduled partition balancing task named SCHEDULED_TRIGGER_PARTITION_BALANCE is built in when you create a user tenant. By default, this task is triggered at 00:00 every day. You can use the DBMS_SCHEDULER subprogram to modify the time and frequency of the scheduled partition balancing task based on your business needs to manage partition balancing tasks more flexibly and reliably.

  • Collection of statistics for function indexes

    In previous versions, statistics were not collected for function indexes. This may result in SQL statements not being able to select execution plans that include function indexes, thus failing to achieve optimal performance. In the new version, the collection strategy is adjusted to allow statistics to be collected for function indexes.

  • Performance optimization for multi-query scenarios of INSERT and REPLACE statements

    For the INSERT ... VALUES ... ON DUPLICATE KEY UPDATE ... and REPLACE ... VALUES ... statements, batch processing is supported in multi-query scenarios to improve the performance of DML operations.

  • New optional parameter addressing_model for S3 object storage access

    You can specify the addressing_model parameter when you configure the S3 path. Valid values: virtual_hosted_style and path_style. If you set addressing_model=path_style, you can access the object storage in path style. If you set addressing_model=virtual_hosted_style or do not specify the addressing_model parameter, you can access the object storage in virtual hosted style by default.

  • Control the maximum number of rows returned by an SQL statement through the JDBC setMaxRows interface

    In Oracle-compatible mode, you can use the JDBC setMaxRows interface to control the maximum number of rows returned by an SQL statement at the protocol layer.

  • Row estimation at the storage layer

    The optimizer can estimate the number of rows based on statistics. However, this method may be insufficient in scenarios such as data skew, column correlation, and outdated statistics. If the row estimation is inaccurate, it may lead to incorrect index selection and suboptimal execution plans. Therefore, in these scenarios, the optimizer uses the storage layer to assist in row estimation. It directly obtains the relevant row count from the index information, ensuring real-time and accurate estimation. However, if the table is a partitioned table or the number of extracted ranges exceeds 10, the storage layer is not used for row estimation. The new version adjusts some of these limitations to allow the storage layer to be used for row estimation, providing a more accurate row count.

Changes in product behavior

  • Removal of the job failure count limit in DBMS_SCHEDULER

    In versions earlier than V4.2.1 BP9, a periodic job is stopped from being scheduled after it fails 16 times. Starting from V4.2.1 BP9, this behavior is changed to be compatible with Oracle. By default, the max_failures parameter is set to 0, meaning that the job will not be stopped from being scheduled regardless of the number of failures. If you want to stop the job from being scheduled after N failures, you can set the max_failures parameter to N. To resume scheduling for a job that has been stopped, you can use the DBMS_SCHEDULER.ENABLE subprogram to reset the job status. Starting from V4.2.1 BP9, it is more important to monitor and manage long-running jobs that consume a large amount of resources, especially when they are scheduled frequently.

  • Default change: No longer automatically collect statistics for text columns

    Collecting statistics for large out-row LOB columns has poor performance. By default, this process may slow down the overall statistics collection. In the new version, the collection strategy for text columns is adjusted. If you manually specify to collect statistics for text columns, the statistics will be collected. Otherwise, by default, statistics for text columns are no longer collected. However, if a function index exists on the text column, the statistics for the function index will be used for the text column. If no function index exists on the text column but the column has been used, statistics will still be collected.

  • Decoupling of histogram and basic statistics collection

    New statistics collection parameters hist_est_percent and hist_block_sample are introduced to independently control the sampling ratio for histogram collection and whether to use block sampling.

Configuration item changes

Configuration item
Change type
Description
ob_storage_s3_url_encode_type New A new cluster-level configuration item that specifies whether the URL encoding method for S3 requests is compatible with the RFC 3986 standard.
The default value is default, which means that the S3 SDK's default behavior is used, and special characters such as @ are not encoded. If you set the value to compliantRfc3986Encoding, the URL encoding method for S3 requests will be compatible with the RFC 3986 standard.

System variable changes

System variable
Change type
Description
plsql_optimize_level New The compilation optimization level significantly affects the resource consumption and time required for compilation. Generally, a higher optimization level provides better runtime performance but requires more CPU, memory, and longer compilation time. Some businesses want to flexibly balance the compilation time and runtime performance. For example, in development and testing environments, shorter compilation time is preferred, while in production environments, shorter runtime is preferred.
New GLOBAL/SESSION-level system variables are introduced to control the optimization level during PL code compilation. The default value is 2, which enables front-end optimization (IR optimization) and back-end optimization (machine code optimization), providing the best runtime performance. If you want to reduce the compilation overhead, you can lower this level.

View changes

View
Change type
Description
CDB/DBA_SCHEDULER_JOB_RUN_DETAILS New A dictionary view added in SYS tenant/MySQL-compatible mode (ported to Oracle-compatible mode), used to display job run records.
In Oracle-compatible mode, the LOG_ID, LOG_DATE, OWNER, JOB_NAME, JOB_SUBNAME, STATUS, REQ_START_DATE, ACTUAL_START_DATE, RUN_DURATION, INSTANCE_ID, SESSION_ID, SLAVE_PID, CPU_USED, CREDENTIAL_OWNER, CREDENTIAL_NAME, DESTINATION_OWNER, and DESTINATION fields are extended.
CDB/DBA_OB_SERVICES New Displays information related to SERVICE_NAME for all tenants or the current tenant. CDB views are supported only in the sys tenant.
CDB/DBA_BALANCE_JOBS New column The max_end_time column is added to display the maximum end time of the load balancing task.
CDB/DBA_BALANCE_JOB_HISTORY New column The max_end_time column is added to display the maximum end time of the load balancing task.
CDB/DBA_BALANCE_TASKS New column The balance_strategy column is added to display the balance strategy corresponding to the balance task.
CDB/DBA_BALANCE_TASK_HISTORY New column The balance_strategy column is added to display the balance strategy corresponding to the balance task.
[G]V$OB_PROCESSLIST New column The TOP_INFO column is added to display the top PL statement information of the SQL statement being executed.

Bug fixes

  • Fixed the issue where the UPDATE statement's permission check was too strict, causing an SQL execution error.
  • Fixed the issue where the JSON_EXTRACT expression's parameterization caused the JSON_UNQUOTE function to execute incorrectly.
  • Fixed the issue where using the outer table's * in the EXISTS subquery in MySQL-compatible mode caused an error.
  • Fixed the issue where the LOCK TABLES static statement was not supported in PL in Oracle-compatible mode.
  • Fixed the issue where an anonymous block returned an error code of -4007 in specific scenarios.
  • Fixed the issue where load data did not support hex strings.
  • Fixed the issue where concurrent direct load could affect tables that had already completed direct load.
  • Fixed the issue where the ORDER BY clause returned incorrect results in specific scenarios.
  • Fixed the issue where the CREATE INDEX syntax for generated columns in Oracle-compatible tenant mode was inconsistent with native Oracle.
  • Fixed the issue where SPM used a poor baseline plan in specific scenarios.
  • Fixed the issue where PL SQL caused a core dump in specific scenarios.
  • Fixed the issue where table-level backup and restore was stuck in specific scenarios.
  • Fixed the issue where incorrect results were returned when rownum was used as an execution parameter in specific scenarios.
  • Fixed the issue where the PARTITION BY ROUND clause returned unexpected results.
  • Fixed the issue where a -4016 error was returned during merge join in specific scenarios.
  • Fixed the issue where the error code was lost during reverse scan in specific scenarios.
  • Fixed the issue where setting end_date to NULL or a value exceeding 100 years in the DBMS_SCHEDULER.CREATE_JOB statement caused the end_date to be displayed incorrectly in the DBA_SCHEDULER_JOBS view.

V4.2.1 BP8 Hotfix1

Version information

  • Release date: August 28, 2024
  • Version: V4.2.1 BP8 Hotfix1
  • RPM version: oceanbase-4.2.1.8-108010012024082314

Bug fixes

  • Fixed the issue where an error is returned when the destination endpoint does not support MD5 or is not fully compatible with MD5 verification during backup and restore access to object storage.
  • Fixed the issue where OCP cannot display the restore information when more than 99 backup sets are printed during the dump_backup operation.
  • Fixed the issue where an error is returned when the user variable name contains invalid characters.
  • Supported the _push_join_predicate hint to disable the pushdown of non-base table conditions.
  • Fixed the issue where the return type precision of a custom function is incompatible with MySQL.
  • Fixed the issue where an error 4023 is returned when a stored procedure is called.
  • Fixed the memory leak issue in the PlJit memory module under specific scenarios.

V4.2.1 BP8

Version information

  • Release date: July 25, 2024
  • Version: V4.2.1 BP8
  • RPM version: oceanbase-4.2.1.8-108000052024072217

Upgrade instructions

  • This version supports upgrades from V4.1.0 BP1 to BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1 to BP7.
  • During the mixed operation of V4.2.1 GA and hotfix clusters upgrading to V4.2.1 BP8, job creation is not allowed.

Feature enhancements

  • Log stream replica management

    In versions earlier than V4.0, OceanBase Database provided a series of O&M commands for managing partition replicas, such as adding a replica to a partition, removing a replica from a partition, and converting the type of a replica in a partition. V4.x series replaced the concept of partitions with log streams and provided corresponding O&M commands for managing log stream replicas. The new version redesigned the O&M methods for log stream replica-level tasks and provided a series of syntaxes to support operations such as adding, removing, converting the type of, migrating, and modifying the number of Paxos members in log stream replicas, as well as canceling disaster recovery tasks. This meets the manual O&M needs of customers for log stream replicas.

  • Support for specifying domain names when accessing through DBLink

    OceanBase Database supports accessing remote databases through DBLink. In earlier versions, you had to specify the IP address of the remote database when creating a DBLink. The new version adds support for configuring domain names.

  • Verification of primary-standby tenant role switching

    OceanBase Database supports tenant-level primary-standby role switching. For example, you can switch a standby tenant to a primary tenant or vice versa without data loss. In case of data loss, you can fail over a standby tenant to a primary tenant. Role switching operations may fail. To reduce the risk of actual role switching, the new version adds support for verifying primary-standby tenant role switching (SWITCHOVER/FAILOVER VERIFY). You can add the VERIFY keyword after the switching command to verify whether the corresponding operation can be successfully executed. If the corresponding operation cannot be executed, an error message will be returned.

  • Display of primary-standby tenant events

    In versions earlier than V4.2.1 BP8, primary-standby tenant events such as SWITCHOVER and FAILOVER were recorded in RS events. RS events were periodically cleared, and tenant-level records were mixed with cluster operation records, making them difficult to find. The new version separates primary-standby tenant operation records into each tenant and exposes them through the CDB/DBA_OB_TENANT_EVENT_HISTORY view.

  • Cursor access after transaction commit

    Starting from V4.0, cursors cannot fetch data after a transaction is committed. Starting from V4.2.1 BP8, cursors can fetch data after a transaction is committed, provided that they have not read the tables modified in the current transaction. This requires enabling the _enable_enhanced_cursor_validation configuration item.

  • Addition of the SM3 encryption function

    The new version adds the SM3 encryption function in MySQL-compatible mode and the HASH_SM3 hashing encryption algorithm in the DBMS_CRYPTO.HASH subprogram in Oracle-compatible mode.

  • Support for hybrid cloud active-active architecture in arbitration

    As the control service of OceanBase Database, RS provides important features such as resource management, disaster recovery, load balancing, and schema management. Currently, in deployments with 2F1A or 4F1A configurations, arbitration degradation may be triggered by network issues. However, if the log stream leader remains disconnected from RS after degradation, features that depend on RS, such as DDL operations, cannot be executed, affecting system availability.

    To address this issue, the new version adds the cluster-level configuration item arbitration_degradation_policy to specify different arbitration degradation strategies:

    • LS_POLICY: The default degradation strategy.
    • CLUSTER_POLICY: Checks network connectivity with RS before degradation.

    When CLUSTER_POLICY is enabled, the log stream leader checks network connectivity with RS before degradation. If disconnected, degradation is not executed, and the leader enters a "silent" election state, preventing the current replica from being elected as the leader. This ensures the leader eventually switches to a replica connected to RS. Additionally, follower replicas in the "silent" election state periodically check connectivity with RS. When connectivity is restored, they exit the "silent" state and can be re-elected as leaders.

  • OBKV response time statistics histogram

    Building on the response time histogram feature introduced in V4.2.1 BP7, the new version adds OBKV-related statistics categories to the [G]V$OB_QUERY_RESPONSE_TIME_HISTOGRAM system view. These categories include TABLEAPI SELECT, TABLEAPI INSERT, TABLEAPI DELETE, TABLEAPI UPDATE, TABLEAPI REPLACE, TABLEAPI QUERY AND MUTATE, TABLEAPI OTHER, HBASE SCAN, HBASE PUT, HBASE DELETE, HBASE APPEND, HBASE INCREMENT, HBASE CHECK AND PUT, HBASE CHECK AND DELETE, and HBASE HYBRID BATCH.

  • Column pagination in OBKV-HBase

    Native HBase supports column pagination, which improves query performance in scenarios with large, wide tables. The new version of OBKV-HBase provides similar column pagination capabilities, allowing you to limit the number of returned columns using the ColumnPaginationFilter.

  • Reverse scanning in OBKV-HBase

    OBKV-HBase stores data sorted by RowKey (row key). In scenarios requiring ordered data access, data is typically scanned in ascending order (from smallest to largest) by RowKey. However, some business scenarios require reverse scanning, where data is accessed in descending order (from largest to smallest). The new version introduces the Reverse Scan feature, allowing users to scan data in descending order by RowKey, enhancing query performance.

  • Operating system compatibility support

    The new version supports running built-in scripts such as upgrade and TimeZone import using Python 3 to adapt to Python environment dependencies in some newer operating systems.

Configuration item changes

Configuration item
Change type
Description
arbitration_degradation_policy New A new cluster-level configuration item that specifies different arbitration degradation strategies:
  • LS_POLICY: The default degradation strategy.
  • CLUSTER_POLICY: Checks network connectivity with RS before degradation.
When CLUSTER_POLICY is enabled, the log stream leader checks network connectivity with RS before degradation. If disconnected, degradation is not executed, and the leader enters a "silent" election state, preventing the current replica from being elected as the leader. This ensures the leader eventually switches to a replica connected to RS. Additionally, follower replicas in the "silent" election state periodically check connectivity with RS. When connectivity is restored, they exit the "silent" state and can be re-elected as leaders.

View changes

View
Change type
Description
information_schema.columns New column The srs_id column is added to record the spatial coordinate system information.
[G]V$OB_SQL_AUDIT Column content change In the original view, the params_value field only records SQL parameter information. In the new version, the PL input parameter information is also recorded. Currently, only input parameters of ordinary data types are supported, and input parameters of complex data types are not supported.
CDB/DBA_OB_LS_REPLICA_TASKS New column The data_source_svr_ip, data_source_svr_port, and is_manual columns are added to record the data source and the source of the disaster recovery task during task execution.
CDB/DBA_OB_LS_REPLICA_TASK_HISTORY New A system view is added to display the execution history of disaster recovery tasks. The CDB view is supported only in the SYS tenant, and the DBA view is supported in all tenants.

Bug fixes

  • Fixed the issue where, when the replay lag between different log streams is too large, the standby database synchronization may timeout and fail.
  • Fixed the issue where, in Oracle-compatible mode, the If Updating(expr) syntax does not support cursor expressions.
  • Fixed the issue where, when there are a large number of delete operations in the dump, the index table merge is slow.
  • Fixed the issue where, when using the PHP driver to execute a delete statement, the error Cannot execute queries while other unbuffered queries are active is returned.
  • Fixed the issue where, in specific scenarios, using PL may cause memory leaks and Core dumps.
  • Fixed the issue where, in specific scenarios, using PL may cause Core dumps.
  • Fixed the issue where, when using limit + offset, an overflow may occur.
  • Fixed the issue where, in specific scenarios, when sequence is not used, the sequence operator is still generated by default, leading to long execution times for insert or update operations.
  • Fixed the issue where, when PS is used, the released reference object is accessed in a non-atomic manner, causing Core dumps.
  • Fixed the issue where, when granting user privileges, if the dcl_restriction is set and the user does not exist, an error indicating that the user does not exist is returned.
  • Fixed the issue where, when a dbms_scheduler job fails, stopping the job may cause Core dumps.
  • Fixed the issue where, when using Tencent Cloud Object Storage (COS) for archival backup, memory leaks may occur.
  • Fixed the issue where, in Oracle-compatible mode, using the PS protocol may cause an error 4016 when type inference is performed in a case when statement.
  • Fixed the issue where, when scanning a prefix index of OBKV, an error 4016 may occur.
  • Fixed the issue where, during the dump of transaction data tables, an exception may occur.
  • Fixed the issue where, when using the comment on table statement, an error may occur.
  • Fixed the issue where, in specific scenarios, when an empty array is passed as a PL parameter, an error 4013 may occur.
  • Fixed the issue where, in specific scenarios, CDC may exit without pulling data.
  • Fixed the issue where, in frequent vertical scaling scenarios, Core dumps may occur.
  • Fixed the issue where, when backup cleanup does not delete the table list, OCP statistics may be incorrect.
  • Optimized the calculation of PX threads and fixed the issue where parallel execution is slow.
  • Fixed the issue where, when inserting data in specific scenarios, the sqlexecutor memory may expand.
  • Fixed the issue where, during cluster migration, OBKV may cause Core dumps when running traffic.
  • Fixed the issue where, in specific scenarios, PL may fail to allocate memory.
  • Fixed the issue where, during direct load and DDL concurrency scenarios, Core dumps may occur.
  • Fixed the issue where, when exporting data in the GB18030 character set, garbled characters may be returned.
  • Fixed the issue where, in GIS scenarios, spatial indexes may not be used.
  • Fixed the issue where, when inserting a negative number into a decimal unsigned column, it is not converted to 0.
  • Fixed the issue where, in specific upgrade paths, triggers may become invalid after the upgrade.
  • Fixed the issue where, in specific scenarios, using connect by may cause Core dumps.
  • Fixed the issue where, when ob_enable_batched_multi_statement is enabled, the batch optimization may calculate the result incorrectly.
  • Fixed the issue where, in specific external table import scenarios, Core dumps may occur.
  • Fixed the issue where, in specific scenarios, the distinct and row_number functions may produce incorrect results.
  • Fixed the issue where, in PS mode, using the decode function may cause incorrect type inference errors.
  • Fixed the issue where, in specific scenarios, the merge of dumps may fail to trigger.
  • Fixed the issue where, in PS/PS dual-protocol scenarios, output parameters may not be obtained.
  • Fixed the issue where, when accessing JSON fields using JDBC, the returned values may be incorrect.
  • Fixed the issue where, when truncating data, global indexes may be lost.
  • Fixed several issues where synonyms do not match the execution plans.
  • Fixed the issue where, when SQL statements carry comments, the wrong execution plan is selected, and an error package is returned.
  • Fixed the issue where, during the evolution of SPM, when the Plan Cache is refreshed, the baseline manager in memory incorrectly considers the new plan to be a verified plan, causing SPM to fail to take effect correctly.
  • Fixed the issue where, when multiple threads concurrently generate poor execution plans, the evolution results may fail to be stored in the Plan Cache after the evolution task is completed.

V4.2.1 BP7 Hotfix3

Version information

  • Release date: June 28, 2024
  • Version: V4.2.1 BP7 Hotfix3
  • RPM version: oceanbase-4.2.1.7-107030032024062709

Bug fixes

  • Fixed the memory leak issue caused by using Tencent Cloud Object Storage (COS) for archive backup.
  • Fixed the issue where using the PS protocol in Oracle-compatible mode may cause error 4016 when type inference is performed on CASE WHEN statements.
  • Fixed the issue where an error 4016 occurs during prefix index scans on OBKV.
  • Fixed the issue where data table dumps may fail during transactions.

V4.2.1 BP7 Hotfix2

Version information

  • Release date: June 14, 2024
  • Version: V4.2.1 BP7 Hotfix2
  • RPM version: oceanbase-4.2.1.7-107020012024061213

Bug fixes

  • Fixed the issue where an error may occur when executing the comment on TABLE operation.
  • Fixed the issue where the table list may be left behind after backup cleanup.
  • Fixed the issue where an error 4013 may occur when a PL procedure receives an empty array in certain scenarios.
  • Fixed the issue where obcdc may exit when it cannot retrieve data in certain scenarios.
  • Fixed the issue where a core dump may occur in frequent vertical scaling scenarios.

V4.2.1 BP7 Hotfix1

Version information

  • Release date: June 6, 2024
  • Version number: V4.2.1 BP7 Hotfix1
  • RPM version number: oceanbase-4.2.1.7-107010022024060601

Bug fixes

Fixed the issue where a large amount of data write amplification accumulates in the transaction data table under high load scenarios, leading to excessive overall I/O load.

V4.2.1 BP7

Version information

  • Date: May 30, 2024
  • Version: V4.2.1 BP7
  • RPM package version: oceanbase-4.2.1.7-107000112024052920

Upgrade notes

  • Supported upgrades from versions V4.1.0 BP1-BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1-BP6 to this version.
  • During the mixed operation of the cluster upgrade from V4.2.1 GA and hotfix to V4.2.1 BP7, job creation is not allowed.
  • When upgrading from each version in V4.2 to V4.2.1 BP7, the restrictions for merges were relaxed during the upgrade process.

Feature Enhancements

  • Backup and restore S3/OBS/GCS

    Supports S3 Protocol, allows using S3, OBS, or GCS as the destination for log archiving and data backup, and enables physical recovery using backup data stored on S3, OBS, or GCS.

  • Compressed data import support enabled during bypass mode

    During the data import via bypass, if the intermediate data occupies too much space, it may fill up the disk space, resulting in the import failure. The new version introduces the capability to compress intermediate data during bypass data import. You can use the system variable _ob_ddl_temp_file_compress_func at the tenant level to enable the feature and specify the compression algorithm to use.

    The default value is NONE, which indicates that the intermediate data is not compressed. This option is suitable for scenarios with enough disk space where you prefer higher import performance. You can change the value to ZSTD or LZ4 to enable compression with the specified algorithm. You can also set the value to AUTO to automatically enable compression.

  • Physical restore at set/piece level

    In the backup and restore system, a physical restore scenario may exist where a data backup set or archived log needs to be manually migrated to a new path. The new version provides a SET or PIECE level physical restore function. You can run the ADD RESTORE SOURCE command to load a data backup set SET or archived log PIECE from the new path, and restore it to the specified time as required.

  • Optimize the source of migration

    The new version classifies servers by region and divides them into three categories: same IDC, same region with different IDCs, and cross-region. The choose_migration_source_policy parameter allows you to specify the source selection strategy in migration and replication scenarios. This helps prioritize factors such as geographic proximity and follower replicas to improve migration efficiency and reduce leader pressure.

  • Physical restore progress statistics

    In earlier versions, you could view the progress of a physical restore by running SELECT * FROM CDB_OB_RESTORE_PROGRESS or SELECT * FROM DBA_OB_RESTORE_PROGRESS. However, this topic has been deprecated. We recommend that you use CDB/DBA_OB_RESTORE_PROGRESS to query the progress of a physical restore.

  • Tenant transaction data table dump scheduling optimization for large-sized tenants

    Optimize the issue of timely transaction table dump in large-scale tenant scenarios, accelerate transaction table dump scheduling, and further optimize Buffer table performance.

  • Isolate global CPU foreground and background tasks

    In previous versions, OceanBase Database supports configuration of CPU resource isolation between tenants through tenant Unit specifications and provides the DBMS_RESOURCE_MANAGER package for configuration of CPU resource isolation within a single tenant. In this version, you can implement isolation between CPU-intensive front-end and background tasks for all tenants. This feature allows you to centrally restrict the available resources of background tasks. This solution is more convenient and easy to use compared with that of configuration of CPU resource isolation within a single tenant through the DBMS_RESOURCE_MANAGER package.

  • Added response time histogram

    In earlier versions, OceanBase Database supported average response time and maximum response time metrics for different SQL categories, but lacked more granular metrics reflecting the execution performance of a specific SQL statement. The new version adds the response time histogram feature, allowing you to calculate and monitor response time statistics such as P90 and P95 for different types of SQL statements.

  • Partitioning Strategy Optimization

    The new version optimizes the partition balancing strategy to support continuous partition dispersion during the creation of a partitioned table. When the user table contains columns such as longtext/lob columns or local indexes, the partition disk balancing also calculates the associated tables, achieving a more balanced disk usage.

  • OBCDC Launch Acceleration

    A new version optimizes the OBCDC startup performance to help improve the performance of downstream binlog synchronization.

  • Extend the number of JSON levels allowed

    The historical version of the service limits the maximum nesting depth of JSON documents to 100. In newer versions, you can use the json_document_max_depth parameter to set the maximum nesting depth of JSON documents based on your business requirements. To set a maximum nesting depth greater than 100, you can increase the value of this parameter.

  • I/O Load-Based Adaptive Arbitration Upgrade and Downgrade

    The new version provides a log disk failure detection algorithm based on I/O load. This feature can effectively detect cloud disk failures and execute arbitration downgrade to avoid continued business impact from cloud disk failures.

    Specifically, the fault detection algorithm continuously learns and records the write performance data of the log disk. If the algorithm detects a significant drop in the log disk's write performance compared to the baseline performance, it marks the log disk as faulty and initiates arbitration downgrade. After the log disk is marked as faulty, the algorithm continues to monitor the log disk's performance to determine if it remains in the faulty state. The log disk is only marked as normal when the log disk's performance has been within the normal range for a specified period of time, ensuring that arbitration upgrade does not cause jitter in business requests due to the log disk fault.

  • Supports HBase PageFilter

    In the OB-HBase model, you can use a PageFilter to limit the number of rows returned from a table. This allows you to fetch a specified number of rows instead of all rows.

  • Optimize backup performance

    During backup in OceanBase Database, the base version must be later than the dump version to ensure data integrity. However, the continuous check involves reading data from the backup media and performing operations with locks, which may affect the backup performance. The new version optimizes the backup performance by reducing the overhead of the continuous check. You can use the ha_low_thread_score parameter to control the number of threads used for backup.

Product behavior changes

  • The default value of the optimizer version is changed to "4.2.1.7" (optimizer_features_enable).

    Starting from V4.2.1 BP7, new clusters can use the new optimizer capabilities. However, when upgrading from V4.2.1 BP6 or earlier to V4.2.1 BP7, the previous system parameter values are retained. For V4.2.1 BP6 or earlier, the default value is empty, indicating the use of the optimizer capabilities from V4.2.1.0.

  • The DBMS_JOB system package is disabled.

    Due to some defects in the DBMS_JOB package, it is disabled for new clusters starting from V4.2.1 BP7. If needed, replace it with DBMS_SCHEDULER. Clusters upgraded from older versions remain enabled, but this may be deprecated in the future.

Configuration item changes

Configuration item
Change type
Description
choose_migration_source_policy New A new tenant-level configuration item to control the migration source selection strategy. Two options are provided:
  • idc: Prioritize selecting a Follower replica within the same IDC as the source. If only a Leader replica exists, select the Leader replica.
  • region: Prioritize selecting a Follower replica within the same Region as the source. If only a Leader replica exists, select the Leader replica.
The default strategy is idc.
json_document_max_depth New A new tenant-level configuration item to set the maximum allowed nesting level for JSON documents. The default is 100, which can be modified to a maximum of 1024.
log_storage_warning_trigger_percentage New A new cluster-level configuration item to set the write performance percentage threshold for triggering a log disk failure.
  • The default is 0, indicating that if the log disk write latency exceeds the value of the log_storage_warning_tolerance_time parameter, a log disk failure is considered.
  • If the value is greater than 0, it indicates that if the current log disk write performance drops below the baseline performance multiplied by the percentage specified by log_storage_warning_trigger_percentage, and this performance degradation lasts for log_storage_warning_tolerance_time seconds, a log disk failure is considered.
It is recommended to set this to no more than 10.
sql_plan_management_mode New A new tenant-level configuration item to control whether to enable SPM (SQL Plan Management) functionality. The default is Disable, indicating that SPM is disabled.
This configuration item and the system variable optimizer_use_sql_plan_baselines both control the enabling of SPM functionality. If either is enabled, SPM is activated. It is recommended to use this configuration item to enable SPM to avoid the need to restart business applications or ODP for SPM to take effect.

System variable changes

System variable
Change type
Description
optimizer_features_enable Default value adjustment
  • For V4.2.1 BP6 and earlier V4.2.1 BP versions, the default value is empty, indicating the use of the optimizer capabilities from V4.2.1.0.
  • Starting from V4.2.1 BP7, the default value is changed to 4.2.1.7, indicating that new clusters can use the new optimizer capabilities, while clusters upgraded from V4.2.1 BP6 or earlier continue to use the optimizer version specified before the upgrade.

View changes

View
Change type
Description
CDB/DBA_OB_RESTORE_PROGRESS Added columns Added RECOVER_SCN, RECOVER_SCN_DISPLAY, RECOVER_PROGRESS, TABLET_COUNT, FINISH_TABLET_COUNT, and RESTORE_PROGRESS columns to display physical restore progress.
[G]V$OB_QUERY_RESPONSE_TIME_HISTOGRAM New New views for each tenant to display SQL response time histogram information for different categories.
ALL/DBA/USER_TAB_COLUMNS View content change Information about index tables is no longer displayed in the new version.
CDB/ALL/DBA/USER_TAB_COLS View content change Information about index tables is no longer displayed in the new version.
CDB/ALL/DBA/USER_TAB_COLS_V$ View content change Information about index tables is no longer displayed in the new version.
CDB_TAB_COL_STATISTICS View content change Information about index tables is no longer displayed in the new version.

Bug fixes

  • Fixed an issue where after the first statement of a transaction is locked, the transaction automatically ends.

  • Fixes the issue where a concurrent Truncate Table can be stalled.

  • Fixed an issue where query plans were not being cached properly under specific scenarios.

  • Add a check for slog disk space at reboot.

  • Fix the GIS column query issue where incorrect query range extraction could lead to incomplete data indexing.

  • Fixed the issue where password errors may occur when logging in to a secondary tenant.

  • Fix PL compilation to prevent CPU overutilization.

  • Fix the issue where the dbms_scheduler next date can be incorrectly overwritten in some cases.

  • Fixed the issue where illegal values can be stored for enum types in concurrent scenarios.

  • Fixed an issue where, after the tenant is deleted, the tenant's remaining tasks in the __all_rootservice_job table remain unresolved.

  • Fix for open cursor retry that leads to PlTemp memory inflation.

  • Fixed the issue where multiple rows may be queried temporarily in specific squeeze scenarios.

  • Fixed an issue that may cause a core dump during certain foreign key scenarios.

  • Fixes issues where the optimizer selects the wrong index because the statistics are outdated.

  • Fix a problem where a full table scan may occur if GIS spatial indexes cannot be selected.

  • Fixed the issue where in some scenarios, a node in the replication table cannot read the latest data.

  • Fixed the issue where the best plan was not selected in some IN list scenarios when the execution plan changed.

  • Fixed the issue where an error 4103 is returned when creating an index on a column with a DEFAULT value specified as a particular value.

  • Fixed an issue where a large transaction lock conflict check caused SQL to retry indefinitely.

  • Fixed issue where the result may not be accurate when two views are joined using a FULL JOIN.

  • Fixed the issue where the cursor opened in dynamic SQL within a stored procedure was not being recorded in the SQL audit.

  • Fix the data disk explosion caused by mixed histogram collection.

  • Fixed a problem where view query returned more than one row in some cases.

  • Fixed the issue where an index containing special characters could not bind to the outline.

  • Fixed an issue where during scale-down scenarios, the error in generating the plan would cause the estimated rows to be incorrect and the plan to deviate.

  • Fixes SPM that takes too long to evolve in some scenarios.

  • Fix a potential issue where traffic may experience a significant drop during a transfer.

  • Fix the issue where index table information is added to standard views such as user_tab_columns.

  • Fixed an issue where Show Create Table was displaying replicated table information in index definitions.

  • Fix the issue that the use of obloader to bypass import may cause core dump.

  • Fixed a problem where OMS incorrectly orders a Delete operation due to exceptions during the check_and_upsert operation of OBKV in CDC.

  • Fixed the issue with hidden_column marker being incorrectly set when dropping a column quickly.

  • Fixed the issue where asynchronous queries in OBKV cannot be terminated prematurely.

  • Fixed the issue where creating an index results in a very large temporary file, causing error 4013.

  • Fix the Core Dump issue caused by recursive stack overflow due to excessive number of connections.

  • Fixes the issue of data migration planning going off track.

  • Fixed the issue where backup processes consume a large amount of memory by occupying the MemTable.

  • Fixed a problem where concurrent DDL operations could trigger a core dump during a bypass import.

  • Fixed an issue where data in an XML column would be lost when a non-XML column was offline deleted after data was written to a table with mixed XML columns in Oracle-compatible mode.

  • Fixed the issue where migration fails when the archiving state is inconsistent due to the archiving media being unreadable for a prolonged period in the optional archiving mode.

  • Fixes the issue where QPS or TPS might decrease during migration and replication.

  • Fixes the issue where data backup fails due to severe lag on the standby database.

  • Fixed a problem where, after adding multiple columns to the end of a table using DDL (>=2 columns), the select count(specified column) from table [where]; query returned more results than expected, especially when there was backup data.

  • In upgrade from versions earlier than V4.2.1 BP5 to V4.2.1 BP5 or later, migration, copying, and rebuilding may fail.

  • Resolved an issue where, when using DBLink to write BINARY data from a locally stored VARCHAR2 column to a VARCHAR2 column in a remote table, the data was not written as expected due to either character set conversion or truncation of '\0'.

  • Fixed an issue where during backup, a tablet reference could be held, preventing it from releasing and leading to high memory usage in the tenant.

V4.2.1 BP6 Hotfix1

Version information

  • Release date: May 27, 2024
  • Version: V4.2.1 BP6 Hotfix1
  • RPM version: oceanbase-4.2.1.6-106010032024052709

Key bug fixes

Fixed the issue where a stack overflow may cause the OBServer to core dump.

V4.2.1 BP6

Version information

  • Release date: April 25, 2024
  • Version: V4.2.1 BP6
  • RPM version: oceanbase-4.2.1.6-106000022024042414

Upgrade instructions

  • This version supports upgrades from V4.1.0 BP1-BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1-BP5.
  • During the mixed operation of V4.2.1 GA and hotfix clusters upgrading to V4.2.1 BP6, job creation is not allowed.

Performance optimization

Optimize the performance of show table status: In older versions, the show table status from ... like ... statement had poor performance because it did not utilize the table_name index. The new version significantly improves query performance for scenarios with single-table filtering conditions.

Bug fixes

  • Fixed the issue where, after executing SET collation_connection = 'utf8mb4_unicode_ci', string column comparison and join operations in the information_schema database would trigger the Illegal mix of collations error, making it incompatible with native MySQL.
  • Fixed the issue where, in Oracle-compatible mode, columns that were quickly deleted would still be displayed in the all_col_comments view.
  • Fixed the issue where reading and writing LOB data during mixed operation upgrades could trigger a core dump.
  • Fixed the issue where OBKV asynchronous queries could cause memory leaks.

V4.2.1 BP5

Version information

  • Release date: April 19, 2024
  • Version number: V4.2.1 BP5
  • RPM version number: oceanbase-4.2.1.5-105000072024041817

Upgrade instructions

  • This version supports upgrading from V4.1.0 BP1-BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1-BP4.
  • During the mixed running of V4.2.1 GA and hotfix clusters upgraded to V4.2.1 BP5, job creation is not allowed.

Feature enhancements

  • Optimized statistics collection

    This version implements a new statistics collection framework, splits the statistics collection process based on system resources, optimizes the collection process for TopK histograms, and collects statistics incrementally by default. It also optimizes the management of historical statistics. Additionally, based on the new collection framework, the following scenarios are optimized:

    • Supports setting the maximum and minimum values for column-level statistics, facilitating emergency responses in online environments.
    • Fixes a bug where locked statistics (tables without collected statistics) are incorrectly assumed to have statistics.
    • Supports setting the block sampling rate for statistics, allowing users to specify the sampling rate for large wide tables to improve collection efficiency.
    • Optimizes the default collection strategy for automatic collection. By default, for large wide tables with more than 100 million rows, block sampling is used with a parallelism of 1, targeting 100 million sampled rows and limiting the maximum collection time to 1 hour.
    • Optimizes dynamic sampling in large wide table scenarios, adaptively choosing row or block sampling to reduce sampling time overhead.
  • Optimized DBMS_SCHEDULER routing

    This version supports setting job routing strategies using DBMS_SCHEDULER.SET_ATTRIBUTE. By configuring jobs to route to the leader node, RPC overhead is reduced, and execution performance is improved. Specifically:

    • If the instance_id attribute is not specified, jobs default to executing in the primary zone.
    • If instance_id is specified for a zone, jobs default to executing in the corresponding zone.
    • If instance_id is set to RANDOM, jobs are randomly routed.
  • Support for DBMS_SCHEDULER.STOP_JOB

    A new DBMS_SCHEDULER.STOP_JOB subprogram is added to terminate running jobs, facilitating job management in case of exceptions.

  • Optimized adaptive compaction for buffer tables

    When users frequently insert data into a table while performing batch deletions or handle a large number of concurrent update operations, they may encounter a phenomenon where the number of data rows in the table is not large, but query and update performance significantly degrades. This phenomenon is known as the Buffer Table (or Queuing Table) effect in OceanBase Database.

    Buffer tables are a common issue in LSM-Tree architecture databases. In LSM-Tree architecture, deletion operations are logically marked for deletion rather than physically deleted before compaction. When there are a large number of marked deleted data in incremental data, the physical row count will be much higher than the logical row count, leading to severe read amplification and affecting the optimizer's execution plan generation.

    OceanBase Database V4.1.0 automatically identifies partitions that undergo frequent changes and performs adaptive compaction on them. However, it lacks manual control options.

    To address the performance degradation caused by buffer tables more flexibly, this version further optimizes the adaptive compaction feature for buffer tables. It provides five compaction strategies, allowing users to set different table_mode values for each table based on business scenarios to mitigate read amplification caused by buffer tables, thereby improving QPS and other performance metrics during long-term system operation.

  • Optimized PL recompilation logic

    After stored procedures are compiled into shared libraries, they can be used by multiple threads. However, if the objects they depend on change, the shared library may become invalid and need to be recompiled.

    This version refines and details scenarios for recompilation, optimizing logic in areas such as temporary table matching, static SQL dependency object information collection, and table DDL changes to reduce recompilation scenarios caused by PL CACHE cache object invalidation.

  • Optimized processlist statistics time

    The TIME and TOTAL_TIME statistics in views information_schema.PROCESSLIST and GV$OB_PROCESSLIST are increased in precision, and a new TOTAL_CPU_TIME statistic is added to indicate CPU usage time.

  • Support for Clog storage compression

    As more AP and HBase scenarios are replaced, high write scenarios may cause Clog log disk throughput to reach its limit, requiring expansion to solve resource issues. However, if other types of resources in the cluster have not reached their bottlenecks, overall expansion may increase business costs and lead to resource waste.

    To address this issue, this version introduces Clog log storage compression. By compressing transaction commit logs, it indirectly improves log disk throughput and increases the total amount of transaction logs that can be stored on the log disk.

  • Optimized OUTROW LOB read and write performance

    This version supports storing OUTROW LOBs in microblocks, reducing I/O and improving OUTROW LOB read and write performance.

  • Optimized NETWORK_WAIT_TIME statistics

    A new NETWORK_WAIT_TIME statistic is added to SQL AUDIT to display wait event durations for network-related events, such as synchronous RPCs and DAS asynchronous RPC locks. When troubleshooting slow SQL issues with remote execution, this statistic can be used to identify network overhead and assist in diagnosis.

Product behavior changes

  • Enabled batch NLJ optimization by default

    The batch nested-loop join (NLJ) optimization feature had issues with correctness and stability in earlier versions, so it was disabled by default in V4.2.1 BP2 Hotfix1. The disablement caused performance regression in some scenarios. After thorough testing and addressing coredump issues, it was decided to enable the optimization by default in V4.2.1 BP5.

    Starting from V4.2.1 BP5, new tenants will have the optimization switch (_NLJ_BATCHING_ENABLED) enabled by default. Existing tenants from before the upgrade will retain their original settings and need to be manually enabled.

  • Removed binding between Slog directory and data disk

    The new version allows configuring the disk used for Slog, which can be shared with Clog on an SSD, without requiring it to be bound to the data disk. This avoids issues with data disk fullness or poor performance affecting Slog writes.

  • Parameter settings in Oracle-compatible mode

    In versions before V4.2.1 BP5, when using the ALTER SYSTEM SET command to set parameters with values of True/False, single quotes must be added around True/False to avoid errors. In V4.2.1 BP5 and later, whether or not to add quotes around True/False does not result in errors.

  • Behavior change for using the DECODE function in PL

    Native Oracle does not support using the DECODE function in PL/SQL statement blocks; it is only supported in SQL statements.

    In previous versions of OceanBase Database, using the DECODE function in PL assignment and call statements did not result in errors. Starting from V4.2.1 BP5, this behavior is changed to be compatible with Oracle, resulting in errors. For special needs, assignment statements like pl_var := DECODE(...) can be rewritten as SELECT DECODE(...) INTO pl_var FROM DUAL to handle them.

Configuration item changes

Configuration item
Change type
Description
log_storage_compress_all New A new tenant-level configuration item to control whether to enable Clog storage compression. Default is False, indicating Clog storage compression is not enabled.
log_storage_compress_func New A new tenant-level configuration item to control the compression algorithm for Clog storage compression, which can be set to lz4_1.0, zstd_1.0, or zstd_1.3.8. Default is lz4_1.0.

View changes

Parameter
Change type
Description
[G]V$OB_SESSION New Added to each tenant to record session information.
information_schema.events New Compatible with the table structure in MySQL-compatible mode.

Note

This version does not support the Event feature.

[G]V$OB_SQL_AUDIT Modified Added the NETWORK_WAIT_TIME field to display the wait time of network category wait events.

Bug fixes

  • Fixed the issue where a syntax error occurred when a SET statement in MySQL-compatible mode contained both names and other ordinary variables.
  • Fixed the issue where an error -4016 occurred when inserting data after quickly deleting the XMLType column.
  • Fixed the issue where a recursive stack overflow occurred in special scenarios of writing microblocks.
  • Fixed the issue where a memory leak occurred in the CommonArray module during direct load.
  • Fixed the issue where a memory leak occurred in the PlJit module in MySQL-compatible mode under abnormal scenarios.
  • Fixed the issue where an error occurred when executing a stored procedure on the standby database.
  • Fixed the issue where a Core dump occurred when using the int64_max value with the limit offset in the .NET driver.
  • Fixed the issue where an error -4016 occurred when displaying the distributed execution plan trace after enabling full-link tracing.
  • Fixed the issue where OR expansion rewriting was disabled when DML operations involved global index tables.
  • Fixed the issue where a large amount of memory was consumed during index creation in parallel execution in specific scenarios.
  • Fixed the issue where a Core dump occurred during parallel execution when memory allocation failed.
  • Fixed the issue where a large amount of memory was consumed during Prefix Sort when PX Rescan processed a large amount of data.
  • Fixed the issue where an ObTabletAutoinc memory leak occurred due to the absence of an eviction logic in tablet autoinc cache.
  • Fixed the issue where an error -4344 occurred during backup in specific scenarios on the standby database.
  • Fixed the issue where a Core dump occurred when querying the tablet_id field after deleting the table structure of a non-partitioned table during traffic flow.
  • Fixed the issue where a syntax error occurred when using mixed backticks.
  • Fixed the issue where the ALTER TABLE statement was blocked when the partitioning key column was a generated column, and the column type of the partitioning key column was inconsistent with the column type of the generated column.
  • Fixed the issue where the final result was incorrect when executing an INSERT operation using dynamic SQL in an Oracle-compatible tenant.
  • Fixed the issue where a Core dump occurred when the right table of an outer join was a temporary table.
  • Fixed the issue where the OBServer hung when the obstack automatically increased in scenarios of queue backlog.
  • Fixed the issue where the standby cluster failed to synchronize the creation of the standby tenant when the primary cluster tenant was set to differentiate table names by case.
  • Fixed the issue where the optimizer selected an incorrect index due to inaccurate index estimation behavior when the storage layer estimated rows incorrectly.
  • Fixed the issue where the time consumed to create an existing table immediately after restarting the entire cluster using the CREATE TABLE IF NOT EXISTS statement reached as high as 30 seconds.
  • Fixed the issue where an error occurred when attempting to create a connection after the number of connections created in the same tenant reached 2147483647.
  • Optimized the performance hotspot in ARM environments.
  • Fixed the issue where a Coredump occurred during stored procedure debugging.
  • Fixed the issue where performance degraded after enabling SPM.
  • Fixed the issue where a plan cache miss occurred when using synonyms across users.
  • Fixed the issue where a queue backlog occurred in the system tenant when the slog disk was full.
  • Fixed the issue where a Core dump occurred during concurrent stored procedure debugging when memory was insufficient.
  • Fixed the issue where an extra record was displayed in views such as information_schema.TABLES and ALL_TABLES when executing a DDL operation to convert a non-partitioned table to a partitioned table.
  • Fixed the issue where an error occurred when querying a table with a Chinese alias using DBLink.

V4.2.1 BP4 Hotfix3

Version information

  • Release date: March 29, 2024
  • Version: V4.2.1 BP4 Hotfix3
  • RPM version: oceanbase-4.2.1.4-104030022024032913

Bug fixes

  • Fixed the issue where the number of connections created by the same tenant reaches 2147483647, and the connection cannot be established.
  • Fixed the issue where the time to create an existing table by executing the create table if not exists statement immediately after restarting the entire cluster reaches 30s.
  • Fixed the CPU hot spot issue in the CPU of the Phytium server under the ARM architecture.
  • Fixed the issue where the CPU performance of the Phytium server under the ARM architecture is poor for large queries.
  • Fixed the issue where the statistics collection DML data, and the read lock forms a hot spot.

V4.2.1 BP4 Hotfix2

Version information

  • Release date: March 22, 2024
  • Version: V4.2.1 BP4 Hotfix2
  • RPM version: oceanbase-4.2.1.4-104020022024031915

Bug fixes

  • Fixed the issue where OBKV indexes cannot contain special columns (such as auto-increment columns, generated columns, and current_timestamp columns).
  • Fixed the issue where a query error -4016 occurs when multi min/max rewriting optimization is applied to a Semi Join.
  • Fixed the issue where transfer incorrectly identifies active transactions due to slow table lock callbacks, preventing transfer from completing and causing scaling down to fail.
  • Fixed the issue where an error -4016 occurs when inserting data after quickly deleting the XMLType column.
  • Fixed the issue where a core dump may occur when OBCDC synchronizes the CLOB generated by an UPDATE statement that simultaneously updates the Rowkey and Outrow LOB columns.
  • Fixed the memory leak issue caused by OBCDC using the DRCMSG message library. In version 4.2.1.4, OBCDC upgraded the DRCMSG version (devdeps-drcmsg-1.0-262024012415), which caused a memory leak during serialization. The new version upgrades DRCMSG to the fixed version (devdeps-drcmsg-1.0-292024030421).

V4.2.1 BP4 Hotfix1

Version information

  • Release date: March 8, 2024
  • Version: V4.2.1 BP4 Hotfix1
  • RPM version: oceanbase-4.2.1.4-104010012024030714

Bug fixes

  • Fixed the issue where, after enabling the full-link diagnostic feature, an error -4016 is returned when executing the show trace command for complex SQL statements using a distributed execution plan.
  • Fixed the issue where the outrow Lob meta data is not cached, leading to disk hotspots and increased disk latency.
  • Fixed the issue where a syntax error is reported when the projection column in a select statement is enclosed in backticks.

V4.2.1 BP4

Version information

  • Release date: March 1, 2024
  • Version number: V4.2.1 BP4
  • RPM version number: oceanbase-4.2.1.4-104000062024022914

Upgrade notes

  • This version supports upgrades from V4.1.0 BP1-BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1-BP3.
  • DBMS_SCHEDULER has new restrictions. During the mixed operation of V4.2.1 GA and hotfix clusters upgraded to V4.2.1 BP4, job creation is not allowed.

Feature enhancements

  • Fast column drop is supported in Oracle-compatible mode

    In V4.2.1 BP4, column drop operations are changed from true deletion to marking deletion, significantly improving column drop performance. After a column is dropped, it is stored as a hidden column. If frequent column drop operations result in 128 hidden columns, the add and drop operations on the table will be blocked. You can use the ALTER TABLE ... FORCE command to clean up hidden columns. During the cleanup process, the table is locked and data is reorganized, which blocks other transactions.

  • OBKV batch put supports overwrite writes

    In the multi-active architecture of OBKV, incremental subscriptions are synchronized to other regions. During synchronization, it is not guaranteed that old data will be synchronized before new data. To ensure correctness, timestamps are checked during synchronization. If the timestamp is larger, the data is updated; otherwise, no operation is performed. This version of OBKV introduces the checkAndInsUp capability, which executes the insertUp operation only under certain conditions. Additionally, this version supports batch execution of checkAndInsUp to improve synchronization performance.

  • Manual transfer partition feature now supports cancellation

    The Cancel Transfer Partition feature enhances the manual transfer partition functionality. After initiating a manual transfer partition task, you can attempt to cancel the task before it is completed. This feature provides the following capabilities:

    • You can cancel tasks that have not started the TRANSFER process.
    • You can cancel all tasks under the tenant that have not started the TRANSFER process.
    • You can cancel the currently running Balance Job.
  • OBCDC now supports blacklists and whitelists

    Earlier versions of OBCDC supported log synchronization at the tenant level. This version introduces synchronization at the database and table levels. You can configure blacklists and whitelists using simple regular expressions to meet the needs of data consumption scenarios where only specific tables need to be synchronized.

  • Support for backing up full snapshot table names

    When OCP and downstream vendors adapt table-level recovery, they need to display the tables that can be recovered. This version adds the persistence of corresponding snapshot table names in the backup set and provides the capability to parse backup table names using ob_admin.

  • Optimization for multi-min/max rewrite

    In scalar group by queries, if the aggregate functions are only min and max and the columns have indexes, the query can be rewritten to order by xxx limit 1. This utilizes index order elimination and pushes the limit 1 down to the table scan, reducing data reads and sorting. For scenarios with multiple min/max functions, earlier versions used full table scans. This version optimizes by rewriting multiple min/max functions into multiple subqueries, each using indexes to directly retrieve the maximum or minimum value, avoiding full table scans and sorting to improve query performance.

  • DBLink now supports short connections

    When accessing a remote database via DBLink, the current version uses a single session with a long connection. This version introduces an option for short connections, which can be used to minimize the impact in case of unexpected network issues. The option is controlled by _enable_dblink_reuse_connection, which defaults to reusing connections. Setting it to False disables connection reuse.

  • ob_admin now supports modifying the log disk space of the SYS tenant

    In 4.x versions, tenant-level log disks are supported, with log disk sizes persisted in the internal tables of the SYS tenant. If the majority of the SYS tenant's log disk replicas stop writing, all internal tables under the SYS tenant cannot write. Therefore, online modifications of the SYS tenant's specifications cannot complete maintenance operations when the log disk is full. This version provides the capability to expand the SYS tenant's log disk using the ob_admin tool online, which only affects memory and will roll back upon reboot.

Product behavior changes

  • Strings containing spaces and newlines are no longer trimmed in Oracle-compatible mode

    Earlier versions mistakenly assumed that the behavior of removing leading spaces before newlines in sqlplus clients was part of the Oracle kernel. As a result, in versions up to V3.2.3 BP10, V3.2.4 BP6, V3.2.4 BP7, V4.1.0, and V4.2.1 BP3 Hotfix3, OBServer trimmed strings containing spaces and newlines. Starting from V3.2.3 BP11, V3.2.4 BP8, and V4.2.1 BP3 Hotfix4, this behavior was reverted to the original, where OBServer no longer trims the original strings.

  • System behavior when the history statistics retention interval is set to 0 (i.e., STATS_RETENTION is set to 0)

    Earlier versions were compatible with Oracle, where setting the statistics retention interval to 0 would clear all historical statistics. However, when there are too many historical statistics, synchronization operations might block frontend user modifications. Starting from this version, when the statistics retention interval is set to 0, the system defaults to synchronously deleting one batch (up to 10,000 rows) of historical statistics. If there are still un-deleted historical statistics, they will be asynchronously cleaned up.

  • Adjustments to table-level recovery commands

    The TENANT keyword in the ATLER SYSTEM RECOVER TABLE tablename TO TENANT tenantname syntax is now optional, supporting both ATLER SYSTEM RECOVER TABLE tablename TO tenantname syntax.

Configuration changes

Configuration
Change type
Description
max_syslog_file_count Semantic change In earlier versions, the max_syslog_file_count configuration item applied separately to each type of system log. For example, if this configuration item was set to 1000, it allowed up to 1000 files of each type (such as observer.log, trace.log, rootservice.log, etc.). Starting from this version, max_syslog_file_count uniformly controls the total number of all types of system logs. Logs are discarded on a first-in, first-out basis.
memstore_limit_percentage Default value change The default value has been changed from 50 to 0, indicating the use of an adaptive strategy. For tenants with 8GB or less of memory (real memory), the value is set to 40%; for tenants with more than 8GB of memory, the value is set to 50%.

View changes

View
Change type
Description
information_schema.statistics Column semantic change The COMMENT field has been changed from an empty string to a field that displays the index status information.

Bug fixes

  • Fixed an issue where, during a nested loop join, if the query condition includes an equi-join (e.g., t1.c1 = t2.c1) and one of the columns involved in the equi-join is also in an IN list (e.g., t1.c1 in (1,2,3,4,5)), and there are other join conditions, the optimizer may choose an index that does not include the IN condition column when multiple indexes are available on the right table.
  • Fixed an issue where, during an upgrade, an error UnboundLocalError: local variable 'e' referenced before assignment occurred in the Execute upgrade post script phase if no pre-check was performed for tenant lock behavior before the upgrade.
  • Fixed an issue where, when both sides of a union all operation contain the unix_timestamp expression, the scale information is lost due to implicit conversion, resulting in incorrect calculation results.
  • Fixed an issue where, in PL, if the returned expression name is too long and no alias is specified, an error identifier is too long occurs during execution.
  • Fixed an issue where, when specifying a decimal sampling frequency using CALL DBMS_MONITOR.OB_TENANT_TRACE_ENABLE(1, 0.01, 'SAMPLE_AND_SLOW_QUERY') to enable full-link diagnostics, an error occurs during execution.
  • Fixed an issue where, due to the implementation of a trim operation similar to that of the sqlplus client, which trims leading spaces from strings, the system is incompatible with native Oracle. This version no longer processes leading spaces in strings.
  • Fixed an issue where, after transferring a cold partition, an empty SSTable is generated, leading to delayed minor SSTable compactions and degraded query performance.
  • Fixed an issue where, in MySQL-compatible mode, a CTE rewrite error causes an internal error with error code -4016 during SQL execution.
  • Fixed an issue where, when the PS protocol is enabled, SQL remote execution plan generation fails.
  • Fixed an issue where, when a table has multiple function indexes with the same column but different prefix lengths, queries involving non-first function indexes result in suboptimal performance.
  • Fixed an issue where, when ref_cursor is used as an output parameter, it may cause a node core dump.
  • Fixed an issue where, in a multi-table join with group by, order by, and limit clauses, if both the driving table and join conditions can use indexes, but the indexed columns are only prefixes of the group by columns, performance is suboptimal.
  • Fixed an issue where, after a statistics collection task completes, the next execution time is calculated incorrectly.
  • Fixed an issue where, in Oracle-compatible mode, after altering a noorder sequence with alter sequence ... nocache, the cache is cleared, leading to incompatibility with native Oracle.
  • Fixed an issue where, in MySQL-compatible mode, after setting a user variable in PL, changes in variable type cause prolonged PL execution.
  • Fixed an issue where, in Oracle-compatible mode, when a cursor is specified with for update skip locked, non-streaming cursors lead to behavior inconsistent with native Oracle.
  • Fixed an issue where, due to failed access to some OSS SDK interfaces, an OBServer crash occurs.
  • Fixed an issue where unexpected references in transaction descriptions may cause a core dump.
  • Fixed an issue where, in MySQL-compatible mode, when the PS protocol resolver parses the same column in select items and join conditions as two different column items, subsequent rewrites fail, leading to an SQL execution error with code -4016.
  • Fixed an issue where, when a large number of SQL statements are present in an anonymous block, the LLVM instructions during static SQL codegen cause a stack overflow. Specifically, during LLVM execution, strings and PL variables used in SQL are allocated memory from the stack, which is not reclaimed before the stored procedure execution completes, leading to stack memory accumulation and overflow.
  • Fixed an issue where, for non-streaming cursors (ps cursors or those internally using non-streaming paths in PL), if a commit statement is executed between open and fetch operations, an ORA-01002 error occurs during fetch.
  • Fixed an issue where, in MySQL-compatible mode, when a user with the same name as the root user but a different host is created, an error -4016 occurs during automatic statistics collection.
  • Fixed an issue where, during direct load, importing LOB data exceeding 2MB is not supported.
  • Fixed an issue where, when column deletion is performed in parallel, it may cause a node core dump.
  • Fixed an issue where package recompilation leads to excessively high CPU usage.
  • Fixed an issue where the SeArray module in a 500-tenant environment experiences memory leaks.
  • Fixed an issue where, during pivot operations, if the inner CTE is not resolved, an ORA-00942 error occurs during SQL execution.
  • Fixed an issue where, when a user is bound to a custom resource_manager_group, if the distributed execution threads of SQL on both nodes are fully occupied, it may lead to a deadlock state where threads wait for each other, causing SQL execution to stall.
  • Fixed an issue where, when multiple configuration items are modified in a single alter system set statement, and the loop processing on the RS has not completed, another server may trigger a configuration refresh via a heartbeat, resulting in only partial configuration updates and the failure of the runUpgradePost upgrade script.
  • Fixed an issue where, during a nested loop join, if one predicate undergoes implicit type conversion, the join conditions cannot both use the primary key, leading to suboptimal query performance.
  • Fixed an issue where, in Oracle-compatible mode, when a view synonym is used in an anonymous block, an ORA-00904 error occurs during query execution.
  • Fixed an issue where, after a node restart, if a virtual table query that may scan all tablets is encountered, prolonged thread occupation leads to queue backlog and cluster unavailability during upgrades.
  • Fixed an issue where, when the number of OR predicate branches exceeds 10, and the OR expansion rewrite is not triggered as per the rules, SQL execution performance is suboptimal.
  • Fixed an issue where, in Oracle-compatible mode, when an exception is thrown in a stored procedure, the printed error information is inaccurate.
  • Fixed an issue where, in MySQL-compatible mode, when using the PS protocol or PL to execute an update SQL statement that updates the same column, an error -4200 occurs during execution.
  • Fixed an issue where, in the PS protocol, if some aliases in the SQL statement are specified using single quotes, they are mistakenly identified as parameter constants, leading to abnormal query results.
  • Fixed an issue where, for large tenants with many tables and frequent table changes, the number of statistics collection tasks is high, leading to a large volume of historical statistics-related internal table data, slow cleanup task execution, and high CPU usage.
  • Fixed an issue where, in some scenarios, shared expression optimization is triggered, leading to missed plan cache hits and prolonged hard parsing.
  • Fixed an issue where, in MySQL-compatible mode, when querying a field name starting with a number without using backticks, an error occurs.
  • Fixed an issue where, when the binlog image is configured as full for HBase tables, the put logic cannot be used, leading to poor performance.
  • Fixed an issue where, during an upgrade check, if enable_rebalance is not set to true, the upgrade fails.
  • Fixed an issue where, when an SQL query involves a large number of OR conditions, an error -4019 size overflow occurs during execution.
  • Fixed an issue where, when the dba/all/user_tab_cols view is used in a query and the ALL_VIRTUAL_CORE_COLUMN_TABLE appears on the right side of a nested loop join in the view's plan, query performance is suboptimal.
  • Fixed an issue where, after canceling an offline DDL operation, OBCDC is blocked at a position, leading to a link interruption.
  • Fixed an issue where, in a TTL table, if a query with limit and offset clauses does not ignore expired data, the results do not match expectations.

V4.2.1 BP3 Hotfix5

Version information

  • Release date: January 26, 2024
  • Version: V4.2.1 BP3 Hotfix5
  • RPM version: oceanbase-4.2.1.3-103050012024012511

Bug fixes

  • Fixed the issue where, in Oracle-compatible mode, after adding a NOT NULL LOB column to a table without LOB columns, if a Truncate or other operation affecting LOB column data is performed, an SQL error -4016, "fail to get index or lob table schema", occurs. This issue was introduced in V4.2.1 BP3.
  • Fixed the issue where, for non-streaming cursors (such as ps cursors or PL/SQL cursors that do not use the streaming path), if a commit statement is executed between the open and fetch operations, an ORA-01002 error occurs during fetch.

V4.2.1 BP3 Hotfix4

Version information

  • Release date: January 18, 2024
  • Version: V4.2.1 BP3 Hotfix4
  • RPM version: oceanbase-4.2.1.3-103040012024011620

Bug fixes

Fixed the issue where the kernel's behavior of removing leading spaces before string line breaks, similar to the SQLPlus client, caused incompatibility with native Oracle. Starting from this version, leading spaces before string line breaks are no longer processed.

V4.2.1 BP3 Hotfix3

Version information

  • Release date: January 15, 2024
  • Version number: V4.2.1 BP3 Hotfix3
  • RPM version number: oceanbase-4.2.1.3-103030022024011313

Bug fixes

  • Fixed the issue where the next execution time of a statistics collection task was calculated incorrectly after the task was completed.
  • Fixed the issue where an empty SSTable was generated after a cold partition was transferred, causing minor SSTables to be unable to be merged in a timely manner and leading to a decline in query performance.
  • Fixed the issue where, during concurrent execution of backup and medium compaction, if the backup dump and backup baseline were located on different OBServer nodes, and the snapshot version of the tablet backed up during the backup dump was greater than the snapshot version of the tablet backed up during the backup baseline, the standby tenant's compaction would be stuck.
  • Fixed the issue where OBServer nodes would crash due to failed access to some interfaces of the OSS SDK.
  • Fixed the issue where, in scenarios involving multi-table joins, if a query simultaneously used the group by, order by, and limit clauses, and the driving table and its join conditions could leverage indexes, but the indexed columns were only prefixes of the group by columns, leading to poor query performance.
  • Fixed the issue where using ref_cursor as an output parameter could cause node Core problems.

V4.2.1 BP3 Hotfix2

Version information

  • Release date: January 11, 2024
  • Version: V4.2.1 BP3 Hotfix2
  • RPM version: oceanbase-4.2.1.3-103020012024011011

Bug fixes

  • Fixed the issue where the execution plan for remote SQL statements fails to be generated when the PS protocol is enabled.
  • Fixed the issue where an error -4007 is returned when using the insertOrUpdate interface of the OBKV client to write data to a table with a primary key that is an auto-increment column and a secondary index.
  • Fixed the issue where the TTL task of OBKV fails to execute when the table contains a LONGTEXT column.

V4.2.1 BP3 Hotfix1

Version information

  • Release date: January 5, 2024
  • Version number: V4.2.1 BP3 Hotfix1
  • RPM version number: oceanbase-4.2.1.3-103010012024010418

Bug fixes

Fixed the issue where an error Incorrect arguments to control info was reported when the DBMS_MONITOR package was called with decimal data.

V4.2.1 BP3

Version information

  • Release date: December 29, 2023
  • Version: V4.2.1 BP3
  • RPM version: oceanbase-4.2.1.3-103000052023122809

Upgrade notes

  • This version supports upgrades from V4.1.0 BP1 to BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, V4.2.1 BP1, and V4.2.1 BP2.
  • During the mixed upgrade process from V4.2.1 GA or Hotfix to V4.2.1 BP3, the DBMS_SCHEDULER system package does not allow the creation of jobs.

Feature enhancements

  • Added link compression from OBServer to ODP

    In actual business scenarios, applications and database services may be deployed across cities with limited bandwidth, but there is still a need for large-scale data read/write operations. To reduce bandwidth consumption during large-scale data transmission, this version introduces link compression from OBServer to ODP. This feature requires ODP 4.2.3 or later.

  • Optimized performance of standby databases

    The new version optimizes RPC and network frameworks, reducing log transmission time between primary and standby databases. It also optimizes the controlled log pulling process for standby tenants, decreasing the frequency of controlled log pulling and improving log synchronization performance between primary and standby databases.

  • Added global index support for OBKV

    Starting from V4.1.0, OBKV supports local indexes. This version adds support for global indexes in OBKV. DML operations such as insert, update, delete, insert_or_update, replace, and increment/append are applicable to global index tables. It also supports specifying global indexes for queries and asynchronous queries.

  • Optimized performance of adding NOT NULL columns to empty tables in Oracle-compatible mode

    In V4.2.0, adding a NOT NULL column to an empty table in Oracle-compatible mode takes longer than adding a nullable column, and the time difference increases with more partitions. This version changes the process of adding a NOT NULL column to an empty table to an online process, significantly improving DDL performance in this scenario.

  • Allowed to increase the maximum number of partitions in MySQL-compatible mode

    In MySQL-compatible mode, the maximum number of partitions per table is limited to 8192. However, some business scenarios require more than 10,000 partitions. This version introduces the max_partition_num configuration item to control the maximum number of partitions per table in MySQL-compatible mode. This allows for a higher limit in scenarios with a large number of partitions.

  • Added statistics replication feature

    The new version introduces the DBMS_STATS.COPY_TABLE_STATS procedure, which can be used to copy statistics from a source partition to a target partition, addressing the need for quickly supplementing statistics in new partitions.

  • Optimized SQL throttling when set to 0

    This version optimizes the resource consumption of hard parsing when SQL throttling is set to 0, allowing SQL throttling to 0 scenarios to hit the Plan Cache.

  • Added backup progress display feature

    The CDB_OB_BACKUP_TASKS view now includes the DATA_PROGRESS field, which displays backup progress at the macroblock level.

  • MySQL 8.0 syntax compatibility

    This version supports specifying row and field aliases in the insert into ... on duplicate key update ... syntax.

Product behavior changes

  • OceanBase Database now supports all collection functions. However, in complex nested type scenarios, there are some correctness issues with the calculation of collection functions. This version disables the use of collection functions (such as =, SET, IN, IS [NOT] A SET, IS [NOT] MEMBER [OF], [NOT] SUBMULTISET [OF], and MULTISET) with complex types.
  • Starting from V4.2.1 BP2 Hotfix1, new clusters will have NLJ (NESTED-LOOP JOIN) Batch Rescan and SPF (SUBPLAN FILTER) Batch Rescan optimizations disabled by default. Clusters upgraded from older versions will retain these optimizations enabled by default. If you encounter issues related to Batch Rescan, you can temporarily disable the feature using the set global _nlj_batching_enabled = false command.
  • For OBServer V4.2.1 and later, when using the DBLink feature to access a remote Oracle database, OCI-12.2 must be installed and configured on all OBServer nodes in the cluster. Additionally, for clusters upgraded from OBServer versions earlier than V4.2.1 to V4.2.1 or later, the previously configured OCI-11.2 must be reconfigured to OCI-12.2. If the OBServer version does not match the OCI library version, using the DBLink feature will result in errors.

Configuration item changes

Configuration item
Change type
Description
max_partition_num New A new tenant-level configuration item to control the maximum number of partitions per table in MySQL-compatible mode. Default value is 8192, compatible with MySQL. Adjust as needed based on business requirements.

View changes

View name
Change type
Description
CDB_OB_BACKUP_TASKS New column Added the DATA_PROGRESS column to describe backup progress at the macroblock level.

Bug fixes

  • Fixed the issue where, when the SQL execution plan contains a Subplan Filter with a right-side Hash Join that processes a small amount of data, and the SQL has a high concurrency, the SQL response time becomes long and the tenant CPU usage is high.
  • Fixed the correctness and stability issues introduced by the NLJ/SPF Batch Rescan optimization.
  • Fixed the issue where, in MySQL-compatible mode, when multiple DEFAULT values are specified for a column, the table creation fails.
  • Fixed the issue where, in MySQL-compatible mode, when the NUMERIC type input parameter of a stored procedure is not truncated to the specified precision.
  • Fixed the issue where, when a nested subquery of the form subq1(subq2, subq3) exists, and subq2 and subq3 reference the same column in the main query, and subquery promotion and cost rewriting are triggered, an error -4200 is returned during SQL query.
  • Fixed the issue where, after KILLing an OBServer, an error -4013 is returned during restart.
  • Fixed the issue where, when a column with the datetime default current_timestamp on update current_timestamp attribute exists in a partitioned table, and the data write precision is set to microseconds, an error -4103 is returned when the number of partitions is modified by using the ALTER TABLE statement.
  • Fixed the issue where, when a shared expression is incorrectly parsed, no data is returned during an associated query.
  • Fixed the issue where, when a large amount of logs is written at the same time, an error "Statement is timeout" is returned during insert execution.
  • Fixed the issue where, when the replace(replace(LOB column,'\\n',''),'\\r','') expression is executed, an error ERROR 5098 (22001): Varchar value is too long for the column is returned.
  • Fixed the issue where, when an error -4019 is returned, the error is incorrectly printed.
  • Fixed the issue where the listagg function does not support using a non-constant separator.
  • Fixed the issue where, in tablegroup sharding = 'adaptive' mode, the subpartitions under a partition are not evenly distributed across nodes.
  • Fixed the issue where, when the business traffic is very high for a period of time, and a large number of GTS requests exist, and the traffic drops suddenly and no new GTS requests are generated, transactions are delayed or even timeout.
  • Fixed the issue where, in MySQL-compatible mode, when a query statement contains an expression filter condition that involves variable assignment, and another filter condition needs to be executed after the variable-related condition, the query result may be incorrect due to SQL rewriting.
  • Fixed the issue where, in MySQL-compatible mode, when the character_set_results parameter is empty, an error is returned during the execution of the show create table statement.
  • Fixed the issue where, during data backup and physical restore in the Transfer process, an error -4015 is returned when the tenant restore fails.
  • Fixed the issue where, during column deletion, the ALL_TAB_COLUMNS view can query the hidden table created during the process.
  • Fixed the issue where, when an assoc array does not contain a specified key in a loop statement, and the memory usage of the assoc array reaches the limit, an error -4016 is returned during stored procedure execution.
  • Fixed the issue where, when an LOB field stored in OUTROW is updated from an empty string to an empty string stored in OUTROW, the OBCDC synchronization is stuck.
  • Fixed the issue where, when data is imported in bypass mode by using OBLoader and the parallelism is greater than 64, the work threads of the client connection nodes are fully occupied, leading to queue backlog.
  • Fixed the issue where, when multiple units are created at the same time, and the new units are not persisted on the OBServer or RS nodes, an occasional node Core error occurs when the OBServer sends an RPC request to the RS node to obtain the root key.
  • Fixed the issue where, when a single-replica cluster is upgraded from V4.2.0 to V4.2.1BP1, the upgrade_post.py stage fails.
  • Fixed the issue where, in Oracle-compatible mode, when the third parameter of the substr function is set to 0, an error -4016 is returned.
  • Fixed the issue where, in a standby tenant, the show trace command cannot be used for end-to-end diagnostics.
  • Fixed the issue where, in MySQL-compatible mode, the ST_Contains function cannot query data.
  • Fixed the issue where, in MySQL-compatible mode, the DBA_SCHEDULER_WINDOWS query returns duplicate records.
  • Fixed the issue where, in the new execution engine, the Subplan filter operator performs poorly when there are many repeated values in the exec_param field.
  • Fixed the issue where, when the cache leader of an order auto-increment column is switched, RPC retries occur, leading to a long INSERT execution time.
  • Fixed the issue where, in Oracle-compatible mode, when too many DECODE expressions exist in an SQL statement, the rewritten execution plan becomes too large.
  • Fixed the issue where, in a stored procedure, the ob_query_timeout parameter is not effective.
  • Fixed the issue where, during SQL parsing, the query range extraction consumes excessive memory, leading to a large number of errors -4013.
  • Fixed the issue where, in Oracle-compatible mode, after a foreign key is disabled, truncating the parent table still fails.
  • Fixed the issue where, during MySQL connection initialization, if the comm attr field contains invalid characters, an error occurs when Visual Studio for Windows connects to the OBServer.
  • Fixed the issue where, when the SELECT FOR UPDATE statement is executed with high concurrency and no data updates exist, the MemTable consumes excessive memory.
  • Fixed the issue where, in high-concurrency PDML and frequent freeze dump scenarios, the dump is stuck, leading to excessive memory usage in the MEMStore.
  • Fixed the issue where, when the batch insert concurrency is very high, the SQL execution is occasionally very slow.
  • Fixed the issue where, in a local UDF, when dynamic SQL is repeatedly used to call a DBLink to access native Oracle, a node Core error occurs.
  • Fixed the issue where, in Oracle-compatible mode, when the select * from test where a=1 for update wait 60 statement is executed by using JDBC, no results are returned after 60 seconds.
  • Fixed the issue where, when a table with a foreign key is forcibly routed to PDML, an error -4016 is returned.
  • Fixed the issue where, in MySQL-compatible mode, when a json_unquote expression is used to generate a column, and the length parameter is not specified for type inference, an error -4016 is returned during the execution of the show create table statement.
  • Fixed the issue where, in Oracle-compatible mode, when a high-concurrency query is executed on a view that starts with ALL_, the CPU usage is excessively high.

V4.2.1 BP2 Hotfix1

Version information

  • Release date: December 14, 2023
  • Version: V4.2.1 BP2 Hotfix1
  • RPM version: oceanbase-4.2.1.2-102020012023121317

Product behavior changes

Starting from the V4.2.1 BP2 Hotfix1 version, when creating a new cluster, the BATCH RESCAN optimization for Nested Loop join (NLJ) and SUBPLAN FILTER (SPF) operators is disabled by default. However, for clusters upgraded from earlier versions, the BATCH RESCAN optimization remains enabled by default. In existing environments, if stability issues with NLJ/SPF BATCH RESCAN are encountered, you can execute the SET GLOBAL _nlj_batching_enabled = false; command to disable this optimization across the entire cluster. If performance does not meet expectations after disabling the optimization, you can reassess and decide whether to re-enable it based on the specific situation.

Bug fixes

  • Fixed an issue where, after enabling the BATCH RESCAN optimization for the Nested Loop join operator, if the generated execution plan includes an NLJ operator with BATCH RESCAN enabled and the right subplan of the NLJ operator contains operators with materialization operations such as MERGE GROUP BY, it could lead to problems in the OBServer Core.

  • Fixed an issue where, when setting the sharding = 'adaptive' attribute for a table group in a secondary partitioned table group, the data distribution of the secondary partitions under the primary partition was not fully randomized.

  • Fixed an issue where the behavior of the JSON_EXTRACT function was inconsistent with that of MySQL databases.

V4.2.1 BP2

Version information

  • Release date: December 5, 2023
  • Version: V4.2.1 BP2
  • RPM version: oceanbase-4.2.1.2-102010012023120119

Version upgrade

  • You can upgrade from V4.1.0 BP1 to BP4, V4.2.0 GA, V4.2.0 BP1, V4.2.1 GA, and V4.2.1 BP1 to this version.
  • When you upgrade a cluster of V4.2.1 GA or a hotfix version to V4.2.1 BP2, you cannot create a job in the DBMS_SCHEDULER package.

Feature enhancements

  • Added the capability to preserve order in MySQL-compatible mode pagination queries.

    In the limit offset scenario, the output results may be unstable due to factors such as plan selection and parallel execution. To ensure ordered output, you need to add an ORDER BY clause at the outer level. To avoid the need for individual modifications in MySQL-compatible mode pagination scenarios during business migration, this version introduces the capability to preserve order in pagination queries. However, in scenarios with large data volumes, the performance of preserving order in pagination queries may be slightly worse than without preserving order. The database provides a hidden configuration item _preserve_order_for_pagination to enable this feature, which is disabled by default. If your business scenario has specific requirements and the performance impact is acceptable after testing and evaluation, you can enable this feature.

  • Added the capability to manually transfer partitions.

    OceanBase Database's existing automatic load balancing mechanism can automatically adjust partition distribution to meet the needs of online scaling and partition balancing. However, in actual business scenarios, users may have specific data distribution requirements, such as aggregating or dispersing specific partitions. This version introduces the TRANSFER PARTITION command to provide the capability to manually adjust partition distribution. With this command, you can select to migrate specific partitions to specific log streams, achieving the aggregation or dispersion of different partitions.

  • Optimized physical restore performance.

    To improve physical restore performance, this version focuses on optimizing the synchronization rate of physical restore logs. The IOPS of log synchronization can be improved by 3 to 4 times under different log sizes.

  • Added support for RPC compression in OBKV.

    This version introduces the capability to compress RPC messages in OBKV query response packages. In scenarios where network bandwidth resources are insufficient, RPC message compression significantly reduces the size of data transmitted over the network, thereby reducing network bandwidth consumption.

  • Added the capability to dynamically configure LOB storage mode.

    When the size of LOB data is less than or equal to 4KB, it is stored in-row (i.e., within the row). When the size exceeds 4KB, it is stored in the LOB auxiliary table. Under the premise of not exceeding row-level storage specifications, in some scenarios, the performance of in-row storage for full reads and writes is better than storing data in the auxiliary table. Therefore, this version provides the capability to dynamically configure LOB storage mode based on business needs.

  • Added the capability to actively broadcast tablet locations.

    Currently, the location cache has a periodic refresh mechanism to ensure the real-time and eventual consistency of log stream location information. However, tablet locations only support passive refresh. When the mapping relationship between tablets and log streams changes, there is a probability of triggering SQL retries and read/write errors. This version introduces the capability to actively broadcast tablet locations to reduce the occurrence of SQL retries and read/write errors caused by changes in the mapping relationship after a transfer. Additionally, it provides an active refresh capability as a fallback measure to avoid irrecoverable read/write errors.

Product behavior changes

Default specifications for the sys tenant: Starting from V4.2.1, the default values of the server_cpu_quota_min and server_cpu_quota_max configuration items have been changed from 1 to 0. This means that the CPU allocation for the sys tenant is adaptively adjusted based on the cpu_count of the OBServer. In versions before V4.2.1 BP2, if cpu_count is less than or equal to 8, the minimum and maximum available CPU quotas for the sys tenant are adaptively adjusted to 1. If cpu_count is greater than 8, the minimum and maximum available CPU quotas for the sys tenant are adaptively adjusted to 2. Starting from V4.2.1 BP2, the cpu_count range is refined. For cpu_count in the (0c, 8c) range, it is adaptively adjusted to 1. For [8c, 16c), it is adaptively adjusted to 2. For [16c, 32c), it is adaptively adjusted to 3. For [32c, +∞), it is adaptively adjusted to 4.

Configuration item changes

Configuration item
Modification type
Description
tableapi_transport_compress_func Renamed The tableapi_transport_compress_func configuration item has been renamed to kv_transport_compress_func. The level of the kv_transport_compress_func configuration item has been changed from cluster level to tenant level. This configuration item is used to control whether to enable the compression algorithm for OBKV query response packages.
kv_transport_compress_threshold New A tenant-level configuration item has been added. It works with kv_transport_compress_func to specify the minimum threshold for compressing OBKV query result sets. The default value is 10KB, which means that compression is performed only when the result set exceeds 10KB.
backup_data_file_size Level adjustment The level of this configuration item has been changed from cluster level to tenant level. It is used to set the capacity of backup data files.

System variable changes

System variable
Modification type
Description
foreign_key_checks (Oracle-compatible mode) Removed foreign_key_checks is a system variable compatible with MySQL. In Oracle-compatible mode, it can be set but does not take effect. To avoid ambiguity and compatibility issues, in Oracle-compatible mode, setting this variable is not allowed, and it will not take effect. The variable will not be found. That is, only the MYSQL_ONLY level is supported.

System table or view changes

Configuration item
Modification type
Description
USER_USERS New view A view has been added in Oracle-compatible mode. It is compatible with Oracle 19c and displays information about the current user.
DBA_USERS New column A column has been added to support Oracle 19c compatibility.
ALL_USERS New column A column has been added to support Oracle 19c compatibility.
DBA_OB_TRANSFER_PARTITION_TASKS New view A view has been added for MySQL- and Oracle-compatible tenants. It displays all transfer partition tasks being processed in the current tenant.
CDB_OB_TRANSFER_PARTITION_TASKS New view A view has been added for the sys tenant. It displays all transfer partition tasks being processed in all tenants.
DBA_OB_TRANSFER_PARTITION_TASK_HISTORY New view A view has been added for MySQL- and Oracle-compatible tenants. It displays the history of all transfer partition tasks executed in the current tenant.
CDB_OB_TRANSFER_PARTITION_TASK_HISTORY New view A view has been added for the sys tenant. It displays the history of all transfer partition tasks executed in all tenants.

Bug fixes

  • Fixed the issue where the merge process took too long and the I/O bandwidth reached its maximum during the process.
  • Fixed the issue where the NLJ Batch Rescan feature did not support reverse index scanning, leading to incorrect query results for specific execution plans.
  • Fixed the issue where the OBKV client returned an incorrect error code 4377 when the values of non-null columns were not specified during the insert operation.
  • Fixed the issue where incorrect query results were returned due to incorrect subquery rewriting.
  • Fixed the issue where unit migration occupied the cloud disk resources when the IPOS isolation configuration was inaccurate.
  • Fixed the issue where baseline backups were unavailable during the upgrade of low-version tenants (relative to the cluster version) in V4.x.
  • Fixed the issue where the performance of spatial indexes was poor.
  • Fixed the issue where the schema refresh on the RS timed out and connection timeouts occurred when alter table add partition was executed on a base table with excessive view dependencies.
  • Fixed the issue where inaccurate NLJ cost estimation led to suboptimal execution plans.
  • Fixed the issue where recycle bin objects were not automatically cleaned up upon expiration.
  • Fixed the issue where large transactions modified the FAST COMMIT feature, leading to biased SQL row estimation information and poor performance.
  • Fixed the issue where the optimizer failed to generate execution plans when the number of join order enumerations for large tables was high and there were numerous Cartesian products.
  • Fixed the issue where the location cache was not refreshed when allocating tablet-level auto-increment sequences in LOB write scenarios, leading to repeated retry errors and subsequent transaction timeout retries.
  • Fixed the issue where PX thread limitations were ineffective, causing OBServer to become unresponsive under high concurrency.
  • Fixed the issue where, after a single-replica cluster was restarted successfully with Cgroup enabled, the RS had no leader and did not provide services for an extended period.
  • Fixed the issue where the calculation order changed when some subexpressions of the case when expression were shared, leading to query errors.
  • Fixed the issue where SQL execution errors occurred when expressions were shared across stmt boundaries.
  • Fixed the issue where user tenants were not merged when a large number of indexes were concurrently created and the main table had a large number of partitions.
  • Fixed the issue where update operations on tables containing lob tablet were slow.
  • Fixed the issue where major SSTable recycling was affected when DDL operations obtained a lob tablet snapshot during a long-duration direct load, leading to continuous disk space growth.
  • Fixed the issue where, in Oracle-compatible mode, a type mismatch error occurred when comparing the result of TRUNC(NULL) with a date type field.
  • Fixed the issue where, in Oracle-compatible mode, a "function not found" error (error code 5055) occurred when the listagg function was used with complex parameters.
  • Fixed the issue where, in MySQL-compatible mode, a "Internal error" error (error code 4016) occurred when tools such as Navicat and DBeaver queried the table structure of a database.
  • Fixed the issue where, in Oracle-compatible mode, a defensive error (error code 4007) occurred when complex data types could not be serialized during remote execution of SQL statements containing table function.
  • Fixed the issue where the upgradechecker task failed during the upgrade from V4.2.1 to V4.2.1 BP1.
  • Fixed the issue where, in Oracle-compatible mode, a unique constraint violation error occurred when multiple sessions performed write operations on temporary tables.
  • Fixed the issue where the ON UPDATE CURRENT_TIMESTAMP definition for date columns in OBKV did not take effect.
  • Fixed the issue where data encoding errors occurred when JDBC V2.2.6 and later versions were mixed with earlier versions in distributed plan scenarios after the useServerPrepStmts=true parameter was enabled.
  • Fixed the issue where, when a single IP address with the "%" wildcard was added to the ob_tcp_invited_nodes list for VPC internal network access, the setting did not take effect in some cases.
  • Fixed the issue where, in Oracle-compatible mode, a date format error occurred when querying native Oracle databases containing date type data through OCI DBLink after the native Oracle database was restarted.
  • Fixed the issue where, in ARM environments, PL Debug encountered errors when debugging stored procedures.
  • Fixed the issue where, in Oracle-compatible mode, the error message was inaccurate when the create view privilege was insufficient.
  • Fixed the issue where, in stress test scenarios, connection timeouts occurred after 5 minutes when no response was received.
  • Fixed the issue where SQL Audit displayed a missed execution plan after outline binding.
  • Fixed the issue where OBCI triggered ORA-00602/2014 errors when running multiple versions concurrently.
  • Fixed the issue where, in Oracle-compatible mode, the dbms_utility.get_hash_value function returned results incompatible with Oracle databases due to inconsistent hash algorithms.
  • Fixed the issue where, in MySQL-compatible mode, an error occurred during or expansion rewriting when LOB types were present in the SELECT statement.
  • Fixed the issue where TTL tables in the OBKV HBase model contained multiple versions of data.
  • Fixed the issue where, in MySQL-compatible mode, an error 4016 occurred when stored procedures with TEXT type parameters were executed.
  • Fixed the issue where, in MySQL-compatible mode, an error 4206 (hash map/set full) occurred when more than 32 tables were renamed.
  • Fixed the issue where, after setting auto_increment, the performance of INSERT operations declined after a leader switch or restart.
  • Fixed the issue where the CPU consumption of the CDC dictionary service was high when schema exceptions occurred.

Considerations

  • For OceanBase Database V4.2.1 and later, when using the DBLink feature to access a remote Oracle database, OCI-12.2 must be installed and configured on all OBServer nodes in the cluster. Additionally, when upgrading OceanBase Database from a version earlier than V4.2.1 to V4.2.1 or later, you need to reconfigure the previously set OCI-11.2 to OCI-12.2.
  • In early versions of V4.2.x, the PX thread limitations were ineffective. After the fix, when the PX thread limitations are enabled, high concurrency may trigger errors such as insufficient parallel query worker available. In such cases, you need to adjust the parallelism or CPU resources.
  • In V4.2.1 BP2, the retry logic for direct load has been modified from DML to DDL. Therefore, for the insert into select + direct load scenario, please disable Transfer.

V4.2.1 BP1 Hotfix1

Version information

  • Release date: November 10, 2023
  • Version number: V4.2.1 BP1 Hotfix1
  • RPM version number: oceanbase-4.2.1.1-101010022023110921

Bug fixes

  • Fixed the issue where when OBKV scans a TTL table, the memory usage is high due to a small amount of expired data.
  • Fixed the issue where during the execution of an OBKV TTL task, the memory held by the primary log stream is not released when the log stream is switched.
  • Fixed the issue where repeated creation of sessions for the send long data operation causes memory leaks.

V4.2.1 BP1

Version information

  • Release date: November 1, 2023
  • Version: V4.2.1 BP1
  • RPM version: oceanbase-4.2.1.1-101000062023103122

Version upgrade

  • You can upgrade from V4.1.0 BP1 to BP4, V4.2.0 GA, V4.2.0 BP1, and V4.2.1 GA to this version.
  • During the mixed running of clusters upgraded from V4.2.1 GA and its hotfix versions to V4.2.1 BP2, you cannot create a job in the DBMS_SCHEDULER package.

Feature enhancements

  • The DBA_OB_ROOTSERVICE_EVENT_HISTORY view adds new values manual_migrate to the migrate_unit and finish_migrate_unit events to distinguish manual migration from automatic migration.
  • The OBKV connection statistics feature is added to simplify the process of locating OBKV request issues.
    • The GV$OB_KV_CONNECTIONS view is added to query all KV-class active sessions in the current tenant.
    • The V$OB_KV_CONNECTIONS view is added to query all KV-class active sessions on the current OBServer node in the current tenant.

Product behavior changes

Feature
Version
Description
Behavior change of dbms_scheduler 4.2.1BP1 The max_run_duration parameter of the DBMS_SCHEDULER.CREATE_JOB procedure specifies the maximum runtime of a job. If the runtime exceeds this value, the job is considered to have timed out. In previous versions, if max_run_duration was not specified, the default value was 0. In V4.2.1 BP1, the default value is changed to 30 seconds.
Behavior change of statement decompilation for views with UDFs 4.2.1BP1 In an Oracle-compatible tenant, when you query a view across schemas that contains UDF calls and the view and UDF belong to the same schema, if there is an object with the same name as the schema in the schema where the UDF is located, you must explicitly specify the schema name for the UDF. Otherwise, an error may occur.
Client and server character sets are both UTF8, and objects with invalid characters cannot be queried from the dictionary table 4.2.1BP1 In a scenario where the client character set is UTF8 and the server character set is GBK, if the table name or column name contains invalid characters, the table is created successfully, but an error occurs when you query the dictionary table due to character set conversion. In this version, invalid characters are stored as ? in the dictionary table to solve the above issue. However, a problem remains when both the client and server character sets are UTF8: identifiers containing invalid characters can be added, deleted, and modified normally, but cannot be queried from the dictionary table, which is incompatible with Oracle databases.

Configuration item changes

Configuration item
Modification type
Description
ob_tcp_invited_nodes Scope expansion The upper limit is expanded from 4k to 64k.
ls_gc_delay_time Default value change The default value is changed from 3600s to 0s. In other words, the log stream delay deletion mechanism does not take effect when the tenant is not enabled for log archiving.

View changes

Configuration item
Modification type
Description
GV$OB_KV_CONNECTIONS New Used to query all KV-class active sessions on all OBServer nodes in the current tenant.
V$OB_KV_CONNECTIONS New Used to query all KV-class active sessions on the current OBServer node in the current tenant.

Bug fixes

  • Fixed the issue where, in MySQL-compatible mode, calling a function without selecting a database results in the error No database selected.
  • Fixed the issue where, in MySQL-compatible mode, when a stored procedure with output parameters is called and the result set is included in the response, the native MySQL driver may throw the error Commands out of sync.
  • Fixed the issue where, in MySQL-compatible mode, using with mysql_native_password to create a user results in an error.
  • Fixed the issue where, in OBKV mode, when the current_timestamp column is used as the TTL column, the insertUp operation may cause a core dump in the node.
  • Fixed the issue where, in OBKV mode, after the TTL task for an HBase table is completed, the TenantTTLMgr module may experience memory leaks.
  • Fixed the issue where, in OBKV mode, an HBase row lock exception may cause a core dump in the node.
  • Fixed the issue where, in OBKV mode, if the schema definition is not in the order of rowkey plus regular columns, the insertUp operation may trigger a kernel bug, leading to a core dump in the node.
  • Fixed the issue where, in the PS protocol, when a local retry error occurs during the first execution of a PS cursor, the error code 4201 hash map/set entry not exist is returned.
  • Fixed the issue where, during complex SQL execution, using SPF optimization may cause a core dump in the node.
  • Fixed the issue where the count(distinct column) sql statement does not use indexes, resulting in poor execution performance.
  • Fixed the issue where, in the transfer scenario, an auto-increment column not being refreshed in the tablet locaiton cache may cause errors during request execution.
  • Fixed the issue where, during direct load, if the job is killed using ctrl+c or by terminating the session, the log may repeatedly show the error 4018 entry not exist, causing the CDC link to break.
  • Fixed the issue where the index selection is suboptimal due to the introduction of the base table access path pruning optimization.
  • Fixed the issue where, in Oracle-compatible mode, when an SQL statement contains a Nested Loop Join and the outer query includes a rowid condition, the error 4016 is returned.
  • Fixed the issue where the select distinct primary_key, clob/blob statement returns the error ORA-00932: inconsistent datatypes.
  • Fixed the issue where, during the parsing or optimization phase, if a JOIN can be eliminated, the update statement still cannot use PDML.
  • Fixed the issue where, during the execution of an SQL statement using the NLJ Group Rescan optimization, if the storage parameters change, the error 4016 is returned.
  • Fixed the issue where, in Oracle-compatible mode, function parameters do not support using synonyms to reference columns from other schemas.
  • Fixed the issue where, in MySQL-compatible mode, an implicit cast operation may prevent successful predicate derivation, resulting in suboptimal execution plans.
  • Fixed the issue where, when trx_read_only is set to True, UDF internal SQL statements cannot hit the plan cache, leading to poor performance.
  • Fixed the issue where excessive merge logs are printed.
  • Fixed the issue where lock wait troubleshooting logs are incomplete.
  • Fixed the issue where, in Oracle-compatible mode, when useServerPrepStmts=true is set in JDBC, executing SELECT INTO OUTFILE results in an error.
  • Fixed the issue where, during transfer, large transactions may hang and repeatedly return error 6231, requiring retries.
  • Fixed the issue where, when the client character set is UTF8 and the server character set is GBK, if the table name or column name contains invalid characters, a core dump may occur when querying the dictionary table after the table is created.
  • Fixed the issue where, on ARM platforms, the PL Debug feature is unavailable in the packaged OBServer.
  • Fixed the issue where, after using PL Debug, deleting a tenant may cause a core dump in the node.
  • Fixed the issue where, in Oracle-compatible mode, when creating a table using Create Table AS, specifying partition ("xxxx") results in a syntax error.
  • Fixed the issue where the ob_trx_idle_timeout variable is not effective.
  • Fixed the issue where, when executing select * from (subquery), if the subquery returns results with duplicate column names, the SQL statement returns the error ORA 00918: column 'ID' in field list ambiguously defined, which is incompatible with Oracle databases.
  • Fixed the issue where, in an update statement, if the exists clause contains an NLJ Batch Rescan, the SQL statement returns error 4377.

V4.2.1 GA Hotfix2

Version information

  • Release date: October 23, 2023
  • Version: V4.2.1 GA Hotfix2
  • RPM version: oceanbase-4.2.1.0-100020042023102310

Version upgrade

You can upgrade from V4.1.0 BP1 to V4.2.1 GA Hotfix2.

Bug fixes

  • Fixed the issue where the tablet locaiton cache is not refreshed in the transfer scenario, causing errors in request execution.
  • Fixed the issue where an error 4016 is returned when the NLJ Group Rescan optimization is used for SQL execution and the storage parameters are changed.
  • Fixed the issue where the insertUp operation causes a node Core error when the current_timestamp column is used as the TTL column in OBKV.
  • Fixed the issue where PDML cannot be used when a JOIN can be eliminated during the parsing or optimization phase of an update statement.
  • Fixed the issue where predicate derivation fails due to an implicit cast in MySQL-compatible mode, preventing the generation of an optimal plan.

V4.2.1 GA Hotfix1

Version information

  • Release date: October 17, 2023
  • Version number: V4.2.1 GA Hotfix1
  • RPM version: oceanbase-4.2.1.0-100010052023101619

Bug fixes

  • Fixed the issue where SPF optimization causes node Core during the execution of complex SQL.
  • Fixed the issue where, when trx_read_only is set to True, the internal SQL of the UDF cannot hit the Plan Cache, leading to poor performance.
  • Fixed the issue where the default value parameters of complex data types in stored procedures under PS mode fail to pass the validation.

V4.2.1 GA

Version information

  • Release date: September 28, 2023
  • Version number: V4.2.1 GA
  • RPM version number: oceanbase-4.2.1.0-100000182023092722

Version overview

OceanBase Database V4.2.1 is the first long-term supported (LTS) version in the V4.2.x series. This version introduces new features compatible with MySQL, such as the VALUES statement and JSON_TABLE expression. It also provides Oracle-compatible features like DBLink package calls and sequence reading. Additionally, this version introduces the WR data collection framework and enhanced end-to-end diagnostics. It also optimizes system resource usage, adds table-level recovery capabilities, and supports backup media such as COS. We recommend using this version in production environments for both cloud and on-premises applications.

Key features

MySQL compatibility

  • VALUES Statement

    MySQL 8.0.19 introduced the VALUES Statement. It can be used to quickly construct a "table" of data; it can be used as an independent DML statement, supporting the use of ORDER BY and LIMIT; and it can be used as a special "table" mixed with ordinary DML statements. OceanBase Database V4.2.1 is compatible with MySQL-compatible mode and supports the VALUES Statement feature, making table value construction more convenient and easy to use.

  • Rename Column

    MySQL 8.0 introduced the RENAME COLUMN syntax, allowing users to rename columns without changing the column definitions, which is lighter than the CHANGE COLUMN syntax. OceanBase Database V4.2.1 is compatible with the RENAME COLUMN syntax of MySQL 8.0.

Oracle compatibility

  • DBLink capability extension

    OceanBase Database V4.1.0 supports the ability to read and write native Oracle tables in Oracle-compatible mode. Starting from V4.2.1, it also supports reading remote packages through DBLink. After users create an Oracle database connection, they can call remote stored procedures in the local Oracle-compatible tenant of OceanBase Database by specifying the remote stored procedure name followed by @DBLink name. It also supports calling remote stored procedures through synonyms defined remotely or locally defined DBLink synonyms.

    Additionally, V4.2.1 supports remote SEQUENCE object access. Like data tables, remote SEQUENCE objects can be accessed by specifying the SEQUENCE object name followed by @DBLink name. This includes calculating the NEXTVAL and CURRVAL values of the SEQUENCE object.

  • Rename Partition

    Oracle allows users to modify the names of primary or secondary partitions using the RENAME PARTITION/SUBPARTITION syntax. OceanBase Database has supported primary and secondary partition tables in earlier versions but lacked a simple method for renaming partitions. Starting from V4.2.1, OceanBase Database is compatible with the RENAME PARTITION/SUBPARTITION syntax of Oracle, improving the ease of use for renaming partitions.

Multi-model features

  • JSON_TABLE expression

    JSON is a semi-structured data format. Users can extract specific values from JSON data based on paths or use the JSON_TABLE expression to convert semi-structured data into structured data. OceanBase Database has supported the JSON data type in both MySQL- and Oracle-compatible modes in earlier versions, but the JSON_TABLE expression was not available in MySQL-compatible mode. To meet the needs of users who want to convert JSON data into structured data for calculations, V4.2.1 supports the JSON_TABLE expression in MySQL-compatible mode.

  • OBKV TTL

    TTL (Time To Live) is a common feature in NoSQL databases, primarily used for automatic data expiration. For example, in historical database scenarios, data needs to be periodically scanned to determine expiration times and deleted. Many businesses rely on the table model of OBKV. To facilitate periodic data management, OceanBase Database V4.2.1 supports the OBKV TTL feature. Users can define table-level or row-level TTL attributes using DDL statements, ensuring that OBKV reads and writes are not affected by expired data.

Performance improvements

  • Concurrent CREATE TABLE

    Earlier versions of OceanBase Database had a serial DDL design, where DDL requests were executed serially in the RootService queue. Starting from V4.1.0, OceanBase Database introduced concurrent DDL capabilities and supported concurrent execution of TRUNCATE TABLE. To address performance issues during million-table schema migrations, V4.2.1 supports concurrent CREATE TABLE, offering performance improvements of up to ten times or even dozens of times compared to serial execution.

  • Performance optimization for foreign key checks

    Before V4.2.1, foreign key checks in OceanBase Database were implemented using INNER SQL, which had a high overhead. Starting from V4.2.1, foreign key queries are performed using DAS TASK, supporting batch processing of foreign key queries for single-table DML operations. Combined with a foreign key check result caching strategy, this results in significant performance improvements in INSERT and UPDATE scenarios. In single-machine scenarios (where parent and child tables are distributed on the same machine), the performance degradation caused by foreign key checks is typically around 10% compared to tables without foreign keys. In distributed scenarios (where parent and child tables are distributed across different machines), the performance degradation is typically around 30% compared to tables without foreign keys.

  • Dynamic sampling supported for MemTable

    OceanBase Database V4.2.0 introduced dynamic sampling, an optimization that samples data during the execution plan generation phase. When the number of rows in an SSTable exceeds that in the MemTable, dynamic sampling uses block sampling from the SSTable. Conversely, if the MemTable contains more rows, it samples the MemTable. V4.2.0 implemented this by fully reading the MemTable, which was relatively inefficient. V4.2.1 improved this by directly sampling the MemTable through range splitting, making dynamic sampling more efficient.

  • Parallel reading of archived logs

    In OceanBase Database V4.1.0, OBCDC supports consuming archived logs through CDCService and directly consuming logs at the archived destination. In V4.2.0, network standby databases reuse the CDC log-pulling protocol framework to pull logs from the primary database via CDCService. When CDCService receives a log-pulling RPC request from OBCDC or a network standby database, it first tries to read the logs from the local disk. If the logs are not found due to log stream garbage collection or log recycling, and the tenant has enabled archived logs, CDCService reads the logs from the archived destination (such as NFS or OSS). The performance of CDCService in reading logs determines the downstream consumption rate of logs. If reading archived logs from OSS is slow, it can lead to synchronization delays or network standby databases falling behind. Therefore, based on the parallel consumption of OSS files, V4.2.1 introduces the capability for CDCService to parallel consume OSS archived log files.

Resource optimization

System resource optimization: This version specifically optimizes the use of public cloud system resources, including user tenant memory, 500 tenant memory, and operating system memory. For typical ECS instances with 128 GB or more, the memory usage ratio for system resources has been reduced from 30% to around 15%.

Highly available enhancements

  • Table-level recovery

    OceanBase Database before V4.2.1 supports tenant-level data recovery. If a table's data is accidentally damaged, you must use the database's physical restore feature to restore the tenant to a state prior to the damage or use the import and export feature to restore the table data. Version V4.2.1 of OceanBase Database now also supports table-level data recovery. In the target cluster, you can specify which backup data to use, which database or table to restore, the tenant under which to restore, and the time point to restore to.

  • Backup COS

    OceanBase Database V4.1.0 supports backup to Alibaba Cloud OSS, and V4.2.1 supports backup to Tencent Cloud COS. You can back up log and data information to Tencent Cloud COS, and restore data from Tencent Cloud COS.

Security hardening

Data Integrity Protection: In the commercial cryptographic evaluation of information systems (often referred to as the security assessment for the application of commercial cryptography in information systems), the confidentiality and integrity of stored data must be protected. Before V4.2.1, OceanBase Database's transparent encryption supported AES_ECD and SM4_CBC for encrypting stored data. V4.2.1 expanded support to include the GCM mode. In addition to encrypting data, the system calculates a checksum for the ciphertext using the encryption key. During decryption, this checksum is verified to check if the ciphertext has changed, thus providing data integrity protection.

Enhanced diagnostics

  • WR Data Collection Framework

    Database performance diagnostic ease of use directly affects the tuning efficiency of the system. Oracle Database provided important features such as ASH, AWR, and ADDM starting from Oracle Database 10g. These features provide an in-depth analysis framework for database optimization, starting from internal components and from the top down (DB Time). After decades of development, this framework has become an industry benchmark. OceanBase Database V4.2.1 implements a data collection framework similar to that of Oracle AWR. It collects data such as ASH, statistics, wait events, and SQL execution details and periodically persists views related to OceanBase Database performance. Users can query the WR views and adjust configurations and manage snapshots using the DBMS_WORKLOAD_REPOSITORY package. Additionally, SYSSTAT and ASH metrics have been unified, supplemented, and strengthened for greater comprehensiveness and accuracy. Future versions will further enhance OceanBase Database's performance diagnostic capabilities.

  • ASH feature improvements

    Active Session History(ASH) is a new feature introduced in OceanBase Database V4.0.0. It samples the state of all active sessions in the system at 1-second intervals and stores the data in internal tables. Starting from V4.2.1, OceanBase Database further enhanced ASH by adding sampling points related to transactions, storage, and DAS, and by default collects ASH data into the WR internal tables at a sampling rate of 10:1 and a retention period of 1 hour. By analyzing ASH data, you can easily identify issues such as long waiting events, slow SQL statements, and resource utilization of active sessions, enabling you to optimize performance.

  • Fully integrated diagnostic products

    In OceanBase Database V4.2.0, SQL requests are supported in visual full-link tracing. V4.2.1 has improved the configuration management capabilities of full-link diagnostics. The view GV$OB_FLT_TRACE_CONFIG has been added to record the configuration policies of full-link diagnostics at all levels. The GV$OB_PROCESSLIST view now includes the LEVEL, SAMPLE_PERCENTAGE, and RECORD_POLICY columns to display the monitoring level, sampling frequency, and record printing strategy effective on the SESSION. Additionally, the GV$OB_SQL_AUDIT view has been updated with the FLT_TRACE_ID column to record the TRACE information, achieving comprehensive SQL tracking. OCP also provides corresponding page functionality.

Product form

Direct access to OceanBase database: In a public cloud deployment, the Client -> LB -> ODP -> OceanBase path is excessively long, and it leads to noticeable performance loss in high-performance applications. For single-node deployments or applications that do not require read/write separation, the client can directly access OceanBase through the load balancer, avoiding unnecessary intermediate hops. This direct access method is known as the Primary IP address mode.

Feature changes

The following changes are introduced:

Feature
Description
Load Data with disabled trigger Load Data is executed in parallel to quickly import data. Parallel execution and trigger are orthogonal scenarios, and there may be correctness issues with triggers. Therefore, triggers are disabled in V4.2.1.
Semantics change of tenant = all
  • Before V4.2.1, the semantics of tenant=all were ambiguous. In specific scenarios, such as setting configuration parameters, it represented all tenants, and in backup and restore operations, it represented user tenants.
  • Starting from V4.2.1, the semantics of tenant=all are changed to "include all user tenants but exclude SYS and META tenants". New syntaxes, tenant=all_user and tenant=all_meta, are introduced to specifically represent all user tenants and all META tenants, respectively. After the change, the semantics of tenant=all and tenant=all_user are the same. The use of tenant=all is planned to be deprecated in future versions.
Load balancing switch
  • V4.2.0 introduced load balancing and transfer capabilities, which can be controlled through the tenant-level configuration parameter enable_rebalance. However, when enable_rebalance is disabled, it also restricts the modification of user maintenance commands such as unit_num and primary_zone, making it inconvenient to use.
  • V4.2.1 introduces a new tenant-level configuration parameter enable_transfer, allowing the transfer feature to be disabled independently for a tenant. This parameter, along with enable_rebalance, jointly controls the tenant balancing strategy.
    • enable_rebalance=true, enable_transfer=true: Dynamically adjust the number of log streams for tenants based on the load balancing algorithm, automatically balancing leaders and partitions within tenants.
    • enable_rebalance=true, enable_transfer=false: No transfer or dynamic changes in the number of log streams occur. Only log stream balancing is attempted on the existing log streams.
    • enable_rebalance=false, enable_transfer is ineffective: No load balancing-related maintenance commands are allowed.
OBCDC case sensitivity OBCDC does not distinguish between uppercase and lowercase letters before V4.2.1. Starting from the new version, case-sensitive strategies are supported. The specific behavior is as follows:
  • For MySQL-compatible tenants, the correct case of databases and tables is output based on the value of lower_case_table_names=0/1/2.
  • For Oracle-compatible tenants, the correct case of databases, tables, and columns is output based on the actual situation, and case sensitivity can be controlled using double quotes.
TLS version used for SSL communication encryption Before V4.2.1, there was no restriction on the TLS version used for SSL communication encryption. This means that clients can use a lower TLS protocol version to communicate with the database. However, some scenarios require higher security protocols such as TLS 1.2 and TLS 1.3. To ensure compatibility with older client versions, starting from V4.2.1, you can specify the minimum TLS protocol version using the configuration parameter sql_protocol_min_tls_version. The default behavior is compatible with previous versions.
Calling stored procedures with output parameters does not return results When MySQL calls stored procedures with output parameters, the output parameter result set is not returned.
  • Before V4.2.1, the output parameter result set was returned, causing errors when using the native MySQL driver.
  • V4.2.1 introduced MySQL behavior compatibility. After executing the CALL statement through OBClient, the output parameter result set will no longer be displayed.
Disabling zlib compression In V4.2.1, the creation of new tables using zlib compression is prohibited, and existing tables cannot be converted to use the zlib compression algorithm.

View changes

The following changes are introduced:

View
Change type
Description
DBA/USER/ALL_CONSTRAINTS Column value change The DBA/USER/ALL_CONSTRAINTS view already contains a GENERATED column, which is defined as cast("NULL" as VARCHAR2(14)). This is now changed to be compatible with Oracle, outputting GENERATED NAME or USER NAME, while retaining NULL for compatibility with older versions after upgrade.
CDB/DBA_WR_CONTROL New Used to store WR-related configurations.
[G]V$OB_PROCESSLIST New columns Three new columns, LEVEL, SAMPLE_PERCENTAGE, and RECORD_POLICY, are added to display the monitoring level, sampling frequency, and record printing strategy effective for the session. Five new columns, LB_VID, LB_VIP, LB_VPORT, IN_BYTES, and OUT_BYTES, are added to meet the statistical needs of public cloud primary address mode connection information.
[G]V$OB_TENANT_RUNTIME_INFO New Used to display tenant runtime details.
DBA_SCHEDULER_JOB_RUN_DETAILS New Used to display the execution status of scheduled jobs in Oracle-compatible tenants.
[G]V$OB_SQL_AUDIT New columns A new column, FLT_TRACE_ID, is added to record full-link TRACE information.

Configuration item changes

The following changes are introduced:

Configuration item
Change type
Description
memory_limit_percentage Modified value range The maximum percentage of memory available to an OBServer node is increased from 90% to 95%. This allows OBServer nodes on large-scale machines to use more resources.
sql_protocol_min_tls_version New A cluster-level configuration item that specifies the minimum version of the SSL/TLS protocol to be used for SSL connections to the cluster. The default value is none, which means that no restriction is imposed on the version of the LTS protocol used for connections.

Note

This configuration item only controls the version of the SSL protocol. To enable SSL, you must set the ssl_client_authentication parameter.

enable_transfer New A tenant-level configuration item that specifies whether to allow transfer within a tenant. If the enable_rebalance parameter is disabled, this parameter is invalid. The default value is True, which indicates that transfer is enabled.
compaction_dag_cnt_limit New A tenant-level configuration item that specifies the maximum number of DAGs in the compaction DAG queue. The default value is 15000. In a scenario with millions of partitions, increasing this parameter can improve the compaction speed, but will consume more memory.
compaction_schedule_tablet_batch_cnt New A tenant-level configuration item that specifies the maximum number of partitions to be scheduled in each batch during compaction. The default value is 50000. In a scenario with millions of partitions, increasing this parameter can improve the compaction speed, but will increase the working time of the scheduling thread and the CPU usage.
server_cpu_quota_min Modified default value and value range The default value is changed from 1 to 0, and the value range is changed from [1, 16] to [0, 16]. If the value is 0, the sys tenant automatically adjusts its specifications.
server_cpu_quota_max Modified default value and value range The default value is changed from 1 to 0, and the value range is changed from [1, 16] to [0, 16]. If the value is 0, the sys tenant automatically adjusts its specifications.

Recommended tools

The following table lists the recommended versions of tools for OceanBase Database V4.2.1.

Component
Version
Remarks
ODP ODP 4.2.1.0 -
OCP OCP 4.2.0 It is recommended to use the latest BP version.
ODC ODC 4.1.3-BP3 ODC 4.2.2 will be released soon.
OBCDC OBCDC 4.2.0 -
OMS OMS 4.2.0 -
OCCI OCCI 1.0.3 -
OBCI OBCI 2.0.7 -
ECOB ECOB 1.1.8 -
OBClient OBClient 2.2.3 -
LibOBClient LibOBClient 2.2.3 -
OBJDBC OBJDBC 2.4.5.1 It is recommended to use version 2.4.5 or later.
OBODBC OBODBC 2.0.8 -

Upgrade considerations

  • OceanBase Database V4.2.0 can be upgraded to OceanBase Database V4.2.1 online.
  • OceanBase Database V4.1.0 can be upgraded to OceanBase Database V4.2.1 online.
  • OceanBase Database and ODP are upgraded in sequence. First, upgrade OceanBase Database from V4.1.x to V4.2.1. Then, upgrade ODP from V4.1.x to V4.2.1.
  • During the upgrade, the system automatically disables major compactions and DDL operations. After the upgrade, the system resumes normal operation.
  • OceanBase Database V3.x cannot be upgraded to OceanBase Database V4.2.1 online.
  • OceanBase Database V3.x can be upgraded to OceanBase Database V4.2.1 online by using logical migration through OMS.

Previous topic

V4.2.5
Last

Next topic

V4.2.0
Next
on this page
V4.2.1 BP11 Hotfix15
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix14
Version information
Purpose
Considerations
Bug fixes
V4.2.1 BP11 Hotfix13
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix12
Version information
Purpose of the release
Bug fixes
V4.2.1 BP11 Hotfix11
Version information
Purpose of the release
Bug fixes
V4.2.1 BP11 Hotfix10
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix9
Version information
Purpose of the release
Bug fixes
V4.2.1 BP11 Hotfix7
Version information
Purpose of release
Notes
Bug fixes
V4.2.1 BP11 Hotfix6
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix5
Version information
Purpose
Bug fixes
V4.2.1 BP11 Hotfix4
Version information
Purpose of this release
Bug fixes
V4.2.1 BP11 Hotfix3
Version information
Release purpose
Bug fixes
V4.2.1 BP11 Hotfix2
Version information
Purpose
Bug fixes
V4.2.1 BP11 Hotfix1
Version information
Purpose of release
Bug fixes
V4.2.1 BP11
Version Information
What's new
Enhanced features and stability
Syntax changes
Critical Fix
V4.2.1 BP10 Hotfix6
Version information
Purpose of the release
Bug fixes
V4.2.1 BP10 Hotfix5
Version information
Bug fixes
V4.2.1 BP10 Hotfix4
Version information
Key bug fixes
V4.2.1 BP10 Hotfix2
Version information
Key bug fixes
V4.2.1 BP10
Version information
Upgrade instructions
Feature enhancements
Product behavior changes
System variable changes
View changes
Critical bug fixes
V4.2.1 BP9 Hotfix2
Version information
Bug fixes
V4.2.1 BP9 Hotfix1
Version information
Bug fixes
V4.2.1 BP9
Version information
Upgrade notes
Feature enhancements
Changes in product behavior
Configuration item changes
System variable changes
View changes
Bug fixes
V4.2.1 BP8 Hotfix1
Version information
Bug fixes
V4.2.1 BP8
Version information
Upgrade instructions
Feature enhancements
Configuration item changes
View changes
Bug fixes
V4.2.1 BP7 Hotfix3
Version information
Bug fixes
V4.2.1 BP7 Hotfix2
Version information
Bug fixes
V4.2.1 BP7 Hotfix1
Version information
Bug fixes
V4.2.1 BP7
Version information
Upgrade notes
Feature Enhancements
Product behavior changes
Configuration item changes
System variable changes
View changes
Bug fixes
V4.2.1 BP6 Hotfix1
Version information
Key bug fixes
V4.2.1 BP6
Version information
Upgrade instructions
Performance optimization
Bug fixes
V4.2.1 BP5
Version information
Upgrade instructions
Feature enhancements
Product behavior changes
Configuration item changes
View changes
Bug fixes
V4.2.1 BP4 Hotfix3
Version information
Bug fixes
V4.2.1 BP4 Hotfix2
Version information
Bug fixes
V4.2.1 BP4 Hotfix1
Version information
Bug fixes
V4.2.1 BP4
Version information
Upgrade notes
Feature enhancements
Product behavior changes
Configuration changes
View changes
Bug fixes
V4.2.1 BP3 Hotfix5
Version information
Bug fixes
V4.2.1 BP3 Hotfix4
Version information
Bug fixes
V4.2.1 BP3 Hotfix3
Version information
Bug fixes
V4.2.1 BP3 Hotfix2
Version information
Bug fixes
V4.2.1 BP3 Hotfix1
Version information
Bug fixes
V4.2.1 BP3
Version information
Upgrade notes
Feature enhancements
Product behavior changes
Configuration item changes
View changes
Bug fixes
V4.2.1 BP2 Hotfix1
Version information
Product behavior changes
Bug fixes
V4.2.1 BP2
Version information
Version upgrade
Feature enhancements
Product behavior changes
Configuration item changes
System variable changes
System table or view changes
Bug fixes
Considerations
V4.2.1 BP1 Hotfix1
Version information
Bug fixes
V4.2.1 BP1
Version information
Version upgrade
Feature enhancements
Product behavior changes
Configuration item changes
View changes
Bug fixes
V4.2.1 GA Hotfix2
Version information
Version upgrade
Bug fixes
V4.2.1 GA Hotfix1
Version information
Bug fixes
V4.2.1 GA
Version information
Version overview
Key features
Recommended tools
Upgrade considerations