Oracle Data Pump是Oracle官方提供的高效数据迁移工具,支持跨平台、跨版本迁移,且具备并行处理能力,适用于大多数场景。
登录Oracle数据库(sqlplus / as sysdba),创建用于存放导出文件的逻辑目录(需与Ubuntu本地目录对应):
CREATE OR REPLACE DIRECTORY data_pump_dir AS '/home/oracle/dump_files';
为用户授予目录读写权限(以scott用户为例):
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO scott;
使用expdp命令导出数据(可根据需求调整参数,如schemas指定模式、tables指定表):
expdp scott/tiger@localhost:1521/ORCLCDB schemas=scott directory=data_pump_dir dumpfile=scott_export.dmp logfile=expdp_scott.log
schemas=scott:导出scott模式下的所有对象;dumpfile:导出的.dmp文件名;logfile:导出日志文件名。使用scp命令将导出的.dmp文件复制到目标Ubuntu服务器(假设目标服务器IP为192.168.1.101,目标用户为oracle):
scp -P 22 /home/oracle/dump_files/scott_export.dmp oracle@192.168.1.101:/home/oracle/dump_files/
登录目标数据库,创建与源服务器对应的逻辑目录:
CREATE OR REPLACE DIRECTORY data_pump_dir AS '/home/oracle/dump_files';
为目标用户授予目录权限:
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO scott;
使用impdp命令导入数据(可根据需求调整参数,如remap_schema映射模式、remap_tablespace映射表空间):
impdp scott/tiger@localhost:1521/ORCLCDB schemas=scott directory=data_pump_dir dumpfile=scott_export.dmp logfile=impdp_scott.log
scott模式导入为scott_new),添加remap_schema=scott:scott_new;USERS映射为目标表空间USERS_NEW),添加remap_tablespace=USERS:USERS_NEW。RMAN适用于实例级迁移(如跨平台恢复整个数据库),需确保源与目标服务器的Oracle版本兼容且字节序一致(同为小端或大端)。
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE OPEN READ ONLY;
使用CONVERT DATABASE命令转换数据文件格式(以从Solaris迁移到Ubuntu Linux为例,均是小端,无需转换;若跨字节序需执行转换):
RMAN> CONVERT DATABASE TO PLATFORM 'Linux x86 64-bit'
FORMAT '/tmp/converted_files/%U';
FORMAT:指定转换后文件的存放路径。RMAN> BACKUP DATABASE TO DEVICE TYPE DISK
FORMAT '/tmp/full_backup_%U.bkp';
使用scp命令将备份文件复制到目标服务器:
scp -P 22 oracle@192.168.1.100:/tmp/full_backup_*.bkp /home/oracle/backup/
RMAN> RESTORE CONTROLFILE FROM '/home/oracle/backup/full_backup_01.bkp';
STARTUP NOMOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
若源与目标服务器的Oracle版本、操作系统版本及字节序完全一致,可直接拷贝数据库文件(数据文件、控制文件、重做日志文件),适用于快速迁移。
sudo systemctl stop oracle
使用rsync命令拷贝数据库文件(假设数据库文件存放在/u01/app/oracle/oradata/ORCLCDB):
rsync -avz /u01/app/oracle/oradata/ORCLCDB/ oracle@192.168.1.101:/u01/app/oracle/oradata/ORCLCDB/
sudo systemctl start oracle
登录数据库检查表、数据是否正常。
Navicat是一款图形化管理工具,支持Oracle数据库迁移,操作简便,适合非技术人员。
打开Navicat,点击「工具」→「数据迁移」,选择「Oracle到Oracle」。
填写源数据库和目标数据库的连接信息,测试连接是否成功。
勾选需要迁移的表、视图、存储过程等对象(可全选或自定义)。
点击「开始」按钮,Navicat会自动完成数据迁移,并生成迁移报告。
expdp、RMAN或第三方工具),防止数据丢失;AL32UTF8),避免乱码;