Bootstrap

oracle ogg学习和ogg常见变更操作

oracle ogg学习和ogg常见变更操作

OGG(Oracle GoldenGate)

OGG 是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右) OGG 能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。支持在Oracle数据库和其他受支持的异构数据库之间复制数据。

基本原理

Oracle GoldenGate实现原理是通过抽取源端的redo log或者archive log,然后通过TCP/IP投递到目标端,最后解析还原应用到目标端,使目标端实现同源端数据同步。

利用**抽取进程 (Extract Process)**在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作 再利用传输进程将队列文件 (trail file)通过TCP/IP传送到目标系统。将源端数据通过 exp/imp 导入到目标端,也可以选择expdp/impdp。

把信息缓存到GoldenGate 队列文件 (trail file)当中,等待目标端的复制进程读取数据

DG和OGG的对比

DG 支持一对多的同步,但仅限于一套数据库系统内,无法满足多套数据库之间的有效关联。 而 OGG 产品因为其同步方式的灵活性,可以完美的实在多个数据库之间的互动

OGG支持单向复制、双向复制、点对点复制、数据分发、数据集中、多级复制等多种使用场景,针对表的复制还支持单表到单表、单表到多表、多表到多表、多表到单表、表过滤等多种复制方式,而且OGG可以最大限度的支持异构(操作系统,数据库版本,数据库产品),从而满足复杂业务系统的要求。

附加日志主要是在ogg类似软件中,由于oracle实例恢复只需要后镜像就可以,所以redo中不保留update的前镜像,所以需要supplemental log,有点类似flashback日志。

ogg 进程:

Manager:管理进程

Manager进程是Golden Gate中进程的控制进程,用于管理 Extract,Data Pump,Replicat等进程

在 Extract、Data Pump、Replicat 进程启动之前,Manager 进程必须先要在源端和目标端启动,在整个 Golden Gate 运行期间,它必须保持运行状态

⒈ 监控与启动 GoldenGate 的其它进程

⒉ 管理 trail 文件及 Reporting

在 Windows 系统上,Manager 进程是作为一个服务来启动的,在 Unix 系统下是一个进程

Extract:抽取进程

Extract 进程运行在数据库源端上,它是Golden Gate的捕获机制,可以配置Extract 进程来做如下工作:

⒈ 初始数据装载:对于初始数据装载,Extract 进程直接从源对象中提取数据

⒉ 同步变化捕获:保持源数据与其它数据集的同步。

Extract 进程捕获源数据的变化;如DML变化、 DDL变化等

Replicat:复制(投递)进程

Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract 进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库,就像 Extract 进程一样,也可以配置 Replicat 进程来完成如下工作:

⒈ 初始化数据装载:对于初始化数据装载,Replicat 进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上

⒉ 数据同步,将 Extract 进程捕获到的提交了的事务应用到目标数据库中

Collector:

Collector 是运行在目标端的一个后台进程,接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里。

动态 collector:由管理进程自动启动的 collector 叫做动态 collector,用户不能与动态 collector 交互

静态 collector:可以配置成手工运行 collector,这个 collector 就称之为静态 collector

Pump:传递进程

pump进程运行在数据库源端,其作用是将源端产生的本地trail文件,把trail以数据块的形式通过TCP/IP 协议发送到目标端,这通常也是推荐的方式。pump进程本质是extract进程的一种特殊形式,如果不使用trail文件,那么extract进程在抽取完数据以后,直接投递到目标端,生成远程trail文件。

与 Pump进程对应 的叫Server Collector进程,这个进程不需要引起我的关注,因为在实际操作过程中,无需我们对其进行任何配置,所以对我们来说它是透明的。它运行在目标端,其任务就是把Extract/Pump投递过来的数据重新组装成远程ttrail文件。

注意:无论是否使用pump进程,在目标端都会生成trail文件

Oracle GoldenGate数据复制过程如下

1、利用**抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作–增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中。再利用传输进程【data pump】**将队列文件(trail file)通过TCP/IP传送到目标系统。

2、目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息,把信息缓存到GoldenGate队列文件(trail file)当中,等待目标端的复制进程读取数据。

3、GoldenGate**复制进程(replicat process)**从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

image-20241119153946007

ogg文件

$ls |grep dir

dirchk:用于存放检查点文件,这些文件记录了OGG进程在处理数据时的检查点信息。

dirdat:用于存放数据文件,这些文件包含了OGG进程从源端抓取的数据。

dirdef:用于存放定义文件,这些文件包含了OGG进程的配置信息和映射规则。

dirout:用于存放输出文件,这些文件包含了OGG进程处理后生成的数据。

dirpcs:用于存放进程状态文件,这些文件记录了OGG进程的状态信息。

dirprm:用于存放参数文件,这些文件包含了OGG进程的运行参数和配置选项。

dirrpt:用于存放报告文件,这些文件包含了OGG进程的运行日志和错误信息。

dirsql:用于存放SQL文件,这些文件包含了OGG进程执行的SQL语句。

dirtmp:用于存放临时文件,这些文件在OGG进程运行过程中产生的临时数据。

ogg常用命令和参数:

查看ogg安装目录和用户:

ps -ef|grep mgr

image-20241120102707113

注意看运行的用户 --oracle

  • 进入ggsci交互:进入GoldenGate安装目录,执行./ggsci进入命令行模式。
su - ogg或su - oracle
./ggsci
注:进到ogg安装目录下
ogg进程状态:

正常情况下,进程为running或者stopped状态;一旦出现Abended状态,需要及时处理。

查看配置在服务器上的所有进程的信息,program(所属进程),status(运行状态),group(进程名称),lag at chkpt(延迟时间),time since Chkpt(检查点信息)

  • Time Since Checkpoint

    ​ 指ogg的extract或replicat进程产生最近的一个检查点,再从这个检查点到目前为止有多长时间没有更新了,即最近一个检查点与当前系统时间的时间差。该值可以通过info看到是在不断变化(特别是当处理长会话时,会持续增长,直到处理完该长会话)。

  • Lag at Checkpoint

    ​ lag是复制进程处理最后一条记录的操作系统时间和此条记录在trail文件中记录的时间戳的差值,这里需要注意的是lag延迟只有在检查点更新时才会更新,所以这个值不是实时更新的,具有一定的离散性,实际上应该理解成最后一个检查点的最后一条记录与当前系统时间的时间差。

image-20241120102921984

  • Program: 显示Oracle GoldenGate的程序名称。

  • Status: 显示程序的当前状态,running:正常运行,stopped:正常停止,abended:异常中断 STARTING: 表示正在启动过程中。

  • Group: 显示程序所属的组。进程名

  • Lag at Chkpt: 显示在检查点时的延迟时间,即在上次检查点之后所经过的时间。lag是复制进程处理最后一条记录的操作系统时间和此条记录在trail文件中记录的时间戳的差值,这里需要注意的是lag延迟只有在检查点更新时才会更新,所以这个值不是实时更新的,具有一定的离散性,实际上应该理解成最后一个检查点的最后一条记录与当前系统时间的时间差。

  • 如果这个时间过长,表示ogg出问题了,建议重启进程

  • Time Since Chkpt: 显示距离上次检查点的时间。指ogg的extract或replicat进程产生最近的一个检查点,再从这个检查点到目前为止有多长时间没有更新了,即最近一个检查点与当前系统时间的时间差。该值可以通过info看到是在不断变化(特别是当处理长会话时,会持续增长,直到处理完该长会话)。

  • 查看进程详细状态,有助于排错

    • view report +进程名称

    • GGSCI (hfogg) 5> view report RITPUX01
      
      
      ***********************************************************************
                       Oracle GoldenGate Delivery for Oracle
          Version 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054_FBO
         Linux, x64, 64bit (optimized), Oracle 19c on Oct 17 2019 21:17:25
      
      Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
      
                          Starting at 2024-11-19 20:34:04
      ***********************************************************************
      
      Operating System Version:
      Linux
      Version #1 SMP Thu Oct 4 20:48:51 UTC 2018, Release 3.10.0-957.el7.x86_64
      Node: hfogg
      Machine: x86_64
                               soft limit   hard limit
      Address Space Size   :    unlimited    unlimited
      Heap Size            :    unlimited    unlimited
      File Size            :    unlimited    unlimited
      CPU Time             :    unlimited    unlimited
      
      Process id: 14473
      
      Description:
      
      ***********************************************************************
      **            Running with the following parameters                  **
      ***********************************************************************
      
      2024-11-19 20:34:04  INFO    OGG-03059  Operating system character set identified as US-ASCII.
      
      2024-11-19 20:34:04  INFO    OGG-02695  ANSI SQL parameter syntax is used for parameter parsing.
      replicat ritpux01
      userid goldengate,password ***
      handlecollisions
      assumetargetdefs
      discardfile ./dirrpt/ritpux01/ritpux01.dsc,append,megabytes 200
      map hfdb1.*,target hfdb1.*;
      
      2024-11-19 20:34:06  INFO    OGG-06451  Triggers will be suppressed by default.
      
      2024-11-19 20:34:06  INFO    OGG-01815  Virtual Memory Facilities for: COM
          anon alloc: mmap(MAP_ANON)  anon free: munmap
          file alloc: mmap(MAP_SHARED)  file free: munmap
          target directories:
          /ggs/dirtmp.
      
      2024-11-19 20:34:06  INFO    OGG-25340
      Database Version:
      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production.
      
      2024-11-19 20:34:06  INFO    OGG-25341
      Database Language and Character Set:
      NLS_LANGUAGE     = "AMERICAN"
      NLS_TERRITORY    = "AMERICA"
      NLS_CHARACTERSET = "ZHT16HKSCS".
      2024-11-19 20:34:06  INFO    OGG-06604  Database HFOGG CPU info: CPU Count 4, CPU Core Count 4, CPU Socket Count 1.
      
      ***********************************************************************
      **                     Run Time Messages                             **
      ***********************************************************************
      
      
      2024-11-19 20:57:18  INFO    OGG-02243  Opened trail file /ggs/dirdat/ritpux01/re000000000 at 2024-11-19 20:57:18.692990.
      2024-11-19 20:57:18  WARNING OGG-02760  ASSUMETARGETDEFS is ignored because trail file /ggs/dirdat/ritpux01/re000000000 contains table definitions.
      2024-11-19 20:57:20  INFO    OGG-03506  The source database character set, as determined from the trail file, is zhs16gbk.
      2024-11-19 20:57:20  INFO    OGG-06506  Wildcard MAP resolved (entry hfdb1.*): map "HFDB1"."TEST",target hfdb1."TEST".
      2024-11-19 20:57:24  WARNING OGG-06439  No unique key is defined for table TEST. All viable columns will be used to represent the key, but may not guarante
      e uniqueness. KEYCOLS may be used to define the key.
      
      2024-11-19 20:57:24  INFO    OGG-02756  The definition for table HFDB1.TEST is obtained from the trail file.
      2024-11-19 20:57:24  INFO    OGG-06511  Using following columns in default map by name: C1, C2.
      2024-11-19 20:57:24  INFO    OGG-06510  Using the following key columns for target table HFDB1.TEST: C1, C2.
      2024-11-19 20:57:24  INFO    OGG-03010  Performing implicit conversion of column data from character set zhs16gbk to zht16hkscs.
      
      启动和停止进程
      GGSCI > start mgr
      

      start 命令的一般用法是:start <进程名称>

      如:

      GGSCI> start extdm 启动一个名叫extdm的进程
      

      也可以使用通配符,如:

      GGSCI> start er *  启动所有的extract和replicat进程
      GGSCI> start extract *d*  启动所有的包含字符‘d’extract进程
      GGSCI> start replicat rep*  启动所有以“rep“开头的replicat进程
      

      stop命令具有跟start命令一样的用法。

      停止mgr进程

      GGSCI > stop mgr
      

      ogg常用命令放在ggsci里面,命令对大小写不敏感。

      查看告警日志信息,等同于ggserr.log 该日志文件由Manager进程维护记录所有进程的启动和停止信息及其它日志信息。

      GGSCI >view ggsevt
      

      image-20241120104620900

      安装目录查看日志

      tail -100f ggserr.log
      q退出
      

      查看详细的延时信息

      lag +进程名称
      

      image-20241120104730636

      可以查看进程处理的记录数。该报告会详细的列出处理的类型和记录数。

      stats <进程名称>,

      如:

      stats PITPUX01 tolal 列出自进程启动以来处理的所有记录数。
      stats PITPUX01 daily --列出全天的下发情况
      stats PITPUX01 hourly --列出近一小时的下发情况
      
      GGSCI (hfdb30) 5> stats PITPUX01 hourly
      
      Sending STATS request to EXTRACT PITPUX01 ...
      
      Start of Statistics at 2024-11-20 10:50:06.
      
      Output to ./dirdat/ritpux01/re:
      
      Extracting from HFDB1.TEST to HFDB1.TEST:
      
      *** Hourly statistics since 2024-11-20 10:00:00 ***
              Total inserts                                      2.00
              Total updates                                      0.00
              Total deletes                                      0.00
              Total upserts                                      0.00
              Total discards                                     0.00
              Total operations                                   2.00
      
      End of Statistics.
      

      查看详细处理过的事务记录

      info <进程名称> showch
      

      查看更详细的信息,包括所使用的tail文件,参数文件,报告文件,告警日志文件位置等

      info <进程名称> detail

      查看长交易(交易时间特别长,事务)

      send extract ext1,showtrans

      添加附加日志

      GGSCI>dblogin userid ggs, password ggs
      GGSCI>add trandata <schema>.<tablename>  
      

      获取表级附加日志信息

      GGSCI>info trandata <schema>.<tablename>  
      

      如果为disabled 则用 add trandata table_name

      (注意: 如果是同步已有的表并且表结构发生变化的则用下面的步骤

      delete trandata table_name

      add trandata table_name)

      删除OGG进程:

      GGSCI> dblogin userid 用户名, password 密码
      GGSCI> delete extract/replicat XXXX
      

查看源端和目标端ip

在源端可以通过配置文件查看目标端IP

cd dirprm

查看配置文件,如:

RMTHOST 10.128.82.15, MGRPORT 7813

image-20241120104406588

在目标端通过命令查看源端IP

cat ggserr.log |grep EXTRACT

image-20241120104436843

异常处理一般步骤

如果GoldenGate复制出现异常,可以通过以下步骤尝试解决问题:

  1. 通过ggsci>view report命令查找ERROR字样,确定错误原因并根据其信息进行排除;
  2. 通过ggsci>view ggsevt查看告警日志信息;
  3. 检查两端数据库是否正常运行,网络是否连通;
vi ggserr.log

查看进程配置文件

view param 进程名

GGSCI (hfdb30) 8> view param EITPUX01

extract eitpux01
userid goldengate,password goldengate
exttrail ./dirdat/eitpux01/ex
tranlogoptions excludeuser goldengate
tranlogoptions dblogreader
warnlongtrans 12h,checkinterval 30m
discardfile ./dirrpt/eitpux01/eitpux01.dsc,append,megabytes 200
TABLE hfdb1.*;


GGSCI (hfdb30) 9>  view param PITPUX01

extract pitpux01
userid goldengate,password goldengate
PASSTHRU
RMTHOST 192.168.40.50,MGRPORT 7809
rmttrail ./dirdat/ritpux01/re
discardfile ./dirrpt/ritpux01/ritpux01.dsc,append,megabytes 200
TABLE hfdb1.*;

image-20241120105605512

SETENV (ORACLE_HOME=“/oracle/app/oracle/product/11.2.0/dbhome_1”):设置 GoldenGate 进程的环境变量 ORACLE_HOME,指定 Oracle 数据库的安装目录。

SETENV (ORACLE_SID=“odsdb12”):设置 GoldenGate 进程的环境变量 ORACLE_SID,指定要连接的 Oracle 数据库实例的系统标识符。

SETENV (NLS_LANG=“AMERICAN_AMERICA.ZHS16GBK”):设置 GoldenGate 进程的环境变量 NLS_LANG,指定字符集和语言设置。

userid goldengate, password gold_gate_22:指定 GoldenGate 进程连接到 Oracle 数据库的用户名和密码。

DBOPTIONS DEFERREFCONST, SUPPRESSTRIGGERS:指定数据库选项,包括延迟外键约束检查和禁用触发器。

REPORT AT 06:00:设置报告生成的时间,每天早上 06:00 生成一次。

REPORTCOUNT EVERY 30 MINUTES, RATE:设置报告生成的频率,每30分钟生成一次,并显示速率信息。

REPORTROLLOVER AT 22:00:设置报告文件的滚动时间,每天晚上 22:00 滚动一次报告文件。

REPERROR (DEFAULT, ABEND):指定处理复制错误的方式,默认为 ABEND(终止复制进程)。

DISCARDFILE ./dirrpt/REP_FK.dsc, APPEND, MEGABYTES 1024:指定丢弃文件的路径、追加模式和大小限制。

DISCARDROLLOVER AT 22:00 ON SUNDAY:设置丢弃文件的滚动时间,每周日晚上 22:00 滚动一次丢弃文件。

assumetargetdefs:指定在目标端创建表时,使用源端表的定义。

dynamicresolution:启用动态冲突解决。

ALLOWNOOPUPDATES:允许空操作更新。

GETTRUNCATES:获取截断操作。

map SPS.SO, target SPS.SO, HANDLECOLLISIONS:指定源表 SPS.SO 和目标表 SPS.SO 之间的映射关系,并指定处理冲突的方式为 HANDLECOLLISIONS。

map SPS.WO, target SPS.WO, HANDLECOLLISIONS:指定源表 SPS.WO 和目标表 SPS.WO 之间的映射关系,并指定处理冲突的方式为 HANDLECOLLISIONS。

ogg常见变更操作

已同步表结构变更

场景:源库的某个表的"PCM"字段长度扩大到了300,需要修改源端和目标端的ogg进程该表的表定义文件。

注:要检查源端的这个表有没有传到其他目标端

检查 ogg 目标端和源端的同步,确定没有延迟

进入目标端 ogg 安装目录,运行 ggsci 命令进入命令操作

Info all 查看所有的复制进程,看有没有时间延迟
源端停止抽取进程

进入 ogg 安装目录,运行 ggsci 命令进入命令操作

info all 查看所有的进程
stop extract xx(x xxx 是进程名),停止抽取进程
目标端停止复制进程

进入 ogg 安装目录,运行 ggsci 命令进入命令操作

info all 查看所有的进程
stop replicat xx(x xxx 是进程名),停止复制进程
在源端和目标端数据库中修改表结构

利用DEFGEN工具可以为源端和目标端表生成数据定义文件,当源库和目标库类型不一致时,或源端的表和目标端的表结构不一致时,数据定义文件时必须要有的

(1) 编辑defgen文件

GGSCI (oltpdb1) 3> edit param defgen
defsfile ./dirdef/pub_log_circuit.def
userid ggs, password ggs_oss_4
table RES_NX.PUB_LOG_CIRCUIT;

(2) 利用defen工具生成defgen.prm文件

[root@oltpdb1 ~]# su - ogg
defgen paramfile ./dirprm/defgen.prm

(3) 将生成好的二进制文件传输到目标端相应目录的dirdef

scp enmo@135.161.26.1:/tmp/pub_log_circuit.def ./

(4) 检查有哪些进程使用了这个表

cd dirprm
grep PUB_LOG_CIRCUIT *.prm

(5) 修改对应的抽取进程和复制进程的配置文件

vi REP_NX1.prm

添加以下内容

SOURCEDEFS ./dirdef/pub_log_circuit.def OVERRIDE

注:指示系统从指定路径 ./dirdef/tables.def 中获取表定义信息。OVERRIDE:这个关键字表示要覆盖先前定义的表定义

启动目标端复制进程
start replicat xx(x xxx 是进程名)
. 启动源端抽取进程
start extract xx(x xxx 是进程名)

新增同步表(空表)

  • 场景

    • 业务通知有一批新的表需要通过ogg同步到割接库
    • 新增表同步表,建议将所有的新增表,通过一组新的抽取进程,传输进程和复制进程进行同步。这样可以尽最大可能的不影响到原有的同步。
源端新增同步表 add trandata

业务给了新增同步的表;

进入 ogg 安装目录,运行 ggsci 命令进入命令操作

dblogin userid xxxx, password xxx 登录到数据库
add trandata schema.table_name (如 hdcs.t)
在源端抽取进程中加入新增的

停止抽取进程;stop extract xxx

修改参数文件,加入新增的表

如:Table hdcs.xxxx;

在源端传输进程中加入新增的表

停止传输进程;stop extract xxx

修改参数文件,加入新增的表

如:Table hdcs.xxxx;

在目标端复制进程中加入新增的表

停止复制进程;stop replicat xxx

修改参数文件,加入新增的表

如:map hdcs.rtcxf, target hdcs.rtcxf;

依次启动各个进程

启动源端抽取进程:start extract xxx

启动源端传输进程:start extract xxx

启动目标端复制进程:start replicat xxx

检查同步

启动完成后,通过命令 info all 查看各个进程状态是否是 runninng 的正常状态

修改同步表(已有数据)

场景:目标端已经有了需要同步的表

先停止源端ogg的抽取和传输进程

注意: 若有长事务需确认归档是否存在

info exta01 showch

查看recovery checkpoint 的记录,确保该条归档和其后的归档都在,send extract exta01,forcestop)

stop

查询附加日志

数据库内添加表级附加日志

SQL> select SUPPLEMENTAL_LOG_DATA_MIN,supplemental_log_data_pk,supplemental_log_data_ui,force_logging from v$database;
SUPPLEME SUP SUP FOR
-------- --- --- ---
YES    NO  NO  YES
添加附加日志

登陆数据库

GGSCI (oltpdb1) 2>dblogin userid ggs, password ggs_oss_4

添加附加日志

info trandata table_name 如果为disabled 则用 add trandata table_name

(注意: 如果是同步已有的表并且表结构发生变化的则用下面的步骤

delete trandata table_name

add trandata table_name)

add trandata RES_NX.ADDR_SEGM_EQP
add trandata RES_NX.PWR_LOW_VOLTAGE_SYSTEM
add trandata RES_NX.PWR_AIR_CONDITIONING_SYSTEM
--没有主键
add trandata RES_NX.SRV_CRM_ROUTE_INFO

注:

WARNING OGG-06439这个报错间断性出现频率较高,一般来说,日志中WARNING的告警是需要关注下的,但也问题不大,ERROR则是致命性的

OGG的复制表我们都知道需要定义主键或者唯一键来作为key,帮助OGG在抽取和应用中定位数据,当OGG同步表没有Primary key或者Unique key时,进程将会报OGG-06439;

检查:

info trandata RES_NX.ADDR_SEGM_EQP
修改配置文件

然后修改抽取进程的配置文件,把要更新的表加进去,启动抽取进程等待同步追平,同时目标端停止复制进程

初始化数据

检查源端是否有事务未完成:

select s.sid,t.start_time,osuser o, username u,sa.sql_text
from v$session s, v$transaction t, dba_rollback_segs r, v$sqlarea sa
where s.taddr=t.addr and t.xidusn=r.segment_id(+)
and s.sql_address=sa.address(+);

查询scn号,在源端查询SCN号记录下来

set num 50
select current_scn from v$database;
  CURRENT_SCN
\-----------------------
 18543388827879
导出初始数据

根据当前的scn号源端导出初始化数据

vi exp_add_20240116.par

directory=DUMP 
dumpfile=exp_add.dmp 
logfile=exp_add.log
parallel=4
cluster=n
tables=RES_NX.ADDR_SEGM_EQP,RES_NX.PWR_LOW_VOLTAGE_SYSTEM
flashback_scn=18543388827879

nohup expdp \'/as sysdba\' parfile=exp_add_20240116.par &

tail -100f nohup.out

将备份文件拷贝到目标端

scp enmo@135.161.x.x:/goldengate/dump/exp_add.dmp ./

在目标端导入数据,(和业务沟通,通知不要更新数据,否则会被覆盖掉)

注意:导入过程中时刻注意目标端的表空间使用情况,以及表空间名的remap是否正确。

导入

nohup  impdp \'/as sysdba\' directory=OGGDIR dumpfile=exp_add.dmp logfile=imp_add.log table_exists_action=replace remap_tablespace=RES_INDEX_GEN:RES_GENERAL parallel=4  &
修改目标端配置文件

导入完成后在目标端复制进程中添加相应的表

格式:

map user.table_name , target user1.table_name , filter (@GETENV (TRANSACTION, “CSN”) > ########### ) ;

初始化数据导入后,修改复制进程rep_edw进程配置文件,使之从对应的scn号开始复制,等待追平后停止复制进程,把filter(@GETENV(“transation”,“csn”)>18543388827879);该部分参数删除,再启动。

--add_20240116

map RES_NX.ADDR_SEGM_EQP,  target RES_NX.ADDR_SEGM_EQP,filter(@GETENV("transation","csn")>18543388827879);
map RES_NX.PWR_LOW_VOLTAGE_SYSTEM,  target RES_NX.PWR_LOW_VOLTAGE_SYSTEM,filter(@GETENV("transation","csn")>18543388827879);

追平后,停止复制进程,修改参数后再启动

map RES_NX.ADDR_SEGM_EQP,  target RES_NX.ADDR_SEGM_EQP;
map RES_NX.PWR_LOW_VOLTAGE_SYSTEM,  target RES_NX.PWR_LOW_VOLTAGE_SYSTEM;
;