本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 PostgreSQL 作為下列項目的來源AWS SCT
您可以使用AWS SCT將結構描述、資料庫程式碼物件和應用程式程式碼從 PostgreSQL 轉換為下列目標:
Amazon RDS for MySQL
Amazon Aurora MySQL-Compatible Edition
Amazon RDS for PostgreSQL
Amazon Aurora PostgreSQL-Compatible Edition
如需詳細資訊,請參閱下列章節:
將 PostgreSQL 作為來源資料庫的權限
PostgreSQL 作為來源所需的權限如下:
-
CONNECT ON DATABASE
<database_name>
-
USAGE ON SCHEMA
<database_name>
-
SELECT ON ALL TABLES IN SCHEMA
<database_name>
-
SELECT ON ALL SEQUENCES IN SCHEMA
<database_name>
連線至 PostgreSQL 作為來源
使用以下程序,透過 AWS Schema Conversion Tool 連接到您的 PostgreSQL 來源資料庫。
若要連接到 PostgreSQL 來源資料庫
-
在中AWS Schema Conversion Tool,選擇「新增來源」。
-
選擇 PostgreSQL,然後選擇「下一步」。
這時系統顯示「添加源」對話框。
-
為使用連線,輸入資料庫的名稱。 AWS SCT在左側面板的樹狀結構中顯示此名稱。
-
使用資料庫認證來源AWS Secrets Manager或手動輸入:
-
若要使用來自 Secrets Manager 的資料庫認證,請遵循下列指示:
-
對於 AWS 機密,請選擇密碼的名稱。
-
選擇填入來自 Secrets Manager 的資料庫連線對話方塊中自動填入所有值。
如需使用來自 Secrets Manager 之資料庫認證的資訊,請參閱使用 AWS Secrets Manager。
-
-
若要手動輸入 PostgreSQL 來源資料庫連線資訊,請使用下列指示:
參數 動作 伺服器名稱 輸入來源資料庫伺服器的網域名稱系統 (DNS) 名稱或 IP 地址。
您可以使用 IPv6 地址協議來連線至來源 PostgreSQL 資料庫。若要這麼做,請務必使用方括號來輸入 IP 地址,如下列範例所示。
[2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]
伺服器連接埠 輸入用於連接到來源資料庫伺服器的連接埠。
Database (資料庫) 輸入 PostgreSQL 資料庫的名稱。
使用者名稱和密碼 輸入要連線到來源資料庫伺服器的資料庫認證。
AWS SCT只有當您選擇連線至專案中的資料庫時,才會使用密碼來連線至來源資料庫。為了防止公開來源資料庫的密碼,預設AWS SCT不會儲存密碼。如果您關閉 AWS SCT 專案再重新開啟,系統會在需要時提示您輸入密碼以便連接到您的來源資料庫。
Use SSL (使用 SSL) 選擇此選項,使用 Secure Sockets Layer (SSL) 來連線至您的資料庫。在 SSL 索引標籤上提供下列其他資訊 (如適用):
-
驗證伺服器憑證:選取此選項可使用信任存放區驗證伺服器憑證。
-
信任存放區:包含憑證的信任存放區的位置。若要讓此位置顯示在「全域設定」區段中,請務必新增該位置。
儲存密碼 AWS SCT 會建立安全的保存庫來存放 SSL 憑證和資料庫密碼。啟用此選項可讓您存放資料庫密碼,並快速連接到資料庫而無需輸入密碼。
驅動程 PostgreSQL 路徑 輸入用於連接至來源資料庫的驅動程式路徑。如需詳細資訊,請參閱下載所需資料庫驅動程式。
如果您在全域專案設定中存放驅動程式路徑,驅動程式路徑不會顯示在連線對話方塊中。如需詳細資訊,請參閱在全域設定中儲存驅動程式路徑。
-
-
-
選擇「測試連線」以確認是否AWS SCT可以連線到來源資料庫。
-
選擇「Connect」以連線到來源資料庫。
將 MySQL 作為目標資料庫的權限
當您從 PostgreSQL 遷移時,MySQL 作為目標所需的權限如下:
建立於 * 。 *
變更於 * 。 *
下降 * 。 *
索引 * 。 *
參考 * 。 *
SELECT ON *.*
在 * 上建立檢視 。 *
SHOW VIEW ON *.*
觸發 * 。 *
在 * 上創建例程 。 *
改變例程 * 。 *
執行日期 * 。 *
插入,在下一個更新。 *
插入、更新、刪除 *
在檔案資料上建立暫存資料表。 *
您可以使用下列程式碼範例來建立資料庫使用者並授與權限。
CREATE USER '
user_name
' IDENTIFIED BY 'your_password
'; GRANT CREATE ON *.* TO 'user_name
'; GRANT ALTER ON *.* TO 'user_name
'; GRANT DROP ON *.* TO 'user_name
'; GRANT INDEX ON *.* TO 'user_name
'; GRANT REFERENCES ON *.* TO 'user_name
'; GRANT SELECT ON *.* TO 'user_name
'; GRANT CREATE VIEW ON *.* TO 'user_name
'; GRANT SHOW VIEW ON *.* TO 'user_name
'; GRANT TRIGGER ON *.* TO 'user_name
'; GRANT CREATE ROUTINE ON *.* TO 'user_name
'; GRANT ALTER ROUTINE ON *.* TO 'user_name
'; GRANT EXECUTE ON *.* TO 'user_name
'; GRANT INSERT, UPDATE ON AWS_POSTGRESQL_EXT.* TO 'user_name
'; GRANT INSERT, UPDATE, DELETE ON AWS_POSTGRESQL_EXT_DATA.* TO 'user_name
'; GRANT CREATE TEMPORARY TABLES ON AWS_POSTGRESQL_EXT_DATA.* TO 'user_name
';
在上述範例中,使用 user_name 來取代 user_name
,使用您的使用者名稱。然後,用安全的密碼替換您
的密碼。
若要使用適用於 MySQL 的 Amazon RDS for MySQL 或 Aurora MySQL 作為目標,請將lower_case_table_names
參數設定為1
。此值意味著 MySQL 服務器處理不區分大小寫的表,索引,觸發器和數據庫等對象名稱的標識符。如果您已在目標執行個體中開啟二進位記錄功能,請將log_bin_trust_function_creators
參數設定為1
。在這種情況下,您不需要使用DETERMINISTIC
、READS SQL DATA
或NO SQL
特性來建立已儲存的函數。若要設定這些參數,請建立新的資料庫參數群組或修改現有的資料庫參數群組。