迁移 Linux 上的 Oracle 数据库,常见有几种方式,选择取决于:
下面按最常用场景给你讲清楚。
适合:整库迁移、允许短暂停机
rman target /
BACKUP DATABASE PLUS ARCHIVELOG;
scp /backup/* oracle@目标机:/backup/
目标机安装相同版本 Oracle 软件(不建库)
恢复控制文件 + 数据库
rman target /
RESTORE CONTROLFILE FROM '/backup/xxx';
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
✅ 优点:可靠、完整
❌ 缺点:需要相同版本
适合:只迁用户、表空间、数据
expdp system/pwd DIRECTORY=dp_dir DUMPFILE=full.dmp FULL=y
impdp system/pwd DIRECTORY=dp_dir DUMPFILE=full.dmp FULL=y
✅ 优点:灵活、可跨小版本
❌ 缺点:慢、不支持裸迁移 OS 文件
适合:相同版本、相同路径或改路径
⚠️ 不推荐生产环境随便用
步骤:
@?/rdbms/admin/utlrp.sql
✅ 适合核心系统
❌ 成本高、复杂
-- 版本
SELECT * FROM v$version;
-- 字符集
SELECT userenv('LANGUAGE') FROM dual;
-- 表空间
SELECT tablespace_name FROM dba_tablespaces;
| 场景 | 推荐方案 |
|---|---|
| 同版本整库 | RMAN |
| 只迁数据 | Data Pump |
| 大版本升级 | Data Pump |
| 零停机 | DG / GG |
如果你愿意,可以告诉我:
我可以直接给你一步一步的命令脚本。