使用 AWS Schema Conversion Tool 连接到 SAP 数据库
您可以使用 AWS SCT 将架构、数据库代码对象和应用程序代码从 SAP (Sybase) Adaptive Server Enterprise (ASE) 转换为以下目标:
Amazon RDS for MySQL
Amazon Aurora MySQL 兼容版
Amazon RDS for MariaDB
Amazon RDS for PostgreSQL
Amazon Aurora PostgreSQL-Compatible Edition
有关详细信息,请参阅以下章节:
主题
将 SAP ASE 用作源数据库的权限
要将 SAP ASE 数据库作为源,您需要创建数据库用户并授予权限。为此,请执行以下步骤:
创建和配置数据库用户
连接到源数据库。
使用以下命令创建数据库用户。提供新用户密码。
USE master CREATE LOGIN min_privs WITH PASSWORD<password>sp_adduser min_privs grant select on dbo.spt_values to min_privs grant select on asehostname to min_privs为要迁移的每个数据库授予以下权限。
USE<database_name>sp_adduser min_privs grant select on dbo.sysusers to min_privs grant select on dbo.sysobjects to min_privs grant select on dbo.sysindexes to min_privs grant select on dbo.syscolumns to min_privs grant select on dbo.sysreferences to min_privs grant select on dbo.syscomments to min_privs grant select on dbo.syspartitions to min_privs grant select on dbo.syspartitionkeys to min_privs grant select on dbo.sysconstraints to min_privs grant select on dbo.systypes to min_privs grant select on dbo.sysqueryplans to min_privs
连接到作为源的 SAP ASE (Sybase)
使用 AWS Schema Conversion Tool 按照以下过程连接到 SAP ASE 源数据库。
连接到 SAP ASE 源数据库
-
在 AWS Schema Conversion Tool 中,选择添加源。
-
选择 SAP ASE,然后选择下一步。
此时显示添加源对话框。
-
对于连接名称,输入数据库的名称。AWS SCT 会在左侧面板的树中显示此名称。
-
使用来自 AWS Secrets Manager 的数据库凭证或手动输入:
-
要使用 Secrets Manager 中的数据库凭证,请按照以下说明进行操作:
-
对于 AWS 密钥,请选择密钥的名称。
-
选择填充可使用 Secrets Manager 中的数据库凭证自动填写数据库连接对话框中的所有值。
有关使用 Secrets Manager 中的数据库凭证的信息,请参阅在 AWS Schema Conversion Tool 中配置 AWS Secrets Manager。
-
-
要手动输入 SAP ASE 源数据库连接信息,请按照以下说明进行操作:
参数 操作 服务器名称 输入源数据库服务器的域名系统(DNS)名称或 IP 地址。
服务器端口 输入用于连接到源数据库服务器的端口。
数据库 输入 SAP ASE 数据库的名称。
用户名和密码 输入数据库凭证,以便连接到源数据库服务器。
注意
仅当您选择连接到项目中的数据库时,AWS SCT 才使用密码连接到源数据库。为了避免泄露源数据库的密码,AWS SCT 不会默认存储该密码。如果您关闭了 AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。
使用 SSL 选择此选项以使用安全套接字层 (SSL) 连接到数据库。在 SSL 选项卡上提供以下其他信息(如适用):
-
验证服务器证书:选择此选项以使用信任存储验证服务器证书。
-
信任存储:包含证书的信任存储的位置。
存储密码 AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。
SAP ASE 驱动程序路径 输入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 为 AWS Schema Conversion Tool 安装 JDBC 驱动程序。
如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径。
-
-
-
选择测试连接以验证 AWS SCT 是否可以连接到源数据库。
-
选择连接以连接到源数据库。
将 MySQL 用作目标数据库的权限
下面列出了将 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_SAPASE_EXT.*
CREATE TEMPORARY TABLES ON AWS_SAPASE_EXT.*
您可以使用以下代码示例创建数据库用户并授予权限。
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_SAPASE_EXT.* TO 'user_name'; GRANT CREATE TEMPORARY TABLES ON AWS_SAPASE_EXT.* 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 特性创建存储函数。要配置这些参数,请创建新的数据库参数组或修改现有数据库参数组。
SAP ASE 到 MySQL 的转换设置
要编辑 SAP ASE 到 MySQL 的转换设置,请选择设置,然后选择转换设置。从上面的列表中选择 SAP ASE,然后选择 SAP ASE – MySQL 或 SAP ASE – Amazon Aurora(兼容 MySQL)。AWS SCT 显示 SAP ASE 到 PostgreSQL 转换的所有可用设置。
AWS SCT 中的 SAP ASE 到 MySQL 转换设置包括以下选项:
-
限制转换后的代码中操作项的注释数量。
对于在转换后的代码中为所选严重性级别及更高级别的操作项添加注释,请选择操作项的严重性。AWS SCT 会在转换后的代码中为所选严重性级别及更高级别的操作项添加注释。
例如,要最大限度地减少转换后的代码中的注释数量,请选择仅错误。要在转换后的代码中包含所有操作项的注释,请选择所有消息。
-
在转换后的代码中使用源数据库对象的确切名称。
默认情况下,AWS SCT 将数据库对象、变量和参数的名称转换为小写。要保持这些名称的原始大小写,请选择源数据库对象名称区分大小写。如果源 SAP ASE 数据库服务器中使用区分大小写的对象名称,请选择此选项。
将 PostgreSQL 用作目标数据库的权限
要使用 PostgreSQL 作为目标,AWS SCT 需要 CREATE ON DATABASE 权限。请确保为每个目标 PostgreSQL 数据库授予此权限。
要使用转换后的公共同义词,请将数据库的默认搜索路径更改为 "$user", public_synonyms, public。
您可以使用以下代码示例创建数据库用户并授予权限。
CREATE ROLEuser_nameLOGIN PASSWORD 'your_password'; GRANT CREATE ON DATABASEdb_nameTOuser_name; ALTER DATABASEdb_nameSET SEARCH_PATH = "$user", public_synonyms, public;
在前面的示例中,将 user_name 替换为用户名。然后,将 db_name 替换为目标数据库名称。最后,将 your_password 替换为安全密码。
在 PostgreSQL 中,只有架构所有者或 superuser 才能删除架构。即使架构的所有者并不拥有架构的某些对象,该所有者也可以删除该架构及其包含的所有对象。
使用不同的用户转换不同的架构并将其应用到目标数据库时,若 AWS SCT 无法删除架构,您可能会收到一条错误消息。要避免出现此错误消息,请使用 superuser 角色。
SAP ASE 到 PostgreSQL 的转换设置
要编辑 SAP ASE 到 PostgreSQL 的转换设置,请选择设置,然后选择转换设置。从上面的列表中选择 SAP ASE,然后选择 SAP ASE – PostgreSQL 或 SAP ASE – Amazon Aurora(兼容 PostgreSQL)。AWS SCT 显示 SAP ASE 到 PostgreSQL 转换的所有可用设置。
AWS SCT 中 SAP ASE 到 PostgreSQL 的转换设置包括以下选项:
-
限制转换后的代码中操作项的注释数量。
对于在转换后的代码中为所选严重性级别及更高级别的操作项添加注释,请选择操作项的严重性。AWS SCT 会在转换后的代码中为所选严重性级别及更高级别的操作项添加注释。
例如,要最大限度地减少转换后的代码中的注释数量,请选择仅错误。要在转换后的代码中包含所有操作项的注释,请选择所有消息。
-
定义要在转换后的代码中用于架构名称的模板。对于架构名称生成模板,选择以下选项之一:
<source_db>:使用 SAP ASE 数据库名称作为 PostgreSQL 中的架构名称。
<source_schema>:使用 SAP ASE 架构名称作为 PostgreSQL 中的架构名称。
<source_db>_<schema>:使用 SAP ASE 数据库名称和架构名称的组合作为 PostgreSQL 中的架构名称。
-
在转换后的代码中使用源数据库对象的确切名称。
默认情况下,AWS SCT 将数据库对象、变量和参数的名称转换为小写。要保持这些名称的原始大小写,请选择源数据库对象名称区分大小写。如果源 SAP ASE 数据库服务器中使用区分大小写的对象名称,请选择此选项。
对于区分大小写的操作,AWS SCT 可以避免将数据库对象名称转换为小写。为此,请选择避免将区分大小写的操作转换为小写。
-
允许在 SAP ASE 的不同表中使用同名索引。
在 PostgreSQL 中,架构中使用的所有索引名称都必须是唯一的。要确保 AWS SCT 为所有索引生成唯一的名称,请选择为索引生成唯一名称。