# 進階執行選項

除了標準執行、停止和繼續選項，也提供其他幾個用於執行任務的選項。您可以進行下列任一事項，以開啟進階執行選項對話方塊：

* 從複寫任務的 the 進階執行選項 icon 功能表選取，可使用管道檢視或圖磚檢視。
* 從右上方的 the 更多圖示 icon 功能表開啟複寫任務並選取進階執行選項。

## 處理變更

在進階執行選項對話方塊，選取處理變更。下列選項可用：

* [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)已載入表格。開始處理變更自[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)：

  資訊備註若在停止任務時於來源表格執行中繼資料變更 (例如捨棄欄)，則從較早時間或位置 (SCN/LSN) 繼續任務時，將不會擷取。在這類情況下，將會擷取繼續任務時存在的中繼資料。

  * 日期與時間：設定從您要開始擷取變更的日期和時間。

    資訊備註

    * 若從資料庫刪除記錄 (例如由於清除政策)，與指定日期和時間相符的記錄可能不存在。在此情況下，資料任務將會盡可能從最早的時間點 (在指定日期和時間之後) 繼續任務。
    * 透過 IBM DB2 for LUW 來源端點，此選項無法用來從套用變更任務原始開始時間之前的時間點開始套用變更任務。或者，換一種說法，這只能用來從套用變更任務原始開始時間之後的任何時間開始任務。
    * 時間戳記使用瀏覽器機器的當地時間。

  * [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)來源變更位置 ( SCN 或 LSN)：指定記錄中要繼續變更處理的位置。來源變更位置格式會根據資料來源而異。如需詳細資訊，請參閱[如何尋找來源變更位置](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm#How)。

    資訊備註

    只有下列來源端點支援來源變更位置選項：

    * Oracle
    * Microsoft SQL Server
    * MySQL
    * PostgreSQL
    * IBM DB2 for z/OS
    * IBM DB2 for LUW

## 復原任務

在進階執行選項對話方塊，選取復原。下列選項可用：

* 使用本機儲存的檢查點復原：若無法使用 表格已載入進行復原，則使用此選項。從[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)選項開始處理變更 (例如由於損毀交換檔案)。選取此選項後，複寫任務使用儲存於 `<Data_Folder_Path>/data/tasks/<task_name>/StateManager` 的檢查點資料，以復原任務。

  資訊備註

  使用此選項時，應注意下列限制和考慮事項：

  * 僅在交易套用變更模式下受到支援，並且僅適用於支援交易的資料目標。

  * 僅支援下列資料來源：
    * Oracle

    * Microsoft SQL Server

    * MySQL

    * PostgreSQL

    * IBM DB2 for z/OS

    * SAP HANA
  * 只能在 CDC 期間復原任務 (亦即在完整載入完成之後)

* 使用儲存在目標的檢查點復原：使用 attrep\_txn\_state 表格中的 `CHECKPOINT` 值 (在目標資料庫中建立) 復原任務。

  檢查點值範例：

  ` checkpoint:V1#15#0000038b:000033f1:0004#0#261#0000038b:0000348b:0009#0#273  `

  若資料資料夾中的檔案損毀，或者若包含資料資料夾的儲存裝置故障，則選取此選項 (與使用本機儲存的檢查點復原選項相反)。

  如需如何使用 attrep\_txn\_state 表格設定並實施復原的詳細說明，請參閱 [從資料資料夾損失或損毀狀態復原](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm#Recoveri)。

## 如何尋找來源變更位置

下列區段說明如何為每個支援的資料庫找到來源變更位置。

#### MySQL

選項 1：

1. 執行：

   ` SHOW BINARY LOGS;  `

2. 選擇 binlog 檔案 (例如 log.000123)。

3. 執行：

   `SHOW BINLOG EVENTS IN 'binlog_filename';`

   範例：

   `SHOW BINLOG EVENTS IN 'log.000123';`

4. 找到 BEGIN 或 DDL 陳述式的位置 (例如 1777888)。

   資訊備註

   MySQL 不支援位於交易中間的「開始位置」，因此您必須選取 BEGIN 或 DDL。

5. 設定內部參數：

   `StartFromPosition = binlog_filename:begin_or_ddl_position`

   範例：

   `StartFromPosition = log.000123:1777888`

選項 2：

1. 執行：

   `SHOW MASTER STATUS;`

2. 將「開始位置」設定為：

   firstColumnValue:secondColumnValue

   範例：

   mysql.007472:775

#### Microsoft SQL Server

執行：

`SELECT MAX([Current LSN]) FROM fn_dblog(null,null);`

範例：00002717:00000e08:0003

#### Oracle

執行：

`SELECT current_scn FROM V$DATABASE;`

範例：1471212002

#### PostgreSQL

請注意，命令會根據您的 PostgreSQL 版本而異。

PostgreSQL 10 和更高版本

執行：

`SELECT * FROM pg_current_wal_lsn();`

#### IBM DB2 for z/OS

指定 LSN，這是非資料分享環境中的 RBA，以及資料分享環境中的 LRSN。

#### IBM DB2 for LUW

1. 執行 `db2pd` 以尋找正確的記錄名稱。

2. 執行 ` db2flsn  ` (有傳回的記錄名稱) 並使用目前的 LRI 值。

   另請參見： [在 pureScale 環境中從 LRI 繼續或開始任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-luw/IBM4DB2-luw-source.htm#ar_ibm_db2_456845099_55844)

   如需更多資訊，請參閱 Replicate 說明中的「在 pureScale 環境中從 LRI 繼續或開始任務」。

## 從資料資料夾損失或損毀狀態復原

在正常操作期間，移動 狀態會儲存在下列位置：

`<Data_Folder_Path>/data/tasks/<task_name>/StateManager`

這會啟用無法正常繼續的任務 (例如由於損毀交換檔案)，以使用上述的使用本機儲存的檢查點復原選項復原。不過，若資料資料夾中的檔案損毀，或者若包含資料資料夾的儲存裝置故障，則必須改用使用儲存在目標的檢查點復原選項復原任務。

### 限制和考慮事項

使用此選項時，應注意下列考慮事項和限制：

* 只有在 CDC 完成之前，於任務設定的*變更處理微調*索引標籤中啟用在目標資料庫中儲存任務復原資料選項時，才能使用此選項。

* 套用變更模式必須設定為交易。

* 僅支援下列資料來源類型：

  * Amazon RDS for MySQL
  * Amazon RDS for PostgreSQL
  * Amazon RDS for SQL
  * AWS Aurora Cloud for PostgreSQL
  * Google Cloud SQL for MySQL
  * Google Cloud SQL for PostgreSQL
  * IBM DB2 for z/OS
  * Microsoft Azure Database for MySQL
  * Microsoft Azure SQL 受控執行個體
  * Microsoft SQL Server
  * MySQL
  * Oracle
  * PostrgreSQL
  * SAP HANA

* 僅支援 Microsoft SQL Server 目標類型。

* 只能在 CDC 期間復原任務 (在完整載入完成之後)

### 設定並發起任務復原

為了成功復原，自任務失敗時間起，必須能夠使用來源資料庫交易記錄。

若要設定任務進行復原

1. 確認在任務設定的變更處理微調索引標籤中啟用在目標資料庫中儲存任務復原資料選項。可以在 CDC 期間的任何時候啟用此選項，不過必須在 CDC 完成之前啟用。

2. 執行任務。

除了選取的來源表格，任務會將檢查點資料寫入到目標資料庫中的 attrep\_txn\_state 表格 (若尚未由另一個任務建立，則會自動建立表格)。

若要發起復原

1. 存取目標資料庫中的 attrep\_txn\_state 表格並在TASK\_NAME 欄中找到失敗的任務。若有名稱相同的任務在多個 Qlik Talend Data Integration 伺服器上執行，您也將需要在 SERVER\_NAME 欄中找到適當的伺服器。找到相關任務後，在對應的 CHECKPOINT 欄中複製值。
2. 選取使用儲存在目標上的檢查點復原選項，然後提供 CHECKPOINT 值 (最好使用貼上方法)，如上所述。
3. 按一下確定以開始復原。

復原期間，在識別對應至 CHECKPOINT 值的認可事件之前，複寫任務不會將任何內容寫入到目標資料庫。識別 CHECKPOINT 認可事件後，會執行復原，任務會還原為標準操作。