遷移作業總覽

如要將資料庫移入或移出 AlloyDB for PostgreSQL,您可以使用資料庫遷移服務,在最短的停機時間內遷移運作中的 PostgreSQL 執行個體,或匯入及匯出儲存在 Cloud Storage 的 CSV、DMP 和 SQL 檔案。

正在匯入資料

您可以透過兩種方法將資料遷移至 AlloyDB:

從檔案匯入封存資料

AlloyDB 可讓您從 Cloud Storage bucket 中的檔案匯入資料。AlloyDB 支援多種資料匯入檔案格式,包括:

  • CSV:每個檔案包含一個資料表的內容,使用 psql 載入。

  • DMP:整個 PostgreSQL 資料庫的二進位封存檔,使用 pg_restore 匯入。

  • SQL:PostgreSQL 資料庫的純文字重建,以 psql 處理。

使用資料庫遷移服務遷移使用中的執行個體

除了手動匯入資料轉儲檔案,您也可以使用 AlloyDB 適用的資料庫遷移服務。這項服務可讓您將運作中 PostgreSQL 執行個體的完整內容 (包括所有資料庫和中繼資料),遷移至新的 AlloyDB 叢集。資料庫遷移服務可協助您將現有應用程式轉換為使用 AlloyDB 做為新的資料儲存庫,並盡可能縮短停機時間。

匯入資料支援的語言代碼

AlloyDB 支援下列語言代碼:

  • ICU 提供的完整語言代碼。
  • libc 提供的部分語言代碼:
    • C.UTF-8
    • en_US.utf8

如果想匯入 AlloyDB 的資料庫預設為此處未列出的 libc 語言代碼,您仍可匯入資料,但不會沿用該預設值。為確保使用 ORDER BY 的 SQL 查詢能正確排序結果,您可能需要在匯入資料後採取額外步驟。

Google 建議允許新資料庫使用 AlloyDB 的預設語言代碼:C.UTF-8,由 libc 提供。接著,將定序與應用程式查詢可能在 ORDER BY 子句中涉及的任何資料欄建立關聯,並為每個資料欄命名適當的 ICU 定序。您可以透過 ALTER TABLE DDL 查詢執行這項操作,例如:

ALTER TABLE TABLE_NAME
    ALTER COLUMN COLUMN_NAME
    SET DATA TYPE COLUMN_DATA_TYPE
    COLLATE "COLLATION_NAME";

更改下列內容:

  • TABLE_NAME:資料欄所在資料表的名稱。
  • COLUMN_NAME:要更新的資料欄名稱。
  • COLUMN_DATA_TYPE:資料欄的資料類型。
  • COLLATION_NAME:要套用的 ICU 定序名稱。

新的 AlloyDB 叢集會根據 ICU 提供的語言代碼定義數百個定序,您也可以使用 PostgreSQL CREATE COLLATION 工具新增更多定序。如要查看 AlloyDB 叢集定義的 ICU 定序名稱完整清單,請在任何執行個體上執行下列查詢:

SELECT collname FROM pg_collation WHERE collprovider = 'i';

除了 ICU 輔助定序,AlloyDB 也支援名為 ucs_basic 的 PostgreSQL 內建定序。這項定序會使用 Unicode 碼點的標準順序,因此排序效率特別高。Google 建議在適當排列順序與 Unicode 碼點清單相符的資料欄中使用。

正在匯出資料

您可以使用指令列公用程式,將 AlloyDB 資料匯出為儲存在 Cloud Storage bucket 的檔案,格式包括:

  • CSV:使用 psql,每個檔案匯出一份資料表。

  • DMP:使用 pg_dump 建立整個資料庫的可攜式二進位封存檔。

  • SQL:使用 pg_dump 建立 DDL 和 SQL 陳述式清單,以重建資料庫。

後續步驟