Skip to content

Oracle

Oracle#

The error message 'ORA-01652 unable to extend temp segment by 128 in tablespace TEMP' is printed.#

Cause#

This error is caused by a lack of Oracle's temporary tablespace space during large-volume query processing.

Solution#

The temporary table space for the connected user must be extended.

During the Run step, error message 'Fetch data from source database has been failed. Stream has already been closed' is printed and migration of some data is failed.#

Cause#

Tables containing LONG or LONG RAW and LOB columns can cause problems during data migration. Below is an excerpt from the Oracle JDBC Developer's Guide.

12 Java Streams in JDBC - Streaming LONG or LONG RAW Columns

Because the column data remains in the communications channel, the streaming mode interferes with all other use of the connection. Any use of the connection, other than reading the column data, will discard the column data from the channel.

In Oracle, data transmission of a LONG or LONG RAW column is done through a stream. If stream of other data types also is transmitted through the same connection, the data transmission can be interrupted. This means that if a LONG or LONG RAW column and a LOB column are in the same table, it cannot guarantee that the data in the table will succeed. For this reason, Oracle does not recommend using this configuration.

Solution#

The table cannot be migrated via the Migration Center.

When you start the Reconcile step, the error message 'Unable to find any volatile tablespace to store temporary tables in the destination database' is displayed.#

Cause#

If there is a global temporary table among the list of migration objects of the source database, Oracle, a volatile tablespace must exist in the target database, Altibase. Oracle's global temporary tables are migrated to Altibase's temporary tables, and Altibase's temporary tables can only be stored in volatile tablespaces. (Refer to the manual: SQL Reference - 3. Data Definition Language - CREATE TABLE - Description - Restrictions on temporary tables)

When performing the Reconcile step, the Migration Center takes a list of Altibase tablespaces that the user can access and tries to map tablespaces and tables between databases. At this time, this error occurs when there is no accessible volatile tablespace in Altibase to be mapped for a global temporary table in Oracle.

Solution#

Create a volatile tablespace in the target database, Altibase, grant access privileges, and then perform the reconcile step again.

SQLException: Protocol violation occurs during data migration.#

Cause#

An OOM error occurred during communication and it was lost, and a protocol violation error was returned.

Solution#

Increase the maximum memory size that the program can use.

  1. Open the executable file (migcenter.bat or migcenter.sh) with an editor.
  2. Modify the value of option '-Xmx', which determines the maximum heap size in the JVM, than the existing value.

References:#

Various SQLExceptions can occur after an OutOfMemoryError occurs during data migration.#

During a large amount of data migration, there are several cases in which there are multiple SQLException related to fetch or bind in Oracle. In this case, if only one of the tables is successful in table mode, the error caused by OOM can be suspected.

Caused by: java.sql.SQLException: Fail to convert to internal representation
at oracle.jdbc.driver.CharCommonAccessor.getBigDecimal(CharCommonAccessor.java:414)

Invalid column type: getCLOB not implemented for class oracle.jdbc.driver.T4CVarcharAccessor

Cause#

Various malfunctions are possible after the OOM occurs inside the Oracle JDBC driver.

Solution#

Refer to OutOfMemoryError in the Common section.

NullPointerException may occur during the build step.#

When the source database is Oracle 9i, 10, the following NullPointerException may occur during the build step due to Oracle JDBC driver compatibility error:

Fail to retrieve Source DDL: java.lang.NullPointerException
at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:1046)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1047)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1207)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3608)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3652)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1207)
at com.altibase.migLib.meta.SrcDbMeta_Oracle_9_0_0_0.getSrcDdlDbmsMetaData(SrcDbMeta_Oracle_9_0_0_0.java:2251)

Cause#

Oracle JDBC Driver compatibility issues

Solution#

Replace the JDBC driver file for Oracle in MigrationCenter with the JDBC driver file for your Oracle DBMS.