在 Linux 环境下迁移 Oracle 数据库数据,常见做法有几种,取决于你是否迁移整个库、是否跨版本、是否跨服务器。下面按最常用场景给你讲清楚。
rman target /
BACKUP DATABASE PLUS ARCHIVELOG;
scp /backup/* oracle@newhost:/backup/
listener.ora / tnsnames.orarman target /
RESTORE CONTROLFILE FROM '/backup/xxx.ctl';
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
✅ 优点:最安全、可恢复到时间点
❌ 缺点:操作复杂
expdp system/password \
DIRECTORY=dpdir \
SCHEMAS=scott \
DUMPFILE=scott.dmp \
LOG_FILE=exp.log
impdp system/password \
DIRECTORY=dpdir \
REMAP_SCHEMA=scott:scott_new \
DUMPFILE=scott.dmp
✅ 简单高效
❌ 不含物理结构(表空间需提前建)
适合:
步骤简述:
ALTER TABLESPACE users READ ONLY;
expdp ... TRANSPORT_TABLESPACES=users
拷贝 .dbf + dmp
impdp ... TRANSPORT_TABLESPACES=users
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
scp $ORACLE_HOME/dbs/*
scp /u01/oradata/*
⚠ 仅限同版本、同路径或改参数文件
| 场景 | 推荐方式 |
|---|---|
| 整机迁移 | RMAN |
| 迁几个用户 | expdp/impdp |
| 大表迁移 | 表空间传输 |
| 测试环境 | 冷备 |
你可以告诉我:
我可以直接给你可执行的命令清单。