环境检查与兼容性验证
SELECT parameter, value FROM nls_database_parameters WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');查询源库字符集,目标库需保持一致,否则需提前转换)。expdp/impdp)、scp/sftp(用于文件传输)。备份源数据库
rman target /
BACKUP DATABASE FORMAT '/backup/%U.bak' PLUS ARCHIVELOG;
BACKUP CURRENT CONTROLFILE;
expdp导出关键业务数据(如用户schema),作为辅助备份:expdp username/password@source_db schemas=your_schema directory=data_pump_dir dumpfile=export.dmp logfile=export.log
checksum(如md5sum backup_file.bak),并尝试在测试环境恢复。Data Pump是Oracle官方推荐的高效迁移工具,支持增量迁移、并行导出/导入,适用于同版本或跨小版本迁移。
CREATE OR REPLACE DIRECTORY data_pump_dir AS '/u01/app/oracle/data_pump';
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO your_schema;
tables、query等参数,如仅导出特定表):expdp username/password@source_db schemas=your_schema directory=data_pump_dir dumpfile=export.dmp logfile=export.log
scp命令将.dmp文件和日志文件复制到目标服务器的对应目录:scp username@source_server:/u01/app/oracle/data_pump/export.dmp /u01/app/oracle/data_pump/
scp username@source_server:/u01/app/oracle/data_pump/export.log /u01/app/oracle/data_pump/
expdp导出的catalog.sql或手动创建):CREATE TABLESPACE your_tablespace DATAFILE '/u01/app/oracle/oradata/target_db/your_tablespace.dbf' SIZE 100M AUTOEXTEND ON;
CREATE USER your_schema IDENTIFIED BY password DEFAULT TABLESPACE your_tablespace QUOTA UNLIMITED ON your_tablespace;
GRANT CONNECT, RESOURCE TO your_schema;
CREATE OR REPLACE DIRECTORY data_pump_dir AS '/u01/app/oracle/data_pump';
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO your_schema;
impdp命令导入数据(可添加TABLE_EXISTS_ACTION=APPEND参数避免表重复错误):impdp username/password@target_db schemas=your_schema directory=data_pump_dir dumpfile=export.dmp logfile=import.log
SELECT COUNT(*) FROM your_table;)与源库一致。USER_CONSTRAINTS、USER_INDEXES视图)。若源服务器与目标服务器均为Linux系统(同字节序),且需迁移整个数据库实例,可采用物理文件迁移方式,步骤更简洁。
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
rsync或scp复制数据文件、控制文件、重做日志文件、参数文件(init<SID>.ora或spfile<SID>.ora)到目标服务器的对应目录(如/u01/app/oracle/oradata/target_db/)。control_files、db_create_file_dest、log_archive_dest等参数,指向目标服务器的新路径:control_files = ('/u01/app/oracle/oradata/target_db/control01.ctl', '/u01/app/oracle/oradata/target_db/control02.ctl')
db_create_file_dest = '/u01/app/oracle/oradata/target_db'
ALTER DATABASE OPEN;
性能调优
SGA_TARGET、PGA_AGGREGATE_TARGET),根据服务器配置优化(如SGA_TARGET=物理内存的70%)。ALTER INDEX your_index REBUILD ONLINE;提升查询性能)。DBMS_STATS.GATHER_SCHEMA_STATS收集表、索引的统计信息,帮助优化器生成更优执行计划)。应用切换
tnsnames.ora中的HOST、PORT指向目标服务器,或直接修改JDBC/ODBC连接字符串)。AWR报告分析潜在瓶颈。READ ONLY模式或锁表),确保导出/导入的数据同步。.dmp文件)时,建议使用scp -C(压缩传输)或rsync(增量传输),避免中断。DBMS_TDB.CHECK_DB验证数据库是否支持传输(如字符集、平台特性);使用SELECT platform_name, endian_format FROM v$transportable_platform;确认源与目标平台的字节序是否一致。