轉換工作區可讓您修正轉換問題、使用互動式編輯器修改物件,以及將轉換後的結構定義套用至目的地資料庫。本頁面將概略說明您可以透過轉換工作區執行的所有動作。
升級工作區,以便使用 Gemini 提供的自動轉換功能
升級轉換工作區後,您就能使用 Gemini 提供的自動轉換功能。
您必須在第一次存取轉換工作區時立即接受對話方塊中的優惠,才能升級轉換工作區:


您無法升級現有的轉換工作區。如果您想使用升級版轉換工作區功能,請 建立新的轉換工作區,以便與遷移工作搭配使用。
從來源結構定義中移除物件
從來源結構定義中移除物件,將這些物件排除在轉換作業之外。日後您可以視需要 新增已移除的物件。
- 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。
- 在「Oracle」分頁中,找出要移除的物件,然後依序選取旁邊的 >「移除」。 「更多」
- 在「移除物件」確認對話方塊中,按一下「移除」。
- 重新整理已轉換的結構定義。按一下
您可以在 PostgreSQL 適用的 Cloud SQL 草稿分頁中檢查轉換後的結構定義。
「轉換來源」。資料庫移轉服務現在會分析您的變更,並產生更新後的 PostgreSQL 結構定義。
在來源結構定義中加入物件
您可以將先前從來源結構定義中移除的物件新增至轉換。
- 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。
- 在「Oracle」分頁中,按一下 「新增物件」。
- 在「新增物件」部分中,使用來源清單選取要新增至來源結構定義的所有實體。
您可以使用「Filter objects」按鈕,減少顯示的物件數量。請參閱「 在來源結構定義檢視畫面中篩選物件」一文。
- 按一下「新增物件」。
- 重新整理已轉換的結構定義。按一下
您可以在 PostgreSQL 適用的 Cloud SQL 草稿分頁中檢查轉換後的結構定義。
「轉換來源」。資料庫移轉服務現在會分析您的變更,並產生更新後的 PostgreSQL 結構定義。
提取來源結構定義和程式碼快照
您隨時可以將結構定義和程式碼從來源資料庫提取到轉換工作區。您可以透過提取來源,在轉換中新增或更新現有物件。
除非您明確選擇移除自訂對應關係,否則擷取更新的資料庫結構定義和程式碼不會重設轉換工作區中的任何自訂對應關係。
此外,拉取來源不會覆寫程式碼物件的 SQL 變更。您可以直接在物件層級重設這些變更。
- 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。
- 依序點選 >「再次提取來源結構定義快照」。 「編輯設定」
- 在對話方塊中:
- 選用:選取「Reset custom mapping」,即可移除現有的自訂對應關係和 DDL 修改項目。
- 按一下「提取結構定義快照」。
資料庫移轉服務會從來源資料庫提取新的快照。
- 重新整理已轉換的結構定義。按一下
您可以在 PostgreSQL 適用的 Cloud SQL 草稿分頁中檢查轉換後的結構定義。
「轉換來源」。資料庫移轉服務現在會分析您的變更,並產生更新後的 PostgreSQL 結構定義。
使用自訂轉換對應
您可以使用轉換對應檔案自訂轉換邏輯。轉換對應檔案是文字檔,其中包含精確的操作說明 (稱為「轉換指示」),說明 Oracle 物件應如何轉換為 PostgreSQL 物件。
撰寫自訂對應檔案
如要編寫自訂對應檔案,請按照下列步驟操作:
請參考 範例設定檔。
在文字編輯器中編寫自訂轉換對應項目,然後上傳至轉換工作區。
新增自訂對應檔案
如要在工作區中新增自訂轉換對應檔案,請按照下列步驟操作:
- 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。
- 在轉換編輯器頁面上,依序選取 >「使用設定檔自訂對應」。 「編輯設定」
- 在「設定檔」方塊中,按一下「瀏覽」,然後使用系統檔案挑選器選取設定檔。
- 依序點選 >「建立對應」。 「新增檔案」
移除自訂對應檔案
如要從工作區中移除自訂轉換對應檔案,請按照下列步驟操作:
- 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。
- 在轉換編輯器頁面上,依序選取 >「移除自訂對應」。 「編輯設定」
查看轉換結果
執行來源轉換作業後,您可以在工作區編輯器區域中查看每個個別轉換物件的轉換結果和可能的問題。您也可以使用 Google Cloud CLI,將所有結果和問題大量儲存到文字檔案。
主控台
前往 Google Cloud 控制台的「Conversion workspaces」。
按一下要使用的轉換工作區的顯示名稱。
轉換工作區編輯器隨即開啟。
選取「Oracle」Oracle分頁,然後在樹狀檢視表格中找出要查看轉換結果的物件。
選取物件。使用「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 物件」。
如要修正結構定義中發現的轉換問題,請按照下列步驟操作:
- 在 Google Cloud 控制台中前往「轉換工作區」,然後選取工作區。
-
查看轉換結果,找出可能的問題。
您可以使用 Google Cloud 主控台查看個別物件,或使用 gcloud CLI 一次查看所有物件。
-
視問題類型而定,您可以直接在工作區編輯器中修正問題,或是提供自訂的轉換對應檔案。展開下列各節,即可進一步瞭解詳情。
無論您遇到哪種類型的轉換問題,都可以試試 Gemini 轉換助理,找出解決方法。詳情請參閱「 使用 Gemini 轉換輔助工具」。
修正內建編輯器支援的物件相關問題
如要修正工作區編輯器支援的物件遇到的問題,請按照下列步驟操作:
- 在「Oracle」樹狀檢視畫面中找出問題,然後選取「Code」分頁標籤。
- 使用 SQL 編輯器更新產生的程式碼。資料庫移轉服務不會驗證您在編輯器中新增的 SQL 程式碼是否正確。
修正內建編輯器不支援的物件問題
如要修正工作區編輯器不支援的物件所遇到的問題,請執行下列任一操作:
- 更新來源中的錯誤物件
- 對於某些問題,您可能需要直接在來源資料庫中變更 Oracle 陳述式。請執行下列步驟:
- 使用轉換對應檔案提供其他對應
-
您可以使用轉換對應檔案,針對資料庫移轉服務應如何轉換特定 PostgreSQL 物件,提供明確的定義。如要使用轉換對應檔案,請按照下列步驟操作:
- 編寫轉換對應檔案。
- 將設定檔新增至工作區。
- 再次轉換來源,然後檢查問題是否已解決。
- 嘗試從來源分頁中移除物件
- 資料庫移轉服務可讓您轉換 .如要解除轉換程序封鎖,您可以決定稍後再仔細查看有問題的物件。 從來源分頁中移除物件。
- 測試結構定義,確認資料庫移轉服務能正確將程式碼套用至目的地資料庫。
在目的地測試結構定義
在將結構定義套用至目的地資料庫前,您可以先執行測試,主動檢查可能的問題。為了執行測試,資料庫移轉服務會建立臨時資料庫。測試執行作業不會影響目的地 Cloud SQL 執行個體。
請確認專責遷移作業的使用者具備
CREATEDB
權限。詳情請參閱「 建立及設定目的地 Cloud SQL 執行個體」。前往 Google Cloud 控制台的「Conversion workspaces」。
按一下要使用的轉換工作區的顯示名稱。
轉換工作區編輯器隨即開啟。
依序按一下「套用至目的地」「測試 (建議)」。
系統會顯示將結構定義套用至目的地資料庫的設定精靈。
在「Define destination」(定義目的地) 部分,選取指向目的地資料庫的連線設定檔。
按一下「定義並繼續」。
在「Select objects and test application」部分,選取要為目的地資料庫測試的資料庫實體結構定義。
您可以使用「Filter objects」按鈕,減少顯示的物件數量。請參閱「 在來源結構定義檢視畫面中篩選物件」。
按一下「測試應用程式」。
您可以在「PostgreSQL 適用的 Cloud SQL」分頁中查看申請狀態。
將結構定義套用至目的地
當您要用於目的地資料庫的結構定義已根據您的需求和對應項目轉換後,即可將結果套用至目的地資料庫。在目的地套用結構定義不會變更來源資料庫中的任何資料。
前往 Google Cloud 控制台的「Conversion workspaces」。
按一下要使用的轉換工作區的顯示名稱。
轉換工作區編輯器隨即開啟。
依序按一下「套用至目的地」>「套用」。
系統會顯示將結構定義套用至目的地資料庫的設定精靈。
在「Define destination」(定義目的地) 部分,選取指向目的地資料庫的連線設定檔。
按一下「定義並繼續」。
在「Review objects and apply conversion to destination」(查看物件並將轉換套用至目的地) 部分,選取要在目的地資料庫中建立的資料庫實體結構定義。
您可以使用「Filter objects」按鈕,減少顯示的物件數量。請參閱「 在來源結構定義檢視畫面中篩選物件」。
按一下「套用至目的地」。
您可以在「PostgreSQL 適用的 Cloud SQL」分頁中查看申請狀態。
透過轉換編輯器建立遷移工作
您可以建立遷移工作,直接從轉換編輯器介面使用轉換工作區。
前往 Google Cloud 控制台的「Conversion workspaces」。
按一下要使用的轉換工作區的顯示名稱。
轉換工作區編輯器隨即開啟。
按一下「建立遷移工作」。
請按照「 建立遷移工作」一文所述的標準遷移工作步驟進行。
在來源結構定義檢視畫面中篩選物件
資料庫結構定義通常包含數千個物件,因此很難進行分割轉換作業。將結構定義快照中的物件新增至來源結構定義檢視畫面時,您可以使用篩選器限制顯示的物件數量。您可以透過篩選器以更精細的方式新增物件,並專注於轉換所選結構定義的子集。
在來源結構定義檢視畫面中新增物件時,請使用篩選器檢視畫面:
- 在「Filter」欄位中,使用下列其中一種篩選方法:
- 在「資源」清單中,選取下列任一自動建議的選項:
- 物件名稱:依名稱篩選物件,例如
ADMIN
。 - 物件類型:依據多種類型篩選物件,例如函式或資料表。
- 轉換狀態:依轉換狀態篩選物件,例如需要採取行動或沒有問題。
- 由 Gemini 強化:篩選出使用 Gemini 自動轉換功能轉換的物件。
您可以結合篩選器屬性和邏輯運算子。
- 物件名稱:依名稱篩選物件,例如
- 輸入查詢。例如:
type=table
。如要進一步瞭解篩選語法,請參閱「 支援的篩選語法」。
- 選取要新增至來源結構定義檢視畫面的物件。
支援的文字篩選語法
您可以使用基本自由文字搜尋功能,依名稱篩選物件,也可以使用專屬的 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*)
因此,篩選器會顯示所有符合條件的資料表:
