轉換工作區動作

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

查看轉換狀態

轉換工作區畫面,其中包含「轉換總覽」分頁,可查看已轉換的物件數量、轉換問題,以及 Gemini 輔助轉換強化功能。
圖 1. 轉換工作區總覽畫面。 (按一下可放大)
轉換工作區畫面,其中包含「轉換總覽」分頁,可查看已轉換的物件數量、轉換問題,以及 Gemini 輔助轉換強化功能。

在「Conversion overview」(轉換總覽) 區段,您可以查看結構定義轉換的所有相關資訊:轉換物件的數量和類型、轉換狀態 (包括未解決或已解決的問題),以及 Gemini 輔助自動轉換提供的強化功能清單。

您也可以使用各類別中的篩選器,依類型、問題嚴重性、未解決或已解決的問題,縮小樹狀檢視中顯示的物件數量。「轉換總覽」僅適用於 升級版轉換工作區。

如要查看程式碼和結構定義轉換進度的詳細資訊,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

  2. 在「Oracle」Oracle分頁中,使用結構定義樹狀檢視畫面執行下列任一操作:
    • 選取「 Oracle」Oracle,即可查看工作區中所有已轉換結構定義內的所有物件資訊。
    • 選取特定結構定義或物件,即可查看部分物件的轉換詳細資料。
  3. 在「Conversion overview」(轉換總覽) 分頁中,查看「Converted object summary」(已轉換物件摘要) 區段中的資訊。使用「Show objects」(顯示物件) 按鈕,將任何篩選器套用至「Oracle」分頁中的樹狀檢視。
  4. 使用「Conversion issues」(轉換問題) 分頁標籤,開始解決轉換問題。詳情請參閱「 修正轉換問題」。

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

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

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

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

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

在來源結構定義中新增物件

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

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

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

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

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

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

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

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

提取更新後的資料庫結構定義和程式碼,不會重設轉換工作區中現有的任何自訂對應關係,除非您明確選擇移除自訂對應關係。此外,提取來源不會覆寫程式碼物件的 SQL 變更。您可以直接在物件層級重設這些變更。

如果您使用上傳至 Cloud Storage 的 JSON 中繼資料檔案初始化轉換工作區,系統就無法自動偵測新物件,因為檔案是資料庫物件的靜態表示法。如要重新整理來源結構定義,並保留現有的自訂對應和 SQL 修改內容,請再次執行擷取作業,並將更新後的結構定義檔案上傳至 Cloud Storage bucket 中的相同資料夾 (覆寫先前的檔案),然後再次提取快照。詳情請參閱「 使用 Python 指令碼擷取結構定義中繼資料」。如果改用「Edit source configuration」(編輯來源設定),將工作區切換至其他 Cloud Storage 資料夾或來源連線設定檔,資料庫遷移服務會重設工作區,並移除所有選取的物件、草稿結構定義、自訂對應關係和 DDL 修改項目。

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

  2. 依序點選「 編輯設定」>「再次提取來源結構定義快照」。
  3. 在對話方塊中:
    1. 選用:選取「移除所有自訂對應關係」,即可移除現有的自訂對應關係。提取來源結構定義不會重設物件的 SQL 程式碼修改內容。
    2. 按一下「提取結構定義快照」。

      資料庫遷移服務會從您設定的來源提取新的快照。

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

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

使用自訂轉換對應

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

撰寫自訂對應檔案

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

  1. 查看支援的轉換指令清單。

  2. 請參考 設定檔範例。

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

新增自訂對應檔

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

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

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

移除自訂對應檔

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

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

  2. 在轉換編輯器頁面中,依序選取 「Edit configuration」(編輯設定) >「Remove custom mapping」(移除自訂對應)。

查看轉換結果

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

控制台

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區)。

    前往「Conversion workspaces」(轉換工作區) 頁面

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

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

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

  4. 選取物件。使用「SQL」和「Conversion issues」(轉換問題) 分頁標籤查看轉換。

  5. 如果您判斷問題只是警告,不需要採取任何行動,可以 將問題標示為已解決。否則,您可以進一步調查,並 在轉換編輯器中修正問題。

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-ddls \
    my-conversion-workspace \
    --region=us-central1 \
    > ./my-ddls-list.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.

此外,建議您對轉換後的物件執行 Gemini 品質評估報表。這些評估會分析轉換後的程式碼,並提供意見回饋,說明其正確性和行為與原始碼的差異。詳情請參閱「 Gemini 品質評估」。

修正轉換問題

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

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

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

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

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

    您可以使用 Google Cloud 控制台查看個別物件,或使用 gcloud CLI 大量查看所有物件。

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

    無論您遇到哪種問題,都可以試試 Gemini 輔助轉換助理,找出解決方案。詳情請參閱「 使用 Gemini 轉換助理」。如果確認問題只是警告,不需要採取任何行動,可以 將問題標示為已解決。

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

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

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

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

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

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

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

    1. 編寫轉換對應檔案。
    2. 將設定檔新增至工作區。
    3. 再次轉換來源,並檢查問題是否仍存在。
    請嘗試從來源分頁中移除物件
    資料庫遷移服務可讓您轉換如要解除轉換程序封鎖,您可以決定稍後再仔細查看錯誤物件。 從「來源」分頁中移除物件。
  4. 測試結構定義,確認資料庫遷移服務能正確將程式碼套用至目的地資料庫。
  5. 如果測試成功,建議您使用「轉換問題」分頁,將問題標示為「已解決」。這樣一來,您就能從轉換總覽中篩除這些問題,稍後再繼續處理。

將問題標示為已解決

在查看及修正轉換問題時,建議您追蹤已修正的問題 (或確定不會影響遷移作業,且不需採取任何行動的問題)。您可以使用「標示為已解決」功能篩除這類問題,讓問題清單更容易瀏覽。

如要將問題標示為已解決,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區),然後選取工作區。

    前往「Conversion workspaces」(轉換工作區) 頁面

  2. 使用「Source tree」(來源樹狀結構) 檢視畫面,選取有轉換問題的物件。
  3. 在「轉換問題」分頁中,按一下問題旁的「標示為已解決」。 現在,您可以在轉換總覽中篩除這些問題。

    問題解決畫面,您可以在此將轉換問題標示為已解決,以便在轉換總覽畫面中篩除這些問題。
    圖 2. 轉換問題畫面,您可以在這裡將問題標示為已解決。(按一下可放大)
    問題解決畫面,您可以在此將轉換問題標示為已解決,以便在轉換總覽畫面中篩除這些問題。

在目的地測試結構定義

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

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

  2. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區)。

    前往「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」(轉換工作區)。

    前往「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」(轉換工作區)。

    前往「Conversion workspaces」(轉換工作區) 頁面

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

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

  3. 點選「建立遷移工作」。

  4. 按照 建立遷移工作一文所述,繼續執行標準遷移工作步驟。

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

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

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

  1. 在「Filter」(篩選器) 欄位中,使用下列其中一種篩選方法:
  2. 從「屬性」清單中,選取下列其中一個自動建議選項:
    1. 「Object name」(物件名稱):依名稱篩選物件,例如 ADMIN。
    2. 「Object type」(物件類型):依多種類型篩選物件,例如「Function」(函式) 或「Table」(資料表)。
    3. 轉換狀態:依轉換狀態篩選物件,例如「敬請採取行動」或「沒有問題」。
    4. 經過 Gemini 強化:篩選出透過 Gemini 自動轉換功能轉換的物件。

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

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

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

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

支援的文字篩選語法

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

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

範例:

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

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

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

type 屬性支援下列常值,以及等式 (=) 和不等式 (!=) 運算子:database、schema、table、column、index、sequence、stored_procedure、function、view、synonym、materialized_view、udt、constraint、database_package、trigger 和 event_trigger。

範例:

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

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

合併文字篩選條件

您可以結合使用多個條件與邏輯運算子。

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

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

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

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

使用 Python 指令碼擷取結構定義中繼資料

建立轉換工作區時,您可以選擇使用資料庫遷移服務建立初始結構定義快照,或使用 Google 提供的 Python 擷取指令碼手動建立。如果來源結構定義有變更,或您想加入其他物件,則必須再次執行擷取作業,重新整理轉換工作區。步驟如下:

  1. 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區)。

    前往「Conversion workspaces」(轉換工作區) 頁面

  2. 按一下「設定工作區」。
  3. 在「Create a conversion workspace」(建立轉換工作區) 頁面中:
    1. 輸入工作區名稱、ID 和區域。
    2. 在「來源資料庫引擎」下拉式選單中,選取「Oracle」。
    3. 在「目的地資料庫引擎」下拉式選單中,選取「PostgreSQL 適用的 Cloud SQL」。
    4. 選用:為工作區啟用 Gemini 設定,然後按一下「繼續」。如果您不打算使用這個工作區進行轉換,只想擷取 Python 擷取指令碼,可以略過這些設定。
  4. 在「Define source and pull schema snapshot」(定義來源並提取結構定義快照) 頁面的「Source connection method」(來源連線方法) 部分,選取「Cloud Storage」。
  5. 在「Before selecting a folder」(選取資料夾之前) 區段中,按一下「Oracle metadata extractor」(Oracle 中繼資料擷取器) 標題旁的「Open」(開啟)。
  6. 按照側邊面板中的操作說明,下載並執行擷取公用程式,針對來源資料庫產生結構定義中繼資料 JSON 檔案。您必須能與來源資料庫建立網路連線,才能使用這項公用程式。
  7. 將擷取的中繼資料 JSON 檔案上傳至專用 Cloud Storage bucket 中的相同資料夾,覆寫先前的檔案。

您現在可以使用新的來源結構定義快照,重新整理轉換工作區。請參閱「 提取來源結構定義和程式碼快照」。