1. 迁移前准备
oracle-instantclient-basic、oracle-instantclient-sqlplus),用于执行expdp/impdp命令;若需图形化操作,可安装Oracle SQL Developer。exp_user),并授予EXP_FULL_DATABASE角色;在目标数据库创建用于导入的用户(如imp_user),并授予IMP_FULL_DATABASE角色及目标表空间的配额。2. 目标数据库初始化
CREATE TABLESPACE app_ts DATAFILE '/u01/oradata/target/app_ts.dbf' SIZE 10G)。3. 数据导出(源数据库)
expdp exp_user/exp_password@source_db directory=data_pump_dir dumpfile=full_export.dmp logfile=exp_full.log full=y 其中,data_pump_dir为源数据库上预先创建的目录对象(CREATE DIRECTORY data_pump_dir AS '/u01/dump'),full=y表示全库导出。4. 数据传输
.dmp文件(如full_export.dmp)和日志文件复制到目标Debian服务器的对应目录(如/u01/dump),可使用scp或FTP工具:scp exp_user@source_ip:/u01/dump/full_export.dmp /u01/dump/ md5sum或sha256sum命令对比源与目标文件的校验值,确保传输无损坏。5. 数据导入(目标数据库)
impdp imp_user/imp_password@target_db directory=data_pump_dir dumpfile=full_export.dmp logfile=imp_full.log full=y 若需转换模式(如源用户为src_user,目标用户为tgt_user),可添加remap_schema=src_user:tgt_user参数;若需覆盖现有对象,添加table_exists_action=replace参数。6. 验证与优化
SELECT * FROM user_indexes WHERE status='VALID')。SGA_TARGET、PGA_AGGREGATE_TARGET);重建索引以提升查询性能(如ALTER INDEX idx_name REBUILD ONLINE)。7. 应用程序切换
tnsnames.ora),指向目标Debian服务器的目标数据库(如jdbc:oracle:thin:@target_ip:1521/target_sid)。lsnrctl stop、sqlplus / as sysdba执行SHUTDOWN IMMEDIATE);启动目标数据库服务(sqlplus / as sysdba执行STARTUP),验证应用程序能否正常连接并访问数据。