首页主机资讯centos sqlplus数据库迁移步骤

centos sqlplus数据库迁移步骤

时间2025-11-26 17:00:05发布访客分类主机资讯浏览461
导读:CentOS 下使用 SQL*Plus 的 Oracle 数据库迁移步骤 一 方案总览与准备 迁移方式选型 逻辑迁移:使用 Data Pump(expdp/impdp) 或传统 exp/imp,适合跨版本、跨平台、只迁部分用户/表等场景...

CentOS 下使用 SQL*Plus 的 Oracle 数据库迁移步骤

一 方案总览与准备

  • 迁移方式选型
    • 逻辑迁移:使用 Data Pump(expdp/impdp) 或传统 exp/imp,适合跨版本、跨平台、只迁部分用户/表等场景。
    • 物理迁移:使用 RMAN 做全库备份恢复,适合同平台/相近版本、需要最小停机时间的场景。
    • 持续同步:使用 GoldenGate/OGG 做在线迁移与双活过渡。
  • 环境准备
    • 源端与目标端均安装 Oracle 数据库 与网络连通(监听端口一般为 1521)。
    • 准备存放 DMP 文件的目录,并在数据库中创建 DIRECTORY 对象(expdp/impdp 依赖该对象)。
    • 核对两端 版本、字符集、NLS、时区、表空间/用户配额 等兼容性。
    • 全量备份源库,明确回滚方案与停机窗口。

二 逻辑迁移步骤(expdp/impdp,推荐)

  • 源库准备
    • 以管理员登录:sqlplus / as sysdba
    • 创建目录对象并授权(示例目录:/u01/dump):
      • CREATE OR REPLACE DIRECTORY dump_dir AS ‘/u01/dump’;
      • GRANT READ, WRITE ON DIRECTORY dump_dir TO 迁移用户;
    • 按需导出(示例按用户导出):
      • expdp 用户名/密码@//主机:端口/服务名 SCHEMAS=用户名 DIRECTORY=dump_dir DUMPFILE=export.dmp LOGFILE=export.log PARALLEL=2
  • 传输文件
    • scp /u01/dump/export.dmp 目标主机:/u01/dump/
  • 目标库准备
    • 创建同名用户与表空间(如不存在),并授予配额:
      • CREATE TABLESPACE tbs_data DATAFILE ‘/u01/app/oracle/oradata/ORCL/tbs_data01.dbf’ SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
      • CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE tbs_data;
      • GRANT CONNECT, RESOURCE TO 用户名;
      • ALTER USER 用户名 QUOTA UNLIMITED ON tbs_data;
    • 如跨版本/跨平台,导入时可用 REMAP_SCHEMA、REMAP_TABLESPACE、TRANSFORM 等参数适配对象与存储。
  • 目标库导入
    • 以管理员登录:sqlplus / as sysdba
    • 确认目录对象存在并授权,执行导入:
      • impdp 用户名/密码@//主机:端口/服务名 DIRECTORY=dump_dir DUMPFILE=export.dmp LOGFILE=import.log REMAP_SCHEMA=源用户:目标用户 REMAP_TABLESPACE=源表空间:目标表空间
  • 校验
    • 对比行数、主键/唯一约束、索引/视图/存储过程有效性、无效对象数量等。

三 逻辑迁移步骤(exp/imp,传统方式)

  • 源库导出(在操作系统命令行执行,非 sqlplus 内)
    • 按用户:exp 用户名/密码@//主机:端口/服务名 file=export.dmp log=export.log owner=用户名
    • 按表:exp 用户名/密码@//主机:端口/服务名 file=export.dmp log=export.log tables=(T1,T2)
    • 全库:exp 用户名/密码@//主机:端口/服务名 file=export.dmp log=export.log full=y
  • 传输文件
    • scp export.dmp 目标主机:/u01/dump/
  • 目标库导入(操作系统命令行执行)
    • 按用户:imp 用户名/密码@//主机:端口/服务名 file=export.dmp log=import.log fromuser=源用户 touser=目标用户
    • 按表:imp 用户名/密码@//主机:端口/服务名 file=export.dmp log=import.log tables=(T1,T2) ignore=y
  • 校验
    • 校验对象存在性与数据一致性。

四 物理迁移步骤(RMAN,适合同平台/相近版本)

  • 源库备份
    • rman target /
    • RUN { ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT ‘/u01/backup/%T_%U’; BACKUP DATABASE PLUS ARCHIVELOG; BACKUP CURRENT CONTROLFILE FORMAT ‘/u01/backup/%T_CTL_%U’; BACKUP SPFILE FORMAT ‘/u01/backup/%T_SPFILE_%U’; RELEASE CHANNEL c1; }
  • 目标库恢复
    • 安装同版本 Oracle 软件,创建必要目录(如 adump、bdump、cdump、udump、FRA 等)。
    • 将备份文件拷贝至目标端相同路径(或使用 RMAN CATALOG 注册备份)。
    • 启动到 NOMOUNT,恢复 SPFILE 与控制文件,再 MOUNT 恢复数据文件,最后 OPEN RESETLOGS。
    • 如数据文件路径变化,使用 DB_FILE_NAME_CONVERT/LOG_FILE_NAME_CONVERT 参数或 SET NEWNAME 进行转换。

五 校验与常见问题

  • 校验清单
    • 数据量:对比源/目标关键表的 COUNT(*)、SUM() 等聚合值。
    • 约束与索引:检查主键/外键/唯一约束、索引状态(VALID/UNUSABLE)。
    • 对象:统计 INVALID 对象(视图/存储过程/包/触发器),必要时重编译。
    • 权限与配额:目标用户权限、默认表空间与配额是否正确。
    • 应用连通:应用端回归测试,确认连接串、字符集与时区行为正常。
  • 常见问题与要点
    • 字符集与 NLS:两端字符集不一致可能导致乱码或导入失败,优先统一字符集与 NLS 设置。
    • 目录对象与权限:expdp/impdp 必须使用数据库 DIRECTORY 对象,且用户需有读写权限;DMP 文件与目录权限需一致。
    • 版本差异:高版本导出向低版本导入可能受限,必要时使用 Data Pump 的版本参数或中间版本过渡。
    • 表空间与配额:目标端需提前创建表空间并为用户授予配额,避免导入时报 ORA-01950。
    • 大对象与并行:LOB/大表建议增加 PARALLEL、合理设置 BUFFER/FILESIZE,提升导入效率。

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


若转载请注明出处: centos sqlplus数据库迁移步骤
本文地址: https://pptw.com/jishu/756850.html
centos sqlplus存储过程编写 centos sqlplus安全设置方法

游客 回复需填写必要信息