Oracle
Oracle is supported as a source database in MigratorXpress. It supports both thin and thick client modes and uses Rowid-based parallel transfers for large tables.
Connection Parameters
| Parameter | Required | Description |
|---|---|---|
ds_type | Yes | Must be "oracle" |
auth_mode | Yes | Must be "classic" (the only mode supported for Oracle) |
username | Yes | Oracle username |
password | Yes | Oracle password |
server | Yes | Hostname or IP address |
port | Yes | Port number, as a JSON integer (usually 1521) |
database | Yes | Service name (connections use service_name; SIDs are not supported) |
lib_dir | No | Oracle Instant Client directory (thick mode only) |
Thin vs Thick Mode
Thin Mode (Recommended):
- No Oracle client libraries required on the machine running MigratorXpress.
- Requires Oracle 12.1 or later.
- Omit the
lib_dirparameter.
Thick Mode:
- Required for Oracle 11.2 and earlier.
- Requires Oracle Instant Client installed locally.
- Set
lib_dirto the Instant Client directory path.
Required Permissions
Grant SELECT_CATALOG_ROLE to enable parallel Rowid-based transfers and metadata discovery:
-- As Oracle DBA (e.g., sys as sysdba)
GRANT SELECT_CATALOG_ROLE TO your_username;
This role provides access to data dictionary views needed for Rowid range partitioning and transfer method selection.
Example: Thin Mode
{
"oracle_prod": {
"ds_type": "oracle",
"auth_mode": "classic",
"info": {
"username": "migrator",
"password": "********",
"server": "oracle-prod.company.com",
"port": 1521,
"database": "PRODPDB"
}
}
}
Example: Thick Mode
{
"oracle_legacy": {
"ds_type": "oracle",
"auth_mode": "classic",
"info": {
"username": "migrator",
"password": "********",
"server": "oracle-11g.company.com",
"port": 1521,
"database": "LEGACY",
"lib_dir": "/opt/oracle/instantclient_19_8"
}
}
}
Troubleshooting
ORA-12154: TNS could not resolve connect identifier:
Verify the service name in the database field (MigratorXpress connects with host:port/service_name, so TNS aliases from tnsnames.ora are not used). Try using the IP address instead of the hostname and confirm the Oracle listener is running (lsnrctl status).
ORA-28000: account is locked:
ALTER USER your_username ACCOUNT UNLOCK;
Thick mode library not found:
Verify that the lib_dir path exists and contains the Instant Client shared libraries. Confirm Oracle Instant Client is installed and check file permissions. On Linux, you may also need to set LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_8:$LD_LIBRARY_PATH
See Also
- Database Connections Overview -- Auth file format and security best practices