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 bin/obdumper script. 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, you can run obdumper-debug.
Q: Why does the control file configured for a table fail to take effect when I import data to or 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 mode and in uppercase in Oracle 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 on Linux OS, a greater-than sign (>) in the password may cause the loss of all operational logs. This is because the greater-than sign (>) is a redirection operator. Therefore, you must use appropriate quotation marks on different OS platforms to resolve this issue.
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 of the last minute in seconds.
Q: In Oracle 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 the log file names for an export task?
A: You can customize the log file names in the {ob-loader-dumper}/conf/log4j2.xml file. As shown in the following figure, you can modify the following names in the Routing tag:
ob-loader-dumper.infofor INFO logs inInfoRoutingAppenderob-loader-dumper.warnfor WARN logs inWarnRoutingAppenderob-loader-dumper.errorfor ERROR logs inErrorRoutingAppender
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 if the Connection reset error is reported after I use the --query-sql option to specify large query statements for OBDUMPER?
A: Log on to the sys tenant, and set the client_tcp_user_timeout and server_tcp_user_timeout parameters of OceanBase Database Proxy (ODP) 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 you have set a password for the root@sys user in the cluster, specify the password in the --sys-password option in the command.
Q: What do I do if the following error is reported when OBDUMPER is running: The target directory: "xxx" is not empty?
A: To prevent data overwriting, OBDUMPER checks whether the destination directory is empty before data export. You can specify the --skip-check-dir option to skip this 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 the set global undo_retention=xxx statement. The default unit is second.
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, you can query the _temporary_file_io_area_size parameter by executing the SELECT * FROM oceanbase.__all_virtual_sys_parameter_stat WHERE name='_temporary_file_io_area_size'; statement, and then modify the parameter by executing the ALTER SYSTEM SET _temporary_file_io_area_size = 20; statement.
Q: What do I do if the following error is reported when I query a view on OBDUMPER: SELECT command denied to user 'xxx'@'%' for table SYS.XXX?
A: This error is reported because you are not authorized to access internal tables or views. Execute the following statement to grant required privileges: GRANT SELECT SYS.XXX TO xxx;.