Babelfish 问题排查 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Babelfish 问题排查

下文介绍了 Babelfish for Aurora PostgreSQL 数据库集群某些问题的排查思路和解决方法。

连接失败

导致新 Aurora 数据库集群与 Babelfish 连接失败的常见原因包括:

  • 安全组不允许访问 – 如果您在连接到 Babelfish 时遇到问题,请确保将 IP 地址添加到原定设置的 Amazon EC2 安全组中。您可以使用 https://checkip.amazonaws.com/ 以确定您的 IP 地址,然后将其添加到 TDS 端口和 PostgreSQL 端口的入站规则中。有关更多信息,请参阅《Amazon EC2 用户指南》中的向安全组添加规则

有关 Aurora 连接问题排查的更多信息,请参阅 无法连接到 Amazon RDS 数据库实例

使用 pg_dumppg_restore 需要额外设置

目前,如果尝试使用 PostgreSQL 实用程序 pg_dumppg_restore 将数据库从一个 Babelfish for Aurora PostgreSQL 数据库集群移动到另一个这样的数据库集群,会出现以下错误消息:

psql:bbf.sql:29: ERROR: role "db_owner" does not exist psql:bbf.sql:49: ERROR: role "dbo" does not exist

若要解决此问题,首先在目标集群上创建与源集群上相同的逻辑数据库。完成后,您就可以创建运行 pg_dumppg_restore 所需的角色。

使用 pg_dumppg_restore 在 Babelfish 数据库集群之间移动数据库

  1. 使用 psqlpgAdmin 连接到 Babelfish for Aurora PostgreSQL 目标数据库集群。下面的示例使用了 psql。有关更多信息,请参阅 使用 psql 连接到数据库集群

  2. 在目标上创建与源上相同的逻辑数据库。

    CREATE DATABASE your-DB-name
  3. 连接到 Babelfish 数据库实例并创建必要角色。

    CREATE ROLE db_owner; ALTER ROLE db_owner WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN NOREPLICATION NOBYPASSRLS; CREATE ROLE dbo; ALTER ROLE dbo WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN NOREPLICATION NOBYPASSRLS; GRANT db_owner TO dbo GRANTED BY sysadmin; GRANT dbo TO sysadmin GRANTED BY sysadmin;
  4. 使用 pg_restore 将数据库实例从源还原到目标。

若要了解有关使用这些 PostgreSQL 实用程序的更多信息,请参阅 pg_dumppg_restore