使用 AWS Schema Conversion Tool 连接到 PostgreSQL 数据库
您可以使用 AWS SCT 将架构、数据库代码对象和应用程序代码从 PostgreSQL 转换到以下目标:
Amazon RDS for MySQL
Amazon Aurora MySQL 兼容版
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 Schema Conversion Tool 中配置 AWS Secrets Manager。
-
-
要手动输入 PostgreSQL 源数据库连接信息,请按照以下说明进行操作:
参数 操作 服务器名称 输入源数据库服务器的域名系统(DNS)名称或 IP 地址。
您可以使用 IPv6 地址协议连接到源 PostgreSQL 数据库。为此,请确保使用方括号输入 IP 地址,如以下示例所示。
[2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]服务器端口 输入用于连接到源数据库服务器的端口。
数据库 输入 PostgreSQL 数据库的名称。
用户名和密码 输入数据库凭证,以便连接到源数据库服务器。
仅当您选择连接到项目中的数据库时,AWS SCT 才使用密码连接到源数据库。为了避免泄露源数据库的密码,AWS SCT 不会默认存储该密码。如果您关闭了 AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。
使用 SSL 选择此选项以使用安全套接字层 (SSL) 连接到数据库。在 SSL 选项卡上提供以下其他信息(如适用):
-
验证服务器证书:选择此选项以使用信任存储验证服务器证书。
-
信任存储:包含证书的信任存储的位置。要使此位置显示在全局设置部分,请务必将其添加。
存储密码 AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。
PostgreSQL 驱动程序路径 输入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 为 AWS Schema Conversion Tool 安装 JDBC 驱动程序。
如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径。
-
-
-
选择测试连接以验证 AWS SCT 是否可以连接到源数据库。
-
选择连接以连接到源数据库。
将 MySQL 用作目标数据库的权限
从 PostgreSQL 迁移时,MySQL 作为目标所需的权限如下:
CREATE ON *.*
ALTER ON *.*
DROP ON *.*
INDEX ON *.*
REFERENCES ON *.*
SELECT ON *.*
CREATE VIEW ON *.*
SHOW VIEW ON *.*
TRIGGER ON *.*
CREATE ROUTINE ON *.*
ALTER ROUTINE ON *.*
EXECUTE ON *.*
INSERT, UPDATE ON AWS_POSTGRESQL_EXT.*
INSERT, UPDATE, DELETE ON AWS_POSTGRESQL_EXT_DATA.*
CREATE TEMPORARY TABLES ON AWS_POSTGRESQL_EXT_DATA.*
您可以使用以下代码示例创建数据库用户并授予权限。
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 替换为用户名。然后,将 your_password 替换为安全密码。
要使用 Amazon RDS for MySQL 或 Aurora MySQL 作为目标,请将 lower_case_table_names 参数设置为 1。此值意味着 MySQL 服务器在处理表、索引、触发器和数据库等对象名称的标识符时不区分大小写。如果目标实例中已开启二进制日志记录,请将 log_bin_trust_function_creators 参数设置为 1。在这种情况下,您无需使用 DETERMINISTIC、READS SQL DATA 或 NO SQL 特性创建存储函数。要配置这些参数,请创建新的数据库参数组或修改现有数据库参数组。