温馨提示×

ubuntu oracle如何迁移

小樊
42
2026-10-10 17:18:24
栏目: 云计算

在 Ubuntu 上迁移 Oracle 数据库,常见场景有几种,我先按“最典型”的情况给你讲,再说明不同场景的做法。


一、常见迁移场景

  1. 同版本 Oracle,更换服务器(整机迁移)
  2. 跨版本升级迁移(如 11g → 19c)
  3. 只迁移数据库,不迁移 Oracle 软件
  4. 物理机 → 云 / 虚拟机

二、最推荐:使用 RMAN 迁移(通用、安全)

适用情况

  • 同版本或向上兼容版本
  • 生产环境推荐

步骤概览

1. 源库准备

sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;

RMAN 备份:

rman target /
RMAN> backup database plus archivelog;

把备份文件拷贝到目标机:

scp -r /u01/backup oracle@目标IP:/u01/backup

2. 目标机安装 Oracle

  • 安装 相同版本或更高版本
  • 不创建数据库(只装软件)

3. 恢复数据库

rman target /
RMAN> restore controlfile from '/u01/backup/xxx.ctl';
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open resetlogs;

三、Data Pump 迁移(逻辑迁移)

适用情况

  • 跨版本
  • 只迁移部分用户/表

源库导出

expdp system/password schemas=hr directory=DATA_PUMP_DIR dumpfile=hr.dmp

目标库导入

impdp system/password schemas=hr directory=DATA_PUMP_DIR dumpfile=hr.dmp

四、整盘 / 虚拟机克隆(最快)

如果是:

  • 云服务器
  • 虚拟机

✅ 直接:

  • 关机
  • 打快照
  • 复制磁盘
  • 启动

⚠ 注意:

  • 主机名、IP 可改
  • Oracle 不依赖 IP(除非监听写死)

五、Ubuntu 特有注意事项

  1. Oracle 官方不支持 Ubuntu
    • 实际可用,但需手动处理依赖
  2. 检查:
    /etc/oratab
    $ORACLE_HOME/bin/dbstart
    listener.ora
    
  3. 开机自启:
    systemctl enable oracle
    

六、我可以进一步帮你

你可以告诉我:

  • Oracle 版本(11g / 12c / 19c?)
  • 是否同版本?
  • 是否生产环境?
  • 物理机 / 云?

我可以直接给你一步一步的命令方案。

0 踩