將 Replicat 切換為協調模式

適用於 Oracle GoldenGate 支援的所有資料庫類型。

此程序會將一般 Replicat 組態 (非協調式) 升級為協調式組態。此程序假設您正在以使用一個 Extract 和一個協調式 Replicat 的組態取代跨多個 Extract 和 Replicat 處理作業分割資料的組態。協調式 Replicat 可取代使用多個 Replicat 處理作業的需求。協調式 Replicat 只需要一個歷程檔,因此不需要多個 Extract 處理作業。

程序總覽

此程序會使用 EVENTACTIONS 參數與 STOP 動作,讓所有的 Replicat 處理作業在歷程檔的相同點停止。EVENTACTIONS 動作是由包含虛擬表格之 INSERT 的交易所觸發。INSERT 會讓每個處理完成處理事件交易的所有項目 (包括事件交易),然後完全停止。為 Replicat 指定了額外的 IGNORE 事件動作,以防止多個 Replicat 處理作業嘗試將相同的記錄插入目標。此程序的結果是所有處理作業都會在資料串流的相同點停止:完成 INSERT 交易至虛擬表格之後。

處理停止之後,您可以將所有 TABLE 陳述式移至一個主要 Extract 群組。您可以將所有 MAP 陳述式移至新的協調式 Replicat 群組,以讀取與保留的 Extract 關聯的歷程檔。所有 MAP 敘述句都位於一個參數檔之後,您可以編輯它們來新增繫線規格,以支援協調式 Replicat。(這可以提前完成。) 接著,刪除 Replicat 群組,然後以相同名稱的協調模式將它加回。

執行切換至協調式 Replicat

注意:在這些指示提示之前,請勿建立 Replicat 群組。

  1. 備份所有 Extract 群組和 Replicat 群組的目前參數檔。您將進行編輯。

  2. 在 Oracle GoldenGate 目錄外建立工作目錄。您將使用此目錄來建立及暫存參數檔的新版本。如有需要,您可以在來源系統和目標系統上建立工作目錄。

  3. 在工作目錄中,為協調式 Replicat 建立參數檔。將 MAP 參數從所有 Replicat 群組的作用中參數檔複製到此參數檔,然後新增繫線規格以及支援所需之協調式 Replicat 組態的任何其他參數

  4. 如果使用多個主要 Extract 群組,請選取要保留的群組,然後將目前參數檔的複本儲存至工作目錄。

  5. 將其他 Extract 群組的所有 TABLE 敘述句複製到您保存之主要 Extract 的新參數檔。

  6. 將其他 Extract 的所有 TABLE 敘述句複製到保留之 Extract 的複製參數檔。

  7. 在來源資料庫中,建立一個簡單的虛擬表格,在其中執行簡單的 INSERT 敘述句。對於此程序,會使用名稱 schema.event。

  8. 在目標系統上建立相同的表格,以避免需要額外的組態參數。

  9. 編輯所有主要和資料汲取 Extract 群組的作用中參數檔 (非複本),以將下列 EVENTACTIONS 參數新增至每個參數。

TABLE schema.event, EVENTACTIONS(STOP);
  1. 編輯所有 Replicat 群組的作用中參數檔 (非複本),以將下列 EVENTACTIONS 參數新增至每個參數。
MAP schema.event, TARGET schema.event, EVENTACTIONS(IGNORE, STOP);
  1. 請依照下列順序正常停止 Oracle GoldenGate 處理作業:

    • 停止所有 Replicat 處理作業。

    • 停止所有 Extract 處理作業。

  2. 重新啟動 Oracle GoldenGate 處理作業的順序如下,以便 EVENTACTIONS 參數生效:

    • 啟動所有 Extract 處理作業。

    • 啟動所有 Replicat 處理作業。

  3. 在來源系統上,在包含一個 INSERT 敘述句的 schema.event 表格上發出交易。確實確認交易。

  4. 在「管理從屬端」中,對來源系統上的所有主要 Extract 發出 STATUS 命令,然後針對目標系統上的所有 Replicat 處理作業發出相同的命令,直到命令顯示所有處理作業都是 STOPPED 為止。

STATUS EXTRACT *
STATUS REPLICAT *
  1. 將您保留的 Extract 的作用中參數檔取代為工作目錄的新參數檔。

  2. 刪除不需要的 Extract 及其參數檔。

  3. 使用 DBLOGIN USERIDALIAS 命令登入目標資料庫。

  4. 刪除所有 Replicat 群組及其作用中參數檔。

  5. 將新的協調式 Replicat 參數檔從工作目錄複製到 Oracle GoldenGate 目錄。

  6. 在「管理從屬端」中,發出 INFO EXTRACT 命令並記下其在歷程檔中的寫入檢查點位置。

INFO EXTRACT *extract_name*, DETAIL
  1. 使用下列參數新增協調式 Replicat 群組。
ADD REPLICAT *group*, EXTTRAIL *trail*, EXTSEQNO *sequence_number*, EXTRBA *rba*, COORDINATED MAXTHREADS *number*
Where:

- *group* is the name of the coordinated Replicat group. The name must match that of the new parameter file created for this group.

- `EXTTRAIL` *trail* is the name of the trail that the Extract writes to.

- `EXTSEQNO `*sequence_number* is the sequence number of the trail as shown in the write checkpoint returned by the `INFO EXTRACT` that you issued for the Extract.

- `EXTRBA `*rba* is the relative byte address in the trail as shown in the write checkpoint returned by `INFO EXTRACT`. Together, these position Replicat to resume processing at the correct point in the trial.

- `MAXTHREADS` number specifies the maximum number of threads allowed for this group. This value should be appropriate for the number of threads that are specified in the parameter file.
  1. 啟動主要 Extract 群組。

  2. 啟動協調式 Replicat 群組。