Q: How do I solve an out-of-memory (OOM) error when I use OBDUMPER to export data?
A: First, modify the memory parameter for the Java Virtual Machine (JVM) in the obdumper script stored in the bin/ directory. Then, check whether an OpenJDK garbage collection (GC) bug occurs.
Q: How do I run OBDUMPER in debugging mode for troubleshooting?
A: Run the debugging script in the bin directory, for example, obdumper-debug.
Q: Why does the control file configured for a table fail to take effect when I export data from the table?
A: The name of the control file must be identical to the table name. By default, table names are in lowercase in MySQL compatible mode of OceanBase Database and in uppercase in Oracle compatible mode.
Q: Why does OBDUMPER not generate an empty data file when it exports an empty table?
A: By default, OBDUMPER does not generate an empty data file for an empty table. You can specify the --retain-empty-files option to generate an empty data file for an empty table.
Q: Why are command-line options not parsed as expected when I run the OBDUMPER script?
A: This issue may occur if command-line option values contain special characters. If you run OBDUMPER in Linux, a greater-than sign (>) in the password may cause the loss of runtime logs. This is because the greater-than sign (>) is a redirection operator. Therefore, you must use appropriate quotation marks to resolve this issue on different OS platforms.
Q: When OBDUMPER exports data, why do sec.avg and min.avg indicate similar export speeds?
A: sec.avg indicates the global average speed in seconds, and min.avg indicates the average speed in the last minute, in seconds.
Q: In Oracle compatible mode of OceanBase Database, OBDUMPER exports duplicate data when the primary key name and index name of a table are the same. What can I do?
A: Do not create multiple constraints with the same name on a table. If a table contains a unique index with the same name as the primary key, you can delete the unique index and create another one with a different name. For more information, see Overview.
Q: How do I customize log file names for an export job?
A: You can customize log file names in the log4j2.xml file stored in the {ob-loader-dumper}/conf/ directory. As shown in the following figure, you can modify the following names under the Routing tag:

ob-loader-dumper.infofor INFO logs underInfoRoutingAppenderob-loader-dumper.warnfor WARN logs underWarnRoutingAppenderob-loader-dumper.errorfor ERROR logs underErrorRoutingAppender
Note
If you modify ob-loader-dumper.info, ob-loader-dumper.warn, and ob-loader-dumper.error to the same name, all logs are generated in the same file.
Q: What do I do when no response is returned during log output in the console?
A: This issue may occur if log output is suspended or terminated in the console. Troubleshoot the issue as follows:
Open the log configuration file
log4j2.xmlstored in the{ob-loader-dumper}/conf/directory and find the following configurations:<Logger name="com.oceanbase.tools.loaddump" additivity="false" level="INFO"> <AppenderRef ref="ConsoleAppender"/> <AppenderRef ref="InfoRoutingAppender"/> <AppenderRef ref="WarnRoutingAppender"/> <AppenderRef ref="ErrorRoutingAppender"/> </Logger>Delete
<AppenderRef ref="ConsoleAppender"/>and try again.
Q: What do I do if the Connection reset error is returned after I use the --query-sql option to specify large query statements for OBDUMPER?
A: Log in to the sys tenant and set OceanBase Database Proxy (ODP) parameters client_tcp_user_timeout and server_tcp_user_timeout to 0.
Q: What do I do if the following error is reported when I start OBDUMPER: Access denied for user 'root'@'xxx.xxx.xxx.xxx'?
A: By default, OBDUMPER requires the privileges of the root@sys user. If a password has been specified in the cluster for the root@sys user, set the value of the --sys-password option to the specified password.
Q: What do I do if the following error is reported when OBDUMPER is running: The target directory: "xxx" is not empty?
A: To avoid overwriting data, OBDUMPER checks whether the output directory is empty before it exports data. You can specify the --skip-check-dir option to skip the check.
Q: What do I do if the following error is reported when OBDUMPER is running: Request to read too old versioned data?
A: The data version that the current query depends on has been recycled. You need to set an UNDO retention period based on the query.
For example, you can execute set global undo_retention=xxx in OceanBase Database of a version earlier than V4.0.0-BP1, or alter system set undo_retention=xxxx; in OceanBase Database of a version later than V4.0.0-BP1. The default unit for the parameter is seconds.
Q: What do I do if OBDUMPER reports the ChunkServer out of disk space error?
A: This error is reported because the _temporary_file_io_area_size parameter is set to a small value, which results in memory overflow. You can modify the parameter to resolve this issue.
For example, execute the SELECT * FROM oceanbase.__all_virtual_sys_parameter_stat WHERE name='_temporary_file_io_area_size'; statement to query the value of the _temporary_file_io_area_size parameter, and execute the ALTER SYSTEM SET _temporary_file_io_area_size = 20; statement to modify the value of this parameter.
Q: What do I do if the following error is reported when I query a view in OBDUMPER: SELECT command denied to user 'xxx'@'%' for table SYS.XXX?
A: The account you used does not have the privilege to query internal tables or views. Execute the GRANT SELECT SYS.XXX TO xxx; statement to grant the privilege to this account.
Q: What do I do when OBDUMPER returns the error Not supported feature or function?
A: Some features are not supported for OceanBase Database of earlier versions. When you use OceanBase Database V2.2 or earlier, set the Java DataBase Connectivity (JDBC) parameter useServerPrepStmt to false in the configuration file session.config.json stored in the {ob-loader-dumper}/conf/ directory, and delete the set session sql_mode = xxx statement under the init_sql.mysql tag of the configuration file.