Amazon RDS for Db2 的已知问题和限制
下面各项是有关使用 Amazon RDS for Db2 的已知问题和限制:
身份验证限制
Amazon RDS 将 db2auth
默认设置为 JCC_ENFORCE_SECMEC
。但是,如果您不想通过网络强制使用用户 ID 和密码加密,可以通过将参数组中的 CLEAR_TEXT
参数更改为 db2auth
来覆盖此设置。有关更多信息,请参阅 在 Amazon RDS 中修改数据库参数组中的参数。
非防护例程
RDS for Db2 不支持创建非防护例程,也不支持通过备份和还原数据来迁移这些例程。要检查您的数据库是否包含任何非防护例程,请运行以下 SQL 命令:
SELECT 'COUNT:' || count(*) FROM SYSCAT.ROUTINES where fenced='N' and routineschema not in ('SQLJ','SYSCAT','SYSFUN','SYSIBM','SYSIBMADM','SYSPROC','SYSTOOLS')
迁移期间的非自动存储表空间
RDS for Db2 不支持创建新的非自动存储表空间。当您使用原生还原对数据库进行一次性迁移时,RDS for Db2 会自动将您的非自动存储表空间转换为自动存储表空间,然后将您的数据库还原到 RDS for Db2。有关一次性迁移的信息,请参阅针对 Amazon RDS for Db2 从 Linux 迁移到 Linux和针对 Amazon RDS for Db2 从 AIX 或 Windows 迁移到 Linux。
设置 db2_compatibility_vector 参数
使用 Amazon RDS,您可以在创建数据库实例时创建初始数据库,然后修改关联参数组中的参数。但是,对于 Db2,如果您要在参数组中设置 db2_compatibility_vector
参数,则必须先在自定义参数组中修改此参数,在没有数据库的情况下创建数据库实例,然后使用 rdsadmin.create_database
存储过程创建数据库。
设置 db2_compatibility_vector
参数
迁移包含无效包的数据库
如果您使用 RESTORE
命令,将包含 INVALID
包的 Db2 数据库迁移到 RDS for Db2,则在开始使用数据库时可能会遇到问题。由于数据库实例用户 rdsdb
的授权设置以及删除了从 PUBLIC
授权,INVALID
包可能会导致问题。INVALID
包会导致以下命令失败:
-
db2updv115
-
db2 "call SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()"
在使用 RESTORE
命令迁移数据库之前,请运行以下命令来确保数据库中不包含 INVALID
包:
db2 "select count(*) from sysibm.sysroutines where valid = 'N'"
如果命令返回的计数大于零,则调用以下命令:
db2 "call SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()"
然后,调用前面的命令以确认您的数据库中不再包含 INVALID
包。
db2 "select count(*) from sysibm.sysroutines where valid = 'N'"
现在,您已做好准备,可以备份数据库并将其还原到 RDS for Db2 数据库实例。