goldengate單獨一個表數據不同步解決方法

   補充日誌只要是針對UPDATE命令的,是對重做日誌記錄中變更矢量塊的補充信息,增加了變更矢量記載的記錄量。日誌挖掘器(LogMiner)、閃回事務查詢、閃回事務等都需要補充日誌的支持。也就是說補充日誌主要是爲UPDATE命令服務的,補充的目的是高度還原UPDATE命令,避免因爲update命令造成的行遷移和行移動,讓LogMiner 通過分析重做日誌中識別update 命令不是由insert和delete完的。


數據庫級補充日誌分爲:最小補充日誌、標識關鍵字段補充日誌
(1).最小補充日誌:是最基本的一種數據庫級補充日誌,而LogMiner正是依賴最小補充日誌工作服務的(即識別 行移動 行遷移)。
    啓用最小補充日誌命令:
        alter database add supplemental log data;
    關閉最小補充日誌命令:
        alter database drop supplemental log data;

(2).標識關鍵字段補充日誌:分爲主鍵、外鍵、唯一索引、全體字段補充日誌 4種。
   主鍵補充日誌:在update命令的重做記錄中添加被修改行的主鍵字段的舊值,無論是否被修改,都記錄。如果表沒有主鍵,則由長度最小的唯一索引字段代替,若連唯一索引也沒有,則記錄該行所有字段.

     alter database add supplemental log data (Primary key) columns;
  唯一索引補充日誌:唯一索引主要是爲複合索引(唯一)服務的。只有唯一索引的字段被update時,纔會記錄該字段被修改前的值。
     alter database add supplemental log data (unique) columns;
  外鍵補充日誌:同唯一索引補充日誌一樣,只有外鍵字段被update時,纔會記錄被修改前的舊值,即也是爲複合外鍵服務的。
     alter database add supplemental  log data (foreign key ) columns;
  全體字段補充日誌:顧名思義就所有字段的值不論是否被修改都記錄。會導致磁盤快速增長,LGWR進程繁忙。不建議使用。
     alter database add supplemental log data (all) columns;

表級補充日誌:
   分爲: 主鍵、唯一索引、外鍵、全體字段、用戶自定義字段5種。
   前4種同數據庫級 標識關鍵字段補充日誌效果用法一樣。只不過是在特定表上啓用補充日誌
   1.alter table tb_name add supplemental log data (primary key) columns;
   2.alter table tb_name add supplemental log data (unique) columns;
   3.alter table tb_name add supplemental log data (foreign key) columns;
   4.alter table tb_name add supplemental log data (all) columns;
   5.alter table tb_name add supplemental log group group_name (col01,col02,col05,col09) | always;


1.查看數據庫是否開啓補充日誌

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;    --開啓了補充日誌
SUPPLEME
--------
YES
SQL> SELECT supplemental_log_data_min,supplemental_log_data_pk,supplemental_log_data_ui,

supplemental_log_data_fk,supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP SUP SUP           --只開啓了主鍵的補充日誌
-------- --- --- --- ---
YES     NO  NO  NO  NO

SQL>


2.查看錶是否添加到補充日誌中

SQL> select * from dba_log_groups where table_name='abc';    --查看錶是否有補充日誌
no rows selected
SQL> select * from dba_log_group_columns  where table_name='abc';   --查看補充日誌的字段
no rows selected

SQL>


3.解決方法(1)

GGSCI (iZ23jtzbnliZ) 35> dblogin userid ggs,password system   --EXTRACT進程裏的用戶名和密碼

Successfully logged into database.

GGSCI (iZ23jtzbnliZ) 36> add TRANDATA tong.abc    --添加補充日誌(tong是數據庫,abc是表名)
Logging of supplemental redo data enabled for table  UPCENTER.NEWS_FLASH_TAB_CLAS_RELA.
GGSCI (iZ23jtzbnliZ) 37>


3.解決方法(2)

SQL> alter table abc add supplemental log data(all,primary key,unique,foreign key) columns;

SQL>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章