如何在Ubuntu上迁移Oracle数据
在Ubuntu系统上迁移Oracle数据库,需根据数据量、版本兼容性及环境需求选择合适方法。常见方法包括Oracle Data Pump(expdp/impdp)、RMAN转换数据库、直接拷贝数据库文件及第三方工具(如Navicat),以下是详细步骤及注意事项:
expdp导出或RMAN备份),防止数据丢失。expdp/impdp,需在Ubuntu上安装对应版本的Oracle Instant Client,并配置PATH、LD_LIBRARY_PATH等环境变量。Data Pump是Oracle官方推荐的高效迁移工具,支持大数据量、增量迁移及并行处理。
sqlplus / as sysdba),创建用于存放导出文件的逻辑目录(需与Ubuntu物理路径对应):CREATE OR REPLACE DIRECTORY tmpDir AS '/home/oracle/export_temp';
expdp命令导出指定对象(如dbTest schema),生成.dmp文件:expdp username/password@localhost:1521/ORCL schemas=dbTest directory=tmpDir dumpfile=export_ubuntu.dmp logfile=expdp_ubuntu.log
scp将.dmp文件复制到目标Ubuntu服务器(假设目标IP为192.168.1.101):scp -P 22 /home/oracle/export_temp/export_ubuntu.dmp oracle@192.168.1.101:/home/oracle/import_temp
CREATE OR REPLACE DIRECTORY tmpDir AS '/home/oracle/import_temp';
impdp命令将.dmp文件导入目标数据库,可通过REMAP_TABLESPACE调整表空间(若目标表空间名称不同):impdp username/password@localhost:1521/ORCL schemas=dbTest directory=tmpDir dumpfile=export_ubuntu.dmp logfile=impdp_ubuntu.log remap_tablespace=SOURCE_TS:TARGET_TS
SELECT COUNT(*)确认数据完整性。若源与目标Ubuntu系统的Oracle数据库版本或平台(如x86→ARM)不同,需使用RMAN转换数据库格式。
-- 开启归档模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- 执行全备
rman target /
RMAN> BACKUP DATABASE FORMAT '/home/oracle/backup/full_%U.bkp';
RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/home/oracle/backup/controlfile.bkp';
CONVERT DATABASE命令转换为目标平台格式(需提前查询目标平台的V$TRANSPORTABLE_PLATFORM):rman target /
RMAN> CONVERT DATABASE TRANSPORT SCRIPT '/home/oracle/convert/crdb.sql' NEW DATABASE 'ubuntu_target' FORMAT '/home/oracle/convert/%U';
crdb.sql脚本(该脚本会重新创建控制文件、数据文件等):sqlplus / as sysdba @/home/oracle/convert/crdb.sql
rman target /
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
若源与目标Ubuntu系统的Oracle版本、操作系统位数(如均为64位)及字符集完全一致,可直接拷贝数据库文件(数据文件、控制文件、重做日志文件)。
sudo systemctl stop oracle
rsync或scp拷贝$ORACLE_BASE/oradata目录下的所有文件到目标服务器:rsync -avz /home/oracle/oradata/ oracle@192.168.1.101:/home/oracle/oradata/
$ORACLE_SID环境变量(与源服务器一致),启动Oracle服务:export ORACLE_SID=ORCL
sqlplus / as sysdba
SQL> STARTUP;
Navicat等图形化管理工具提供直观的迁移向导,适合不熟悉命令行的用户。
AWR或ASH报告分析目标数据库的性能(如查询响应时间、锁等待)。注意事项:
FLASHBACK DATABASE确保数据一致性)。CREATE DATABASE ... CHARACTER SET AL32UTF8)。