rman target /
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/u01/rman/full_%d_%U.bak';
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT '/u01/rman/arch_%d_%U.bak';
BACKUP CURRENT CONTROLFILE FORMAT '/u01/rman/ctl_%d_%U.bak';
RELEASE CHANNEL c1;
}
RESTORE VERIFY ONLY命令检查备份文件的完整性,避免因备份损坏导致迁移失败。ORACLE_HOME、PATH、TNS_ADMIN等环境变量。/u01/app/oracle/dump),并赋予权限:mkdir -p /u01/app/oracle/dump
chown -R oracle:oinstall /u01/app/oracle/dump
chmod -R 777 /u01/app/oracle/dump
CINRAD):SQL> CREATE DIRECTORY dumpdir AS '/u01/app/oracle/dump';
SQL> GRANT READ, WRITE ON DIRECTORY dumpdir TO CINRAD;
expdp CINRAD/cinrad@orcl DIRECTORY=dumpdir DUMPFILE=full_db.dump LOGFILE=expdp_full.log FULL=Y
若数据量较大,可使用PARALLEL参数加速(如PARALLEL=4)。scp或sftp将源服务器的导出文件(如full_db.dump)传输到目标服务器的对应目录:scp /u01/app/oracle/dump/full_db.dump oracle@目标IP:/u01/app/oracle/dump/
/u01/app/oracle/oradata/ORCL)。listener.ora文件(位于$ORACLE_HOME/network/admin),确保监听器监听正确IP和端口(默认1521):LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 目标IP)(PORT = 1521))
)
启动监听器:lsnrctl start
dbca(Database Configuration Assistant)工具创建与源数据库同名的实例(如ORCL),并配置ORACLE_SID环境变量(如export ORACLE_SID=ORCL)。dba_tablespaces视图):SQL> CREATE TABLESPACE CINRAD_DATA DATAFILE '/u01/app/oracle/oradata/ORCL/cinrad_data.dbf' SIZE 10G AUTOEXTEND ON;
SQL> CREATE USER CINRAD IDENTIFIED BY cinrad DEFAULT TABLESPACE CINRAD_DATA TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE TO CINRAD;
impdp CINRAD/cinrad@orcl DIRECTORY=dumpdir DUMPFILE=full_db.dump LOGFILE=impdp_full.log FULL=Y
若需覆盖现有对象,可添加REMAP_SCHEMA(如跨用户迁移)或TABLE_EXISTS_ACTION=REPLACE(替换已有表)参数。NOMOUNT状态:SQL> STARTUP NOMOUNT;
rman target /
RESTORE CONTROLFILE FROM '/u01/app/oracle/dump/ctl_ORCL_01.bak';
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
SQL> ALTER DATABASE OPEN;
dba_tables、dba_views、dba_users等视图,确保表、视图、用户等对象数量一致。sqlplus或第三方工具(如Swingbench)执行典型SQL语句,对比源与目标数据库的响应时间,评估性能差异(若有性能下降,需进行索引优化、参数调优)。$ORACLE_BASE/diag/rdbms/ORCL/ORCL/trace/alert_ORCL.log),确认无错误或警告信息(如ORA-01034、ORA-00600)。lsnrctl status命令确认监听器正在运行,且目标数据库实例已注册(显示“Registered”状态)。SELECT * FROM dba_directories;),确认Oracle用户对目录有读写权限(GRANT READ, WRITE ON DIRECTORY dumpdir TO CINRAD;)。expdp的VERSION参数指定兼容版本(如VERSION=11.2)。SELECT * FROM dba_tablespaces;),若不存在则创建同名表空间,并确保数据文件路径正确。通过以上步骤,可实现Oracle Database在CentOS系统下的安全迁移。迁移前务必进行充分测试,确保数据与业务不受影响。