轉換工作區可讓您修正轉換問題、使用互動式編輯器修改物件,以及將轉換後的結構定義套用至目的地資料庫。本頁面會概要說明您可透過轉換工作區執行的所有動作。
升級工作區,啟用 Gemini 支援的自動轉換功能
升級後的轉換工作區提供 Gemini 支援的自動轉換和 轉換總覽功能。
如要升級轉換工作區,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Conversion workspaces」(轉換工作區) ,然後選取您的工作區。
-
按一下「瞭解升級後可以取得的功能」,然後在對話方塊中接受優惠:
圖 1. 轉換工作區升級優惠。(按一下即可放大)
查看轉換狀態


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