轉換工作區動作

轉換工作區可讓您修正轉換問題、使用互動式編輯器修改物件,以及將轉換後的結構定義套用至目的地資料庫。本頁面將概略說明您可以透過轉換工作區執行的所有動作。

升級工作區,以便使用 Gemini 提供的自動轉換功能

升級轉換工作區後,您就能使用 Gemini 提供的自動轉換功能。

您必須在第一次存取轉換工作區時立即接受對話方塊中的優惠,才能升級轉換工作區:

對話方塊,顯示轉換工作區介面中的轉換工作區升級優惠。
圖 1. 轉換工作區升級優惠。(按一下即可放大)
對話方塊,顯示轉換工作區介面中的轉換工作區升級優惠。

您無法升級現有的轉換工作區。如果您想使用升級版轉換工作區功能,請 建立新的轉換工作區,以便與遷移工作搭配使用。

從來源結構定義中移除物件

從來源結構定義中移除物件,將這些物件排除在轉換作業之外。日後您可以視需要 新增已移除的物件

  1. 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。

    前往「轉換工作區」

  2. 在「Oracle」分頁中,找出要移除的物件,然後依序選取旁邊的 「更多」>「移除」
  3. 在「移除物件」確認對話方塊中,按一下「移除」
  4. 重新整理已轉換的結構定義。按一下 「轉換來源」。資料庫移轉服務現在會分析您的變更,並產生更新後的 PostgreSQL 結構定義。

    您可以在 PostgreSQL 適用的 Cloud SQL 草稿分頁中檢查轉換後的結構定義。

在來源結構定義中加入物件

您可以將先前從來源結構定義中移除的物件新增至轉換。

  1. 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。

    前往「轉換工作區」

  2. 在「Oracle」分頁中,按一下 「新增物件」
  3. 在「新增物件」部分中,使用來源清單選取要新增至來源結構定義的所有實體。

    您可以使用「Filter objects」按鈕,減少顯示的物件數量。請參閱「 在來源結構定義檢視畫面中篩選物件」一文。

  4. 按一下「新增物件」
  5. 重新整理已轉換的結構定義。按一下 「轉換來源」。資料庫移轉服務現在會分析您的變更,並產生更新後的 PostgreSQL 結構定義。

    您可以在 PostgreSQL 適用的 Cloud SQL 草稿分頁中檢查轉換後的結構定義。

提取來源結構定義和程式碼快照

您隨時可以將結構定義和程式碼從來源資料庫提取到轉換工作區。您可以透過提取來源,在轉換中新增或更新現有物件。

除非您明確選擇移除自訂對應關係,否則擷取更新的資料庫結構定義和程式碼不會重設轉換工作區中的任何自訂對應關係。

此外,拉取來源不會覆寫程式碼物件的 SQL 變更。您可以直接在物件層級重設這些變更。

  1. 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。

    前往「轉換工作區」

  2. 依序點選 「編輯設定」>「再次提取來源結構定義快照」
  3. 在對話方塊中:
    1. 選用:選取「Reset custom mapping」,即可移除現有的自訂對應關係和 DDL 修改項目。
    2. 按一下「提取結構定義快照」

      資料庫移轉服務會從來源資料庫提取新的快照。

  4. 重新整理已轉換的結構定義。按一下 「轉換來源」。資料庫移轉服務現在會分析您的變更,並產生更新後的 PostgreSQL 結構定義。

    您可以在 PostgreSQL 適用的 Cloud SQL 草稿分頁中檢查轉換後的結構定義。

使用自訂轉換對應

您可以使用轉換對應檔案自訂轉換邏輯。轉換對應檔案是文字檔,其中包含精確的操作說明 (稱為「轉換指示」),說明 Oracle 物件應如何轉換為 PostgreSQL 物件。

撰寫自訂對應檔案

如要編寫自訂對應檔案,請按照下列步驟操作:

  1. 查看支援的轉換指示語清單

  2. 請參考 範例設定檔

  3. 在文字編輯器中編寫自訂轉換對應項目,然後上傳至轉換工作區。

新增自訂對應檔案

如要在工作區中新增自訂轉換對應檔案,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。

    前往「轉換工作區」

  2. 在轉換編輯器頁面上,依序選取 「編輯設定」>「使用設定檔自訂對應」
  3. 在「設定檔」方塊中,按一下「瀏覽」,然後使用系統檔案挑選器選取設定檔。
  4. 依序點選 「新增檔案」>「建立對應」

移除自訂對應檔案

如要從工作區中移除自訂轉換對應檔案,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。

    前往「轉換工作區」

  2. 在轉換編輯器頁面上,依序選取 「編輯設定」>「移除自訂對應」

查看轉換結果

執行來源轉換作業後,您可以在工作區編輯器區域中查看每個個別轉換物件的轉換結果和可能的問題。您也可以使用 Google Cloud CLI,將所有結果和問題大量儲存到文字檔案。

主控台

  1. 前往 Google Cloud 控制台的「Conversion workspaces」

    前往「轉換工作區」

  2. 按一下要使用的轉換工作區的顯示名稱。

    轉換工作區編輯器隨即開啟。

  3. 選取「Oracle」Oracle分頁,然後在樹狀檢視表格中找出要查看轉換結果的物件。

  4. 選取物件。使用「SQL」和「轉換問題」分頁查看轉換。

gcloud

您可以使用 Google Cloud CLI 將所有轉換結果或問題列印到終端機。將輸出內容重新導向至檔案,方便您檢查大量物件。

取得轉換結果清單

gcloud CLI 會在終端機中以資料定義語言 (DDL) 陳述式的形式顯示轉換結果。如要將轉換結果儲存至檔案,請執行下列指令:

  gcloud database-migration conversion-workspaces describe-ddls \
  CONVERSION_WORKSPACE_ID \
  --region=REGION_ID \
  > OUTPUT_FILE_PATH

取代:

  • CONVERSION_WORKSPACE_ID 與轉換工作區 ID。如要瞭解如何擷取轉換工作區 ID,請參閱「 查看轉換工作區詳細資料」。
  • REGION_ID:轉換工作區所在區域的名稱。
  • OUTPUT_FILE_PATH 與要儲存輸出內容的文字檔案路徑。

    範例:

    gcloud database-migration conversion-workspaces describe-issues \
    my-conversion-workspace \
    --region=us-central1 \
    > ./my-conversion-issues.txt
    

    結果:

    結構定義轉換結果會以文字格式儲存,第一行會顯示 DDLs,後續各行則會顯示 SQL 陳述式:

    DDLs
    CREATE SCHEMA IF NOT EXISTS "SCHEMA1";
    ALTER TABLE "SCHEMA1"."EMPLOYEES" ADD CONSTRAINT PK_ID PRIMARY KEY ("ID");
    CREATE OR REPLACE FUNCTION mockschema.func_test_datatype(str1 VARCHAR(65000))
      RETURNS DECIMAL
      LANGUAGE plpgsql
      AS $$
        DECLARE
          str2 VARCHAR(100);
        BEGIN
          SELECT
              employees.first_name
            INTO STRICT
              STR2
            FROM
              mockschema.employees
            WHERE employees.employee_id = CAST(FUNC_TEST_DATATYPE.str1 as DECIMAL)
          ;
          RAISE NOTICE '%', concat('Input : ', FUNC_TEST_DATATYPE.str1, ' Output : ', str2);
          RETURN 0;
        END;
      $$;
    CREATE OR REPLACE PROCEDURE greetings AS BEGIN dbms_output.put_line('Hello World!'); END;
    CREATE SYNONYM TABLE "SCHEMA1"."SYNONYM1" ON "SCHEMA1"."EMPLOYEES";
    CREATE OR REPLACE VIEW "SCHEMA1"."VIEW1" AS SELECT * FROM JOBS;
    

取得轉換問題清單

如要將轉換問題儲存到檔案,請執行下列指令:

  gcloud database-migration conversion-workspaces describe-issues \
  CONVERSION_WORKSPACE_ID \
  --region=REGION_ID \
  > OUTPUT_FILE_PATH

替換:

  • CONVERSION_WORKSPACE_ID 與轉換工作區 ID。如要瞭解如何擷取轉換工作區 ID,請參閱「 查看轉換工作區詳細資料」。
  • REGION_ID 與轉換工作區所在區域的名稱。
  • OUTPUT_FILE_PATH 與要儲存輸出內容的文字檔路徑。

範例:

  gcloud database-migration conversion-workspaces describe-issues \
  my-conversion-workspace \
  --region=us-central1 \
  > ./my-conversion-issues.txt

結果:

工作區中包含的所有轉換問題都會以文字格式儲存,第一行包含欄標題,後續每行則包含個別的轉換問題:

  PARENT   NAME               ENTITY_TYPE       ISSUE_TYPE  ISSUE_SEVERITY  ISSUE_CODE  ISSUE_MESSAGE
  SCHEMA1  EMPLOYEES          TABLE             DDL         ERROR           500         unable to parse DDL.
  SCHEMA1  EMPLOYEES          TABLE             CONVERT     WARNING         206         no conversion done.
  SCHEMA1  STORED_PROCEDURE1  STORED_PROCEDURE  DDL         ERROR           500         invalid DDL.
  SCHEMA1  SYNONYM1           SYNONYM           CONVERT     WARNING         206         synonym warning message.

修正轉換問題

資料庫移轉服務可能無法自動轉換整個來源。對於大多數 Oracle 物件,您可以直接在資料庫移轉服務中使用轉換編輯器,調整產生的 SQL。對於其他物件,您可能需要直接在來源資料庫中變更物件,然後再次提取來源快照

如需完整清單,瞭解資料庫遷移服務支援在轉換工作區中直接編輯的物件,請參閱「 可編輯的 Oracle 物件」。

如要修正結構定義中發現的轉換問題,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。

    前往「轉換工作區」

  2. 查看轉換結果,找出可能的問題。

    您可以使用 Google Cloud 主控台查看個別物件,或使用 gcloud CLI 一次查看所有物件。

  3. 視問題類型而定,您可以直接在工作區編輯器中修正問題,或是提供自訂的轉換對應檔案。展開下列各節,即可進一步瞭解詳情。

    無論您遇到哪種類型的轉換問題,都可以試試 Gemini 轉換助理,找出解決方法。詳情請參閱「 使用 Gemini 轉換輔助工具」。

    修正內建編輯器支援的物件相關問題

    如要修正工作區編輯器支援的物件遇到的問題,請按照下列步驟操作:

    1. 在「Oracle」樹狀檢視畫面中找出問題,然後選取「Code」分頁標籤。
    2. 使用 SQL 編輯器更新產生的程式碼。資料庫移轉服務不會驗證您在編輯器中新增的 SQL 程式碼是否正確。

    修正內建編輯器不支援的物件問題

    如要修正工作區編輯器不支援的物件所遇到的問題,請執行下列任一操作:

    更新來源中的錯誤物件
    對於某些問題,您可能需要直接在來源資料庫中變更 Oracle 陳述式。請執行下列步驟:
    1. 直接在來源資料庫中更新結構定義和程式碼。
    2. 將更新後的來源資料拉至資料庫移轉服務。
    3. 再次轉換來源,並檢查問題是否已解決。
    使用轉換對應檔案提供其他對應

    您可以使用轉換對應檔案,針對資料庫移轉服務應如何轉換特定 PostgreSQL 物件,提供明確的定義。如要使用轉換對應檔案,請按照下列步驟操作:

    1. 編寫轉換對應檔案
    2. 將設定檔新增至工作區
    3. 再次轉換來源,然後檢查問題是否已解決。
    嘗試從來源分頁中移除物件
    資料庫移轉服務可讓您轉換 .如要解除轉換程序封鎖,您可以決定稍後再仔細查看有問題的物件。 從來源分頁中移除物件
  4. 測試結構定義,確認資料庫移轉服務能正確將程式碼套用至目的地資料庫。

在目的地測試結構定義

在將結構定義套用至目的地資料庫前,您可以先執行測試,主動檢查可能的問題。為了執行測試,資料庫移轉服務會建立臨時資料庫。測試執行作業不會影響目的地 Cloud SQL 執行個體。

  1. 請確認專責遷移作業的使用者具備 CREATEDB 權限。詳情請參閱「 建立及設定目的地 Cloud SQL 執行個體」。

  2. 前往 Google Cloud 控制台的「Conversion workspaces」

    前往「轉換工作區」

  3. 按一下要使用的轉換工作區的顯示名稱。

    轉換工作區編輯器隨即開啟。

  4. 依序按一下「套用至目的地」「測試 (建議)」

    系統會顯示將結構定義套用至目的地資料庫的設定精靈。

  5. 在「Define destination」(定義目的地) 部分,選取指向目的地資料庫的連線設定檔。

  6. 按一下「定義並繼續」

  7. 在「Select objects and test application」部分,選取要為目的地資料庫測試的資料庫實體結構定義。

    您可以使用「Filter objects」按鈕,減少顯示的物件數量。請參閱「 在來源結構定義檢視畫面中篩選物件」。

  8. 按一下「測試應用程式」

    您可以在「PostgreSQL 適用的 Cloud SQL」分頁中查看申請狀態。

將結構定義套用至目的地

當您要用於目的地資料庫的結構定義已根據您的需求和對應項目轉換後,即可將結果套用至目的地資料庫。在目的地套用結構定義不會變更來源資料庫中的任何資料。

  1. 前往 Google Cloud 控制台的「Conversion workspaces」

    前往「轉換工作區」

  2. 按一下要使用的轉換工作區的顯示名稱。

    轉換工作區編輯器隨即開啟。

  3. 依序按一下「套用至目的地」>「套用」

    系統會顯示將結構定義套用至目的地資料庫的設定精靈。

  4. 在「Define destination」(定義目的地) 部分,選取指向目的地資料庫的連線設定檔。

  5. 按一下「定義並繼續」

  6. 在「Review objects and apply conversion to destination」(查看物件並將轉換套用至目的地) 部分,選取要在目的地資料庫中建立的資料庫實體結構定義。

    您可以使用「Filter objects」按鈕,減少顯示的物件數量。請參閱「 在來源結構定義檢視畫面中篩選物件」。

  7. 按一下「套用至目的地」

    您可以在「PostgreSQL 適用的 Cloud SQL」分頁中查看申請狀態。

透過轉換編輯器建立遷移工作

您可以建立遷移工作,直接從轉換編輯器介面使用轉換工作區。

  1. 前往 Google Cloud 控制台的「Conversion workspaces」

    前往「轉換工作區」

  2. 按一下要使用的轉換工作區的顯示名稱。

    轉換工作區編輯器隨即開啟。

  3. 按一下「建立遷移工作」

  4. 請按照「 建立遷移工作」一文所述的標準遷移工作步驟進行。

在來源結構定義檢視畫面中篩選物件

資料庫結構定義通常包含數千個物件,因此很難進行分割轉換作業。將結構定義快照中的物件新增至來源結構定義檢視畫面時,您可以使用篩選器限制顯示的物件數量。您可以透過篩選器以更精細的方式新增物件,並專注於轉換所選結構定義的子集。

在來源結構定義檢視畫面中新增物件時,請使用篩選器檢視畫面:

  1. 在「Filter」欄位中,使用下列其中一種篩選方法:
  2. 在「資源」清單中,選取下列任一自動建議的選項:
    1. 物件名稱:依名稱篩選物件,例如 ADMIN
    2. 物件類型:依據多種類型篩選物件,例如函式資料表
    3. 轉換狀態:依轉換狀態篩選物件,例如需要採取行動沒有問題
    4. 由 Gemini 強化:篩選出使用 Gemini 自動轉換功能轉換的物件。

    您可以結合篩選器屬性和邏輯運算子。

  3. 輸入查詢。例如:type=table

    如要進一步瞭解篩選語法,請參閱「 支援的篩選語法」。

  4. 選取要新增至來源結構定義檢視畫面的物件。

支援的文字篩選語法

您可以使用基本自由文字搜尋功能,依名稱篩選物件,也可以使用專屬的 type 屬性。這兩種方法都支援 Google API 篩選正式規格,也就是說,您可以使用帶有萬用字元的文字常值,以及邏輯和比較運算子。

使用任意文字,依名稱篩選物件。這種方法會區分大小寫,且支援萬用字元。

範例

*JOB* 查詢使用萬用字元,搜尋包含 JOB 子字串的實體。篩選後的檢視畫面會傳回部分資料表和一個預存程序:

依名稱篩選物件的範例結果螢幕截圖。
使用 type 屬性篩選

您可以依據資料庫遷移服務支援的所有標準類型篩選物件。

type 屬性支援以下字面值,並搭配使用相等 (=) 和不等式 (!=) 運算子:databaseschematablecolumnindexsequencestored_procedurefunctionviewsynonymmaterialized_viewudtconstraintdatabase_packagetriggerevent_trigger

範例

type=table 篩選器只會傳回結構定義中的資料表:

依類型屬性篩選物件的範例結果螢幕截圖。
合併篩選條件

您可以結合使用這些常值與邏輯運算子,指定多個條件。

舉例來說,如果只要搜尋名稱包含 JOBEMPLOYEE 子字串的資料表,請使用下列查詢:

  type=table AND (*JOB* OR *EMPLOYEE*)

因此,篩選器會顯示所有符合條件的資料表:

螢幕截圖:依類型和名稱屬性組合篩選物件的範例結果。