温馨提示×

怎样迁移linux oracle库

小樊
47
2026-10-10 08:35:03
栏目: 云计算

迁移 Linux 上的 Oracle 数据库,常见有几种方式,选择取决于:

  • 数据量大小
  • 是否跨版本 / 跨平台
  • 是否允许停机
  • 源库和目标库是否同构

下面按最常用场景给你讲清楚。


一、同版本、同平台(Linux → Linux)最常见方案

✅ 方案 1:RMAN 备份恢复(推荐,最稳)

适合:整库迁移、允许短暂停机

步骤概要

  1. 源库做 RMAN 全备
rman target /
BACKUP DATABASE PLUS ARCHIVELOG;
  1. 拷贝备份文件到目标服务器
scp /backup/* oracle@目标机:/backup/
  1. 目标机安装相同版本 Oracle 软件(不建库)

  2. 恢复控制文件 + 数据库

rman target /
RESTORE CONTROLFILE FROM '/backup/xxx';
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;

✅ 优点:可靠、完整
❌ 缺点:需要相同版本


✅ 方案 2:Data Pump(expdp / impdp)

适合:只迁用户、表空间、数据

源库导出

expdp system/pwd DIRECTORY=dp_dir DUMPFILE=full.dmp FULL=y

目标库导入

impdp system/pwd DIRECTORY=dp_dir DUMPFILE=full.dmp FULL=y

✅ 优点:灵活、可跨小版本
❌ 缺点:慢、不支持裸迁移 OS 文件


二、冷拷贝(最快,但最粗暴)

✅ 方案 3:直接拷贝数据文件

适合:相同版本、相同路径或改路径

  1. 源库 shutdown immediate
  2. 拷贝:
    • oracle 软件目录
    • datafile
    • controlfile
    • redo log
  3. 目标机启动

⚠️ 不推荐生产环境随便用


三、跨版本 / 跨平台迁移

✅ 方案 4:Data Pump + 手工处理

  • 11g → 19c
  • 不同 Linux 发行版

步骤:

  1. 源库 expdp
  2. 目标库装新版本
  3. impdp
  4. 处理无效对象
@?/rdbms/admin/utlrp.sql

四、不停机迁移(高级)

✅ 方案 5:DG / Goldengate

  • Data Guard:物理迁移
  • GoldenGate:实时同步

✅ 适合核心系统
❌ 成本高、复杂


五、迁移前必做检查清单 ✅

-- 版本
SELECT * FROM v$version;

-- 字符集
SELECT userenv('LANGUAGE') FROM dual;

-- 表空间
SELECT tablespace_name FROM dba_tablespaces;

六、快速选型建议

场景 推荐方案
同版本整库 RMAN
只迁数据 Data Pump
大版本升级 Data Pump
零停机 DG / GG

如果你愿意,可以告诉我:

  • Oracle 版本(如 11g / 19c)
  • 是否同服务器 / 同版本
  • 数据量
  • 是否可停机

我可以直接给你一步一步的命令脚本。

0 踩