首页主机资讯Oracle数据库如何在Ubuntu上迁移

Oracle数据库如何在Ubuntu上迁移

时间2025-11-27 12:33:04发布访客分类主机资讯浏览320
导读:Ubuntu 上 Oracle 数据库迁移实操指南 一、迁移方案总览与选择 Data Pump 逻辑迁移(expdp/impdp):适合跨小版本/跨平台、只迁移部分Schema/表或做版本升级;停机时间短,操作灵活。 RMAN 跨平台传输...

Ubuntu 上 Oracle 数据库迁移实操指南

一、迁移方案总览与选择

  • Data Pump 逻辑迁移(expdp/impdp):适合跨小版本/跨平台、只迁移部分Schema/表或做版本升级;停机时间短,操作灵活。
  • RMAN 跨平台传输(CONVERT DATABASE):适合整库迁移到不同平台(如 Linux x86-64 → Linux x86-64),保持DBID一致,切换过程可控。
  • 传统导出导入(exp/imp):兼容老版本,功能有限,适合小数据量或兼容性要求不高的场景。
  • 图形化工具(如 Navicat):便于少量对象/数据迁移或做预迁移评估,不建议承载整库。
    以上方法在 Ubuntu 上均可实施,选择取决于停机窗口、数据量、平台差异与版本兼容性。

二、Data Pump 逻辑迁移步骤(推荐)

  • 源库准备
    1. 切换到 oracle 用户并登录:
      su - oracle
      sqlplus / as sysdba
    2. 创建目录对象(指向服务器本地可写目录):
      create or replace directory tmpDir as ‘/opt/oracle/dump’;
      grant read, write on directory tmpDir to system;
    3. 导出(示例按 Schema):
      expdp system/YourPass@//source_ip:1521/XE schemas=SCOTT directory=tmpDir dumpfile=scott.dmp logfile=expdp_scott.log parallel=2
  • 传输文件
    scp -P 22 /opt/oracle/dump/scott.dmp ubuntu@target_ip:/opt/oracle/dump/
  • 目标库准备
    1. 安装并启动 Oracle(Ubuntu 可用 XE 21c 等),创建同名 Schema/用户 与默认表空间(若需)。
    2. 创建目录对象并授权:
      create or replace directory tmpDir as ‘/opt/oracle/dump’;
      grant read, write on directory tmpDir to system;
    3. 导入(示例):
      impdp system/YourPass@//target_ip:1521/XE schemas=SCOTT directory=tmpDir dumpfile=scott.dmp logfile=impdp_scott.log parallel=2 table_exists_action=replace
  • 常用参数
    • 按表导出:tables=EMP,DEPT
    • 重映射:remap_schema=SCOTT:SCOTT_NEW remap_tablespace=USERS:USERS_NEW
    • 网络链路直传(无需落地文件):network_link=src_db_link

三、RMAN 跨平台整库迁移步骤

  • 源库准备
    1. 只读打开数据库:
      startup mount;
      alter database open read only;
    2. 使用 RMAN 转换数据库到目标平台格式(Linux x86-64 示例):
      rman target /
      RMAN> CONVERT DATABASE NEW_DATABASE TO PLATFORM ‘Linux x86 64-bit’
      FORMAT ‘/tmp/rman_conv/%U’;
    3. 传输生成的文件至目标主机(含数据文件、控制文件脚本等)。
  • 目标库启动与建库
    1. 在目标主机以 nomount 启动:
      sqlplus / as sysdba
      startup nomount;
    2. 执行生成的建库脚本(通常名为 crdb.sql 或类似),完成控制文件创建与数据文件恢复。
    3. 打开数据库并检查平台/字符集:
      alter database open;
      select platform_name, open_mode from v$database;
  • 适用说明
    • 适合整库迁移;转换过程会处理字节序/平台差异
    • 若仅迁移部分业务,优先使用 Data Pump

四、迁移前后关键检查与常见问题

  • 兼容性核对
    • 字符集:select * from nls_database_parameters where parameter=‘NLS_CHARACTERSET’; (尽量保持一致)
    • 版本与补丁:源/目标库版本差异尽量小,导入前在测试环境验证。
  • 对象与权限
    • 统计信息:导入后执行 exec dbms_stats.gather_schema_stats(ownname=> ‘SCOTT’, estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE);
    • 作业/链接/同义词:检查 dbms_scheduler_jobs、dblink、public synonym 等依赖。
  • 目录与权限
    • 确保 Oracle 目录对象指向的操作系统目录存在且 oracle:oinstall 可写。
  • 资源与性能
    • 大表导入建议设置 parallel、合理 tablespaceundo/redo 参数,分批提交减少回滚压力。
  • 回退预案
    • 保留源库全备与导出文件;导入异常可快速回切业务。

五、在 Ubuntu 上部署 Oracle 以便承接迁移

  • 环境建议
    • Ubuntu 20.04 LTS 64 位、内存≥8GB、磁盘≥50GB(生产更高规格)。
  • 安装要点(以 XE 21c 为例)
    1. 安装依赖:sudo apt update & & sudo apt install -y alien libaio1 unixodbc vim unzip build-essential
    2. 下载 Oracle XE RPM,转换为 DEB:
      sudo alien -d oracle-database-xe-21c-.rpm
      sudo dpkg -i oracle-database-xe-21c_
      .deb
      sudo apt --fix-broken install(如有依赖错误)
    3. 初始化数据库:sudo /etc/init.d/oracle-xe-21c configure(设置 1521/5500 端口与 SYS/SYSTEM 密码)
    4. 配置环境变量:
      echo ‘export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE’ > > ~/.bashrc
      echo ‘export ORACLE_SID=XE’ > > ~/.bashrc
      echo ‘export PATH=$PATH:$ORACLE_HOME/bin’ > > ~/.bashrc
      echo ‘export LD_LIBRARY_PATH=$ORACLE_HOME/lib’ > > ~/.bashrc
      source ~/.bashrc
    5. 登录验证:sqlplus system/YourPass@XE
  • 注意
    • Ubuntu 非官方主推平台,生产环境建议使用 Oracle Linux/Red HatXE 有资源上限(如 2 CPU/2GB 内存/12GB 用户数据)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle数据库如何在Ubuntu上迁移
本文地址: https://pptw.com/jishu/757775.html
Ubuntu上Oracle如何实现高可用 Debian SecureCRT脚本编写入门

游客 回复需填写必要信息