温馨提示×

Linux Oracle复制技术如何实现

小樊
42
2025-12-28 07:05:05
栏目: 云计算

Linux 上 Oracle 复制的主流方案与适用场景

  • Oracle Data Guard(物理/逻辑):基于Redo/归档日志的数据库级复制,适合高可用/灾备零或近零数据丢失场景;物理备库与生产库同构,逻辑备库可做跨平台/跨字符集细粒度对象选择
  • Oracle GoldenGate(OGG):基于事务日志挖掘的微服务化复制,支持异构双向/多向跨库/跨平台,可做实时 CDC零停机迁移数据分发
  • Data Pump(expdp/impdp):逻辑导出/导入,适合一次性迁移/批量初始化跨版本/跨平台的小中体量数据移动,非持续同步。
  • RMAN 备份恢复/复制:物理级复制与快速搭建备库的常用手段,适合同构环境的快速恢复Data Guard 搭建的前置步骤。

Oracle Data Guard 实现步骤(Linux 19c 示例)

  • 前置与网络
    • 主备均安装 Oracle 19c 软件,主库建库并开启归档模式;配置 /etc/hostslistener.ora/tnsnames.ora,确保 TNS 互通;主库创建 密码文件并同步至备库(保持 sys 密码一致)。
  • 主库关键配置
    • 开启强制日志ALTER DATABASE FORCE LOGGING;
    • 配置归档与 DG 参数:
      • ALTER SYSTEM SET log_archive_config='DG_CONFIG=(orcl_primary,orcl_standby)';
      • ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_primary';
      • ALTER SYSTEM SET log_archive_dest_2='SERVICE=standby ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_standby';
      • ALTER SYSTEM SET fal_server='standby';
      • ALTER SYSTEM SET standby_file_management='AUTO';
      • 如主备数据/日志文件路径不同,设置 DB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERT;必要时设置 DB_UNIQUE_NAME 区分主备。
    • 建议添加Standby Redo Log(组数比在线日志多 1 组)以提升实时同步效率。
  • 备库搭建
    • 备库仅装软件,创建 pfileSTARTUP NOMOUNT;使用 RMAN Duplicate 从主库创建备库:
      • rman target sys/Oracle123@primary auxiliary /
      • duplicate target database for standby from active database spfile set db_unique_name='orcl_standby' set ... nofilenamecheck;
  • 启动与验证
    • 备库以 MOUNT 启动并开始 MRP(日志应用);在主库检查 V$ARCHIVE_DEST_STATUSV$DATAGUARD_STATS,在备库检查 V$MANAGED_STANDBYV$RECOVERY_PROGRESS
    • 常见要点:主备 COMPATIBLE 一致、字符集一致(逻辑备库可不同)、FAL 正确指向、网络与存储带宽充足。

Oracle GoldenGate 实现步骤(Linux Oracle 11g/19c 通用)

  • 安装与目录
    • 源端与目标端分别安装 OGG for Oracle,在 OGG 家目录执行 ggscicreate subdirs 创建运行目录。
  • 数据库准备
    • 源库启用最小补充日志ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;(必要时 ALTER SYSTEM SWITCH LOGFILE;
    • 创建 OGG 管理用户(含 DBA 权限、表级 SELECT ANY TABLE/INSERT/UPDATE/DELETE 等),并授予 DBMS_GOLDENGATE_AUTH 包权限(视版本而定)。
  • 进程与参数(单向示例)
    • 源端 Manager:START MANAGER
    • 源端 Extract(经典或集成捕获):
      • ADD EXTRACT ext1, TRANLOG, BEGIN NOW
      • ADD EXTTRAIL /u01/app/oracle/ogg/dirdat/et, EXTRACT ext1
      • 参数要点:EXTRACT ext1 ...; TABLE schema.*;
    • 源端 Data Pump(可选但推荐):ADD EXTRACT dp1, EXTTRAILSOURCE /u01/app/oracle/ogg/dirdat/etADD RMTTRAIL /u01/app/oracle/ogg/dirdat/rt, EXTRACT dp1
    • 目标端 Replicat:
      • ADD REPLICAT rep1, EXTTRAIL /u01/app/oracle/ogg/dirdat/rt, BEGIN NOW
      • 参数要点:REPLICAT rep1 ...; MAP schema.table, TARGET schema.table;
  • 初始化与启动
    • 首次全量可用 Data Pump/OGG Initial LoadRMAN 备份恢复 进行基线装载,随后 START EXTRACT/START REPLICAT 进入实时 CDC
    • 监控 GGSCI> INFO ALLVIEW REPORTERROR 日志,核对 LAGCHECKPOINT
    • 双向复制需额外实例与冲突处理策略(如 HANDLECOLLISIONS/RESOLVECONFLICT)。

Data Pump 与 RMAN 的复制用法(初始化/迁移/快速备库)

  • Data Pump(expdp/impdp)
    • 源库:创建 Directory 对象 → expdp user/pwd DIRECTORY=tmpDir DUMPFILE=exp.dmp LOGFILE=exp.log SCHEMAS=your_schema → 用 scp/rsync 传输 .dmp 至目标。
    • 目标库:创建同名 Directoryimpdp user/pwd DIRECTORY=tmpDir DUMPFILE=exp.dmp LOGFILE=imp.log [REMAP_SCHEMA=src:trg] [TABLE_EXISTS_ACTION=REPLACE/TRUNCATE]
    • 适用:跨版本/跨平台迁移、开发测试环境快速克隆、对象级/模式级复制;非持续同步。
  • RMAN 备份恢复/复制
    • 备份:RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
    • 还原/恢复:RMAN> STARTUP NOMOUNT; RESTORE DATABASE; RECOVER DATABASE;
    • 搭建备库:RMAN> DUPLICATE TARGET DATABASE FOR STANDBY ...(可与 Data Guard 无缝衔接)。
    • 适用:同构环境的快速恢复零停机搭建备库Data Guard 前置步骤。

方案选型与对比

方案 复制方式 时延与一致性 主要优势 典型场景
Data Guard(物理) Redo/归档日志,物理一致 近实时,RPO 近 0 高可用/灾备、维护简单、成熟可靠 生产库容灾、主备切换
Data Guard(逻辑) LogMiner/SQL 应用 近实时 跨平台/跨字符集、对象选择性 跨版本迁移、报表/查询库
GoldenGate 事务日志挖掘(Extract/Replicat) 实时,低延迟 异构、双向/多向、灵活转换与分发 实时 CDC、零停机迁移、多活/分发
Data Pump 逻辑导出/导入 批量/一次性 简单易用、跨版本/平台 初始化、迁移、开发测试
RMAN 复制 物理备份/还原 取决于备份频率 快速搭建备库、恢复能力强 快速恢复、备库搭建与演练

0