Quick start

2023-10-30 10:05:25  Updated

This topic describes how to have a quick start with OBDUMPER.

Step 1: Download the software

Note

OBLOADER & OBDUMPER are no longer distinguished by the community edition and enterprise edition since V4.2.1. You can download the software package from OceanBase Download Center.

Click here to download the package of the latest version, and decompress the package:

$ unzip ob-loader-dumper-4.2.1-RELEASE.zip
$ cd ob-loader-dumper-4.2.1-RELEASE

Step 2: Configure the running environment

Note

You must install Java 8 and configure the JAVA_HOME environment variable in the local environment. We recommend that you install JDK 1.8.0_3xx or later. For more information about environment configuration, see Prepare the environment.

This step aims to modify JVM parameters.

A small JVM memory size may affect the performance and stability of the import and export features. For example, a full garbage collection (GC) or GC crash may occur. We recommend that you modify the JVM memory size, which is -Xms4G -Xmx4G by default, to 60% of the available memory of the server. If you are good at Java performance tuning, you can modify the JVM parameters in the JAVA_OPTS option as needed.

  1. Edit the configuration file that contains the JAVA_OPTS option.

    • In Linux, edit the obloader and obdumper scripts in the {ob-loader-dumper}/bin/ directory.

    • In Windows, edit the obloader.bat and obdumper.bat scripts in the {ob-loader-dumper}/bin/windows/ directory.

  2. Modify JVM parameters.

    JAVA_OPTS="$JAVA_OPTS -server -Xms4G -Xmx4G -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -Xss352K"
    JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Xnoclassgc -XX:+DisableExplicitGC
    

Step 3: Prepare data

Notice

When you try the export feature of OBDUMPER, you do not need to prepare any data. You can directly go to Step 4.

When you try the import feature of OBLOADER, you can use existing data files or use the TPC-H tool to generate temporary data files. The format of content in the imported file must meet related specifications. Identify the data format in the file based on Is your data ready.

Step 4: Create a database

Notice

When you try the export feature of OBDUMPER, you also need to create tables and insert data into the tables after you create a database.

  1. Deploy an OceanBase cluster by using OceanBase Cloud Platform (OCP) or OceanBase Deployer (OBD).

  2. Create a test database.

  3. Create a test table and insert data into the table. This operation is optional when you import data.

Step 5: Export data

./obdumper -h 'IP address' -P'Port' -u'User' -t'Tenant' -c'Cluster' -p'Password' -D'Database name' --table 'Table name' --csv -f 'File path' --sys-password 'Password of the sys tenant' --skip-check-dir

Note

This example only exports data. For more information, see Command-line options of OBDUMPER.

The following table describes the database information that is used in the examples.

Database information item Example value
Cluster name cluster_a
IP address of the OceanBase Database Proxy (ODP) host xx.x.x.x
ODP port number 2883
Tenant name of the cluster mysql
Name of the root/proxyro user under the sys tenant **u***
Password of the root/proxyro user under the sys tenant ******
User account (with read/write privileges) under the business tenant test
Password of the user under the business tenant ******
Schema name USERA

Export DDL definition files

Scenario: Export all supported object definition statements in the USERA schema to the /output directory. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --ddl --all -f /output

Note

The --sys-user option is used to connect to a user with required privileges in the sys tenant. If the --sys-user option is not specified during the export, the default value --sys-user root takes effect.

Task result example:

...
All Dump Tasks Finished:
---------------------------------------------------
|  No.#  | Type   | Name     | Count   | Status   |  
---------------------------------------------------     
|  1     | TABLE  | table    | 1->1    | SUCCESS  |                
---------------------------------------------------

Total Count: 4          End Time: 2023-04-28 15:32:49
...

Exported content example:

View the table-schema.sql table in the {ob-loader-dumper}/output/data/chz/TABLE directory.

[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat /home/admin/obloaderobdumper/output/data/chz/TABLE/table-schema.sql
create table if not exists `table` (
        `id` int(11) comment 'table id',
        `name` varchar(120) comment 'table name',
        `type` varchar(128) not null default 'COLLABORATION' comment 'organization type, enum values: COLLABORATION, PRIVACY'
)
default charset=gbk
default collate=gbk_chinese_ci;

Export CSV data files

Scenario: Export all table data in the USERA schema to the /output directory in the CSV format. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided. For more information about the CSV data file specifications, see RFC 4180. CSV data files (.csv files) store data in the form of plain text. You can open CSV data files by using a text editor or Excel.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' -f /output

Task result example:

...
All Dump Tasks Finished:
----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------      
|  1     | TABLE  | table      | 4      | SUCCESS  |                
----------------------------------------------------

Total Count: 4          End Time: 2023-04-28 15:32:49
...

Exported content example:

View the table.1.0.csv table in the {ob-loader-dumper}/output/data/chz/TABLE directory.

[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat table.1.0.csv
'id','name','type'
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'

Export SQL data files

Scenario: Export all table data in the USERA schema to the /output directory in the SQL format. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided. SQL data files (.sql files) store INSERT SQL statements. You can open SQL data files by using a text editor or SQL editor.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --sql --table '*' -f /output

Task result example:

...
All Dump Tasks Finished:
----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------      
|  1     | TABLE  | table      | 4      | SUCCESS  |                
----------------------------------------------------

Total Count: 4          End Time: 2023-04-28 15:32:49
...

Exported content example:

View the table.1.0.sql table in the {ob-loader-dumper}/output/data/chz/TABLE directory.

[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat table.1.0.sql
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1001,'xiaoning','COLLABORATION');
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1002,'xiaohong','COLLABORATION');
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1001,'xiaoning','COLLABORATION');
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1002,'xiaohong','COLLABORATION');

Export CUT data files

Scenario: Export all table data in the USERA schema to the /output directory in the CUT format. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided. Specify |@| as the column separator string for the exported data. CUT data files (.dat files) use a character or character string to separate values. You can open CUT data files by using a text editor.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --table '*' -f /output --cut --column-splitter '|@|' --trail-delimiter

Task result example:

...
All Dump Tasks Finished:
----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------       
|  1     | TABLE  | table      | 4      | SUCCESS  |                
----------------------------------------------------

Total Count: 4          End Time: 2023-04-28 15:32:49
...

Exported content example:

View the table.1.0.dat table in the {ob-loader-dumper}/output/data/chz/TABLE directory.

[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat table.1.0.dat
1001|xiaoning|COLLABORATION|
1002|xiaohong|COLLABORATION|
1001|xiaoning|COLLABORATION|
1002|xiaohong|COLLABORATION|

Export data files to Amazon S3

Scenario: Export all table data in the USERA schema to an Amazon S3 bucket in the CSV format.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' --skip-check-dir --upload-behavior 'FAST' -f /output --storage-uri 's3://obloaderdumper/obdumper?region=cn-north-1&access-key=******&secret-key=******'

--storage-uri 's3://obloaderdumper/obdumper?region=cn-north-1&access-key=******&secret-key=******' option is the uniform resource identifier (URI) of the storage space, its components include:

Component Description
s3 The S3 storage scheme.
obloaderdumper The name of the S3 bucket.
/obdumper The data storage path in the S3 bucket.
region=cn-north-1&access-key=******&secret-key=****** The parameters required for the request.
  • region=cn-north-1: The physical location of the S3 bucket.
  • access-key=******: The AccessKey ID of the S3 bucket.
  • secret-key=******: The AccessKey secret of the S3 bucket.

Task result example:

...
All Dump Tasks Finished:

----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------      
|  1     | TABLE  | table      | 3      | SUCCESS  |                
----------------------------------------------------

Total Count: 3          End Time: 2023-05-10 18:46:26
...

Note

The --storage-uri option must be used in combination with the -f option.
OBDUMPER first exports object definitions and table data from OceanBase Database to the path specified in the --f option, and then uploads the object definitions and table data to the S3 bucket specified in the --storage-uri option. After the upload is completed, the data in the path specified in the -f option is automatically deleted.

Export data to Alibaba Cloud OSS

Scenario: Export all table data in the USERA schema to an Alibaba Cloud OSS bucket in the CSV format.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' --skip-check-dir --upload-behavior 'FAST' -f /output --storage-uri 'oss://antsys-oceanbasebackup/backup_obloader_obdumper/obdumper?endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access-key=******&secret-key=******'

--storage-uri 'oss://antsys-oceanbasebackup/backup_obloader_obdumper/obdumper?endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access-key=******&secret-key=******' option is the uniform resource identifier (URI) of the storage space, its components include:

Component Description
oss The OSS storage scheme.
antsys-oceanbasebackup The name of the OSS bucket.
/backup_obloader_obdumper/obdumper The data storage path in the OSS bucket.
endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access-key=******&secret-key=****** The parameters required for the request.
  • endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com: The endpoint of the region where the OSS host resides.
  • access-key=******: The AccessKey ID of the OSS bucket.
  • secret-key=******: The AccessKey secret of the OSS bucket.

Task result example:

...
All Dump Tasks Finished:

----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------      
|  1     | TABLE  | table      | 3      | SUCCESS  |                
----------------------------------------------------

Total Count: 3          End Time: 2023-05-10 18:40:48
...

Note

The --storage-uri option must be used in combination with the --f option.
OBDUMPER first exports object definitions and table data from OceanBase Database to the path specified in the --f option, and then uploads the object definitions and table data to the S3 bucket specified in the --storage-uri option. After the upload is completed, the data in the path specified in the --f option is automatically deleted.

Customize the name of an exported file

Scenario: Export all table data in the USERA schema to the /output directory in the CSV format. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided. Specify the name of the exported file as filetest.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table 'table' --file-name 'filetest.txt' -f /output

Task result example:

...
All Dump Tasks Finished:
----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------      
|  1     | TABLE  | table      | 4      | SUCCESS  |                
----------------------------------------------------

Total Count: 4          End Time: 2023-04-28 15:32:49
...

Exported content example:

View the filetest.txt file in the {ob-loader-dumper}/output/data/chz/TABLE directory.

[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat filetest.txt
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'

Use a control file to export data

Scenario: Export all table data in the USERA schema to the /output directory in the CSV format. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided. Specify /output as the path of the control file for preprocessing the data to be exported.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --table'table' -f /output --csv --ctl-path /output

Note

The table name defined in the database must be in the same letter case as its corresponding control file name. Otherwise, OBLOADER fails to recognize the control file. For more information about the rules for defining control files, see Preprocessing functions.

Export data from specified table columns

Scenario: Export all table data in the USERA schema to the /output directory in the CSV format. For OceanBase Database of a version earlier than 4.0.0, the password of the sys tenant must be provided. Specify the --exclude-column-names option to exclude the columns that do not need to be exported.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA -f /output --table'table' --csv --exclude-column-names 'deptno'

Export the result set of a custom query

Scenario: Export the result set of the query statement specified in the --query-sql option to the /output directory in the CSV format. For OceanBase Database of a version earlier than V4.0.0, the password of the sys tenant must be provided.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA -f /output --csv --query-sql 'select deptno,dname from dept where deptno<3000'

Note

Make sure that the SQL query statement has correct syntax and required query performance.

Export database objects and data to a public cloud

Scenario: When you cannot provide the password of the sys tenant, export all defined database objects and table data in the USERA schema in a public cloud to the /output directory.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** -D USERA --ddl --csv --public-cloud --all -f /output

Export database objects and data to a private cloud

Scenario: When you cannot provide the password of the sys tenant, export all defined database objects and table data in the USERA schema in a private cloud to the /output directory.

Sample code:

$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** -c cluster_a -t mysql -D USERA --ddl --csv --no-sys --all -f /output

Notice

The export of database object definitions may have defects when the password of the sys tenant cannot be provided in a public cloud or private cloud environment. For example, sequence definitions cannot be exported form a MySQL tenant, table group definitions cannot be exported from OceanBase Database of versions earlier than V2.2.70, index definitions cannot be exported from Oracle tenants in OceanBase Database V2.2.30 and earlier, partition information of unique indexes cannot be exported from OceanBase Database of versions earlier than V2.2.70, and unique index definitions of partitioned tables cannot be exported from Oracle tenants in OceanBase Database V2.2.70 to V4.0.0.0.

Step 6: Congratulations

You have had a quick start with OBLOADER & OBDUMPER.

For more information, refer to the following steps:

  • Learn about the operating principles, major features, and differences from other tools of OBLOADER & OBDUMPER from the product introduction. For more information about the tools, see OBLOADER & OBDUMPER.

  • Welcome to join OceanBase community to discuss issues and requirements on import and export and future plans with OceanBase R&D engineers.

Contact Us