Many developers face this exact scenario: needing Oracle's export/import utilities (exp/imp) for database operations while avoiding the overhead of a full Oracle Server installation. The traditional approach of installing the complete Oracle Database just to get these utilities is unnecessarily resource-intensive.
You actually only need the Oracle Instant Client with the SQL*Plus and Tools packages. Here's the complete solution:
# For CentOS/RHEL 7/8:
wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-sqlplus-19.6.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-tools-19.6.0.0.0-1.x86_64.rpm
sudo yum install -y oracle-instantclient19.6-*.rpm
After installation, set these environment variables in your ~/.bashrc:
export ORACLE_HOME=/usr/lib/oracle/19.6/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
Test your setup with:
exp help=y
imp help=y
This should display the help information for both utilities, confirming they're properly installed.
For newer Oracle versions, consider using Data Pump utilities (expdp/impdp) which require slightly different packages:
wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-precomp-19.6.0.0.0-1.x86_64.rpm
Here's how to perform a basic export operation:
exp username/password@//remote-db:1521/SID file=export.dmp log=export.log owner=SCHEMA_NAME
If you encounter library errors, ensure all dependencies are satisfied:
sudo yum install -y libaio
For connection issues, verify your TNS configuration in $ORACLE_HOME/network/admin/tnsnames.ora
Many DBAs and developers encounter this exact scenario: You need Oracle's traditional export (exp
) and import (imp
) utilities for database migration or backup purposes, but don't want to install the full Oracle Database Server. This is particularly common when:
- Migrating data between environments
- Creating lightweight development setups
- Working with remote Oracle databases
While you've already installed the basic Instant Client packages, the exp/imp utilities require additional components. Here's what you're missing:
oracle-instantclient11.2-tools-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
Here's how to properly set up your CentOS system:
# Install required RPMs sudo yum install oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm sudo yum install oracle-instantclient11.2-tools-11.2.0.3.0-1.x86_64.rpm sudo yum install oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm # Set environment variables echo 'export ORACLE_HOME=/usr/lib/oracle/11.2/client64' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib' >> ~/.bashrc echo 'export PATH=$PATH:$ORACLE_HOME/bin' >> ~/.bashrc source ~/.bashrc
If you prefer not to use exp/imp, consider these alternatives:
- SQL Developer: Oracle's graphical tool with export functionality
- Data Pump (expdp/impdp): More modern alternative (requires additional packages)
- Third-party tools: Like Toad or DbVisualizer
Some frequent problems and their solutions:
Error | Solution |
---|---|
"exp: command not found" | Verify PATH includes ORACLE_HOME/bin |
Library loading errors | Check LD_LIBRARY_PATH configuration |
Version mismatches | Ensure client version matches server |
Basic usage examples:
# Export entire schema exp username/password@remote_db file=export.dmp log=export.log owner=schema_owner # Import with remapping imp username/password@remote_db file=export.dmp log=import.log fromuser=source_schema touser=target_schema
For large databases:
- Use DIRECT=Y parameter for faster exports
- Set BUFFER and RECORDLENGTH parameters appropriately
- Consider splitting large exports into multiple files