OBLOADER & OBDUMPER V4.2.8.1 released in February 2024 adds bypass import parameters in the session.config.json file.
Version information
Current version: V4.2.8.1
Previous version: V4.2.8
Release date: February 21, 2024
Supported OceanBase Database versions
The following table lists the OceanBase Database versions supported by OBLOADER & OBDUMPER V4.2.8.1.
| OceanBase Database mode | Supported versions |
|---|---|
| Oracle mode | V2.0.x, V2.1.x, V2.2.20, V2.2.30, V2.2.50, V2.2.70, V2.2.71, V2.2.72, V2.2.76, V2.2.77, V3.1.x, V3.2.x, V4.0.0, V4.1.0, V4.2.0, and V4.2.1 |
| MySQL mode | V1.4.70, V1.4.72, V1.4.75, V1.4.78, V1.4.79, V2.2.30, V2.2.50, V2.2.70, V2.2.71, V2.2.72, V2.2.76, V2.2.77, V3.1.x, V3.2.x, V4.0.0, V4.1.0, V4.2.0, and V4.2.1 |
Considerations
Notice
Before you upgrade OBLOADER & OBDUMPER from a version earlier than V4.2.8 to V4.2.8.1, you must read through the "Considerations" section in this topic.
OBLOADER & OBDUMPER V4.2.8 and later allow you to specify the value of
-u/--userin the<user\>@<tenant\>#<cluster\>format. To ensure backward compatibility, you can still use the-t/--tenantand-c/--clusteroptions.In a scenario of importing data to Alibaba Cloud Object Storage Service (OSS) or Hadoop Distributed File System (HDFS), if the
--storage-urioption is specified, the-f/--file-pathoption is no longer a must. OBLOADER & OBDUMPER will automatically create a directory namedtmpin its root directory as a temporary directory for storing logs and checkpoint files.Notice
This modification applies only to a debugging environment. In a production environment, we recommend that you use the
-for--log-pathoption to specify the log storage directory.The parsing behavior in the POS format is modified. At present, the parser will parse a whole line. To be specific, in addition to the byte length defined in the control file, the parser will also read a line break in each line. You may need to modify the control file to support this behavior. The command for calculating the number of bytes in the first line of the
example.datfile is as follows:expr $(head -n 1 example.dat | wc -c) - 1.Performance optimization for schema export in OceanBase Database in Oracle mode applies only to the following scenarios:
The
--no-sysoption is used for limited export in Oracle mode of OceanBase Database of a version earlier than V4.0.0.The
--compact-schemaoption is used for export in Oracle mode of OceanBase Database V4.0.0 and later.
Feature updates
OBLOADER:
- Bypass import parameters are added in the connection configuration file
session.config.jsonin the{ob-loader-dumper}/confdirectory. For more information, see Bypass import.
- Bypass import parameters are added in the connection configuration file
Bug fixes
Fixed the issue where an alert is repeatedly generated if the
.ckptfile is absent during data import by using OBLOADER.Fixed the issue where an error indicating unique key conflicts still occurs when the
--replace-dataoption is specified in OBLOADER.Fixed the issue where when OBLOADER is used to import data in the POS format, the control file cannot be properly loaded if the
--tableoption contains a wildcard that matches multiple tables, for example,table 'table_name_*'.Fixed the issue where the NullPointerException (NPE) error occurs if
--table '*'is specified when OBLOADER is used to import data in the POS format.Fixed the issue where the
--partitionoption does not take effect if both the--no-sysand--partitionoptions are specified when OBDUMPER is used to export table data from OceanBase Database V3.2.x.Fixed the issue where the name of the exported database object file does not have the
.sqlsuffix when OBDUMPER is used to export database object data with the-foption specified.Fixed the issue where the pagination of a partitioned table takes a very long time when OBDUMPER is used to export data from OceanBase Database of a version earlier than V4.0.0.
Fixed the issue where an empty file cannot overwrite a file that contains data when OBDUMPER is used for export with the
--partitionoption specified.
Known issues
The exported database object definitions may contain the name of the database to which the object belongs.
OBDUMPER cannot export PL object definitions from OceanBase Database of versions earlier than V2.2.30 in MySQL mode.
If you do not specify the password of the
systenant on the command line, OBDUMPER cannot export table group definitions from OceanBase Database of versions earlier than V2.2.70.If you do not specify the password of the
systenant on the command line, OBDUMPER cannot export index definitions from OceanBase Database of versions earlier than V2.2.50 in Oracle mode.If you do not specify the password of the
systenant on the command line, OBDUMPER cannot export partition information of unique indexes from OceanBase Database of versions earlier than V2.2.70 in Oracle mode.If you do not specify the password of the
systenant on the command line, OBDUMPER cannot export unique index definitions of partitioned tables from OceanBase Database V2.2.70 and later versions in Oracle mode.When you use OBLOADER to import data, if the specified file format, such as
--sqland--csv, does not match the actual file format, an error occurs.In MySQL mode of OceanBase Database, when you explicitly specify object names, such as the names of tables and views, in a case-sensitive manner to import or export only objects of the case-sensitive names, objects are imported or exported in a case-insensitive manner.
The JDBC high-availability mode
sequentialis unavailable for now. You can use theloadbalancemode instead.If you specify the
--remove-newlineoption to remove line breaks, unexpected escape characters are generated. We recommend that you do not use this option.If you use bypass import in a multi-table restore scenario, the efficiency may be low.
Considerations
In a CUT file, each data record is stored in an entire line. When you specify the
--cutoption on the OBDUMPER command line, if the exported data contains a single-character field separator, OBDUMPER escapes special characters in the data, such as separators, carriage returns, and line breaks. For example, if the data isabc|defand the separator is|, the exported data isabc\|def.When you specify the
--cutoption on the OBLOADER command line, do not use the--trail-delimiteroption if no field separator or separator string exists at the end of the data line in the file. Otherwise, a serious error occurs on OBLOADER.If you specify the
--logical-databaseoption on the command line, the definition of a random physical database shard is exported and the shard cannot be directly imported to the database. You need to manually convert the exported physical shard to a logical one before you import it to the database for business use.When you specify the
--partitionoption on the command line to export data in a partition, you need to specify the name of the subpartition for a composite partitioned table. OBDUMPER cannot export data in a partition of a composite partitioned table. If the specified partition name does not exist, OBDUMPER returns an error.If you specify the
--add-extra-messageoption on the command line to export table definitions, OBDUMPER exports the name of the table group to which each table belongs. This option depends on privileges of thesystenant. If OBDUMPER does not have privileges of thesystenant, do not specify this option.Before you use OBDUMPER & OBLOADER on OceanBase Database V3.2.4 or later, set the system parameter
open_cursorsto a large value. Otherwise, an error may occur during the import or export. After the data is imported or exported, reset the system parameter to the initial value, such asALTER SYSTEM SET open_cursors = 65535;.If the schema of a table has been changed in OceanBase Database V4.0.0 or later, you cannot use OBDUMPER to export the baseline data obtained after the last major compaction. The baseline data is also known as the consistent snapshot data. You can manually initiate a major compaction and then export the most recent baseline data.
When you use OBDUMPER of a version earlier than V4.2.0 to export data from a MySQL tenant of OceanBase Database, the Java Database Connectivity (JDBC) driver converts the zero date and time values in the database into NULL. If a column has a NOT NULL constraint, an error is reported during the export. OBDUMPER V4.2.0 can export zero date and time values, but cannot identify whether the original data is NULL or zero values during export and forcibly converts the data into zero values by default. In addition, exported zero values of the DATETIME and TIMESTAMP data types may be distorted into non-zero approximate values. If the
sql_modevariable in the database is specified with the NO_ZERO_DATE or NO_ZERO_IN_DATE constraint, an error is reported when zero-value data is exported. In a MySQL tenant of OceanBase Database, data types that involve the preceding zero-value issues include DATE, DATETIME, TIME, YEAR, and TIMESTAMP.