FAQ related to products
What are the differences between the files in the SQL and DDL formats?
DDL: A file in the DDL format stores DDL statements. Exported files in the DDL format are named in the format of
objectname-schema.sql.SQL: A file in the SQL format only stores
INSERT SQLstatements. Exported files in the SQL format are named in the format ofobjectname.sql.
What is the relationship between the format of a data file and the extension of the file?
OBDUMPER supports three file formats: CSV, SQL, and DDL. When you use OBDUMPER, you need only to specify the format of the exported data files, without the need to pay attention to the name or extension of the files.
By default, an exported file in the CSV format is named in the format of table name.number.csv , an exported file in the SQL format is named in the format of table name.number.sql , and an exported file in the DDL format is named in the format of table name-schema.sql .
When you use an external tool to export data, make sure that you understand the differences between the CSV, SQL, and DDL formats as well as the naming rules of the exported files.
What are the differences between using OBLOADER in Alibaba Cloud and Private Cloud?
Difference in proxyro permissions:
In Alibaba Cloud (limited mode), you have limited proxyro permissions and can export only table data and the schemas of tables and views.
In Private Cloud (unlimited mode), you have unlimited proxyro permissions and can export the schemas and data of all objects in a database.
Difference in connection methods:
In Alibaba Cloud, OBLOADER is connected by using the
--public-cloudoption.In Private Cloud, OBLOADER is connected by using the
--sys-passwordoption or a key file.Note
The limited mode does not support all features of OBLOADER. In this mode, the performance and stability of OBLOADER are also affected. In addition, only OceanBase Database V2.2.30 and later support throttling on the server. Therefore, when you use the limited mode, run the following command to modify the throttling settings on the server:
alter system set freeze_trigger_percentage=50; alter system set minor_merge_concurrence=64; alter system set writing_throttling_trigger_percentage=80 t
FAQ related to features
How do I run OBLOADER or OBDUMPER in debugging mode?
Run the debugging script, such as obloader-debug and obdumper-debug, in the bin directory.
Why does the control file configured for a table fail to take effect when I import data to or export data from the table?
The name of the control file must be identical to the table name. By default, table names are in lowercase in MySQL mode and in uppercase in Oracle mode.
Why does OBDUMPER not generate an empty data file when it exports an empty table?
By default, OBDUMPER does not use an empty table to generate an empty file. You can specify the --retain-empty-files option to generate an empty file for an empty table.
Why are command-line options not parsed as expected when I run the OBLOADER or OBDUMPER script?
This issue may occur if command-line options contain special characters. If you run OBLOADER or OBDUMPER on a Linux operating system, a greater-than sign (>) in the password may cause the loss of all operational logs. The greater-than sign (>) is a redirection operator. Therefore, you must use appropriate quotation marks to resolve this issue on different operating systems. For more information, see the next question.
When do I need to enclose options in single quotation marks (' ') or double quotation marks (" ") when I run the OBLOADER or OBDUMPER script?
We recommend that you enclose complex options such as passwords and cluster names in quotation marks.
On the Windows operating system, use double quotation marks (" "). Example:
--table "*".On a Linux-like operating system, use single quotation marks (' '). Example:
--table '*'.
What do I need to pay attention to when I export table schemas or data?
If you export the schemas of multiple tables, we recommend that you set the
--threadsoption to a value that is not greater than 4. An excessively high concurrency increases the burden of accessing internal views for thesystenant and causes an export timeout error. In addition, when you enable concurrent threads, the--threadsoption is dynamically adjusted based on the CPU utilization. You can manually specify the number of concurrent threads to control the impact of export on host performance.OBDUMPER may use a large amount of memory when a large amount of data is exported. You can open the OBDUMPER script in the bin directory and modify the following two Java virtual machine (JVM) parameters:
-Xms4Gand-Xmx4G. The -Xms4G parameter specifies the initial heap memory, and the -Xmx4G parameter specifies the maximum heap memory for JVM. We recommend that you set both parameters to 60% of the available physical memory.vim bin/obdumper or vim bin/obloader 50 JAVA_OPTS="$JAVA_OPTS -server -Xms4G -Xmx4G -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M -Xss352K"
FAQ related to errors
What do I do if the following error is reported when I query views: SELECT command denied to user 'xxx'@'%' for table SYS.XXX?
This error is reported because you are not authorized to access internal tables and views. Run the following statement to obtain required permissions: GRANT SELECT SYS.XXX TO xxx;.
What do I do if the following error is reported when I start OBLOADER or OBDUMPER: Access denied for user 'root'@'xxx.xxx.xxx.xxx'?
By default, OBLOADER and OBDUMPER require the permissions of the root user. If you have set a password for the root user under the sys tenant in the cluster, specify the configured password in the --sys-password option in the command.
What do I do if the following error is reported after I use the --query-sql option to specify large query statements for OBDUMPER: Connection reset?
Log on to the sys tenant, and set the client_tcp_user_timeout and server_tcp_user_timeout parameters of OBProxy to 0.
What do I do if the following error is reported when I use OBDUMPER to export data: The target directory: "xxx" is not empty?
To prevent data overwriting, OBDUMPER checks whether the target directory is empty before the export. You can specify the --skip-check-dir option to skip this check.
What do I do if the following error is reported when I use OBDUMPER to export data: Request to read too old versioned data?
This error is reported because the data version on which the current query depends has been recycled. You need to set an UNDO retention period in seconds as needed. Example: set global undo_retention=xxx.