ogg同步表常見變更操作參考

2021-09-20 06:18:33 字數 2802 閱讀 9112

變更場景

已同步的表結構變更,包括新增字段,刪除字段,修改字段型別和字段長度

新增同步表(空表)

新增同步表(有資料)

變更流程

一、已同步表結構變更

1. 檢查 ogg 目標端和源端的同步,確定沒有延遲

進入目標端 ogg 安裝目錄,執行 ggsci 命令進入命令操作

info all 檢視所有的複製程序,看有沒有時間延遲

2. 源端停止抽取程序

進入 ogg 安裝目錄,執行 ggsci 命令進入命令操作

info all 檢視所有的程序

stop extract xx(x *** 是程序名),停止抽取程序

3. 目標端停止複製程序

進入 ogg 安裝目錄,執行 ggsci 命令進入命令操作

info all 檢視所有的程序

stop replicat xx(x *** 是程序名),停止複製程序

4. 在源端和目標端資料庫中修改表結構

開發人員提供詳細的修改指令碼

5. 啟動目標端複製程序

start replicat xx(x *** 是程序名)

6. 啟動源端抽取程序

start extract xx(x *** 是程序名)

二、新增同步表(空表)

新增表同步表,建議將所有的新增表,通過一組新的抽取程序,傳輸程序和複製程序進行同步。這樣可以盡最大可能的不影響到原有的同步。

1. 新增表 開發人員提供 sql 語句

2. 源端新增同步表 add trandata

進入 ogg 安裝目錄,執行 ggsci 命令進入命令操作

dblogin userid ***x, password *** 登入到資料庫

add trandata schema.table_name (如 hdcs.t)

3. 在源端抽取程序中加入新增的表

停止抽取程序;stop extract ***

修改引數檔案,加入新增的表

如:table hdcs.***x;

4. 在源端傳輸程序中加入新增的表

停止傳輸程序;stop extract ***

修改引數檔案,加入新增的表

如:table hdcs.***x;

5. 在目標端複製程序中加入新增的表

停止複製程序;stop replicat ***

修改引數檔案,加入新增的表

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

6. 依次啟動各個程序

啟動源端抽取程序:start extract ***

啟動源端傳輸程序:start extract ***

啟動目標端複製程序:start replicat ***

7. 檢查同步

啟動完成後,通過命令 info all 檢視各個程序狀態是否是 runninng 的正常狀態

三、新增同步表(已有資料)

1.源端和目標端編輯引數,新增需要同步的表。

2.源端新增新錶日誌,並啟動抽取程序:

進入 ogg 安裝目錄,執行 ggsci 命令進入命令操作

dblogin userid ***x, password *** 登入到資料庫

add trandata schema.table_name (如 ***. building)

start ***

3.源端資料庫獲取當前最新scn

--檢查源端是否有事務未完成:

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(+);

沒有事務。

sql> select to_char(dbms_flashback.get_system_change_number()) from dual;

to_char(dbms_flashback.get_system_change

----------------------------------------

15616139721983

4.源端資料庫按照指定的scn匯出表資料,並傳輸到目標端

(exp或expdp方式)

exp ***/*** direct=y rows=y buffer=64000000 flashback_scn=15616139721983 constraints=n grants=n triggers=n statistics=none file=building.dmp log=exp_building.log tables=building

5.目標端停止複製程序

stop xx

6.目標端匯入新錶

(imp或impdp方式)

imp ***/*** file=building.dmp log=imp_building.log full=y ignore=y buffer=64000000

7.目標端修改複製程序配置,增加複製表map關係,用filter指定複製scn

map ***.building,target ***.building filter ( @getenv("transaction", "csn") > 15616139721983);

8.目標端啟動複製程序

start ***

9.目標端等狀態同步完成,去掉注釋掉7中引數配置,新增map重啟複製程序

通過dblink快速同步ogg表

適用場景 表資料量不大,並且較長時間不變化 10分鐘以上 目標端到源端有dblink 源端 新增表日誌 dblogin userid password add trandata 抽取和推送程序新增表 重啟抽取和推送程序 從源端pl sql提取建表sql語句 目標端 根據建表語句建立空表。複製程序新增...

OGG 測試有主鍵表和無主鍵表的同步情況

環境說明 ogg 版本11.2.1.0.1,源端test,有主鍵,test3表無主鍵,目標端的trail檔案未被刪除。sql insert into test3 values 1,test 1 row created.sql insert into test3 values 1,test 1 row...

鍊錶的常見操作

include include includeusing namespace std typedef struct nodetype node typedef struct dnodetype dnode 建立單鏈表 node createlist node head node current he...