View a markdown version of this page

使用兼容 PostgreSQL 的客户端访问 Aurora DSQL - Amazon Aurora DSQL

使用兼容 PostgreSQL 的客户端访问 Aurora DSQL

Aurora DSQL 使用 PostgreSQL 有线协议。您可以通过各种工具和客户端(例如,AWS CloudShell、psql、DBeaver 和 DataGrip)连接到 PostgreSQL。下表汇总了 Aurora DSQL 与常见 PostgreSQL 连接参数的对应关系:

PostgreSQL Aurora DSQL 备注
角色(也称为用户或组) 数据库角色 Aurora DSQL 为您创建一个名为 admin 的角色。当您创建自定义数据库角色时,您必须使用 admin 角色将其与 IAM 角色关联,以便在连接到集群时进行身份验证。有关更多信息,请参阅 使用数据库角色和 IAM 身份验证
主机(也称为主机名或主机规格) 集群端点 Aurora DSQL 单区域集群提供单个托管式端点,当区域内出现不可用性问题时会自动重定向流量。
端口 不适用:使用默认值 5432 这是 PostgreSQL 默认值。
数据库(dbname) 使用 postgres Aurora DSQL 会在您创建集群时为您创建此数据库。
SSL 模式 始终在服务器端启用 SSL 在 Aurora DSQL 中,Aurora DSQL 支持 require SSL 模式。Aurora DSQL 会拒绝没有 SSL 的连接。
密码 身份验证令牌 Aurora DSQL 需要临时身份验证令牌,而不是长期密码。要了解更多信息,请参阅在 Amazon Aurora DSQL 中生成身份验证令牌

连接时,Aurora DSQL 要求使用签名的 IAM 身份验证令牌替代传统密码。这些临时令牌通过 AWS 签名版本 4 生成,并且仅在建立连接期间使用。建立连接后,会话将保持活动状态,直至会话结束或客户端断开连接。

如果您尝试使用过期的令牌打开新会话,连接请求将失败,并且必须生成新令牌。有关更多信息,请参阅 在 Amazon Aurora DSQL 中生成身份验证令牌

支持的会话参数

Aurora DSQL 可自动优化存储、连接管理和事务处理,因此它支持一组有针对性的会话参数。Aurora DSQL 接受下表中列出的参数。该参数集之外的参数返回以下错误:

ERROR: setting configuration parameter "parameter_name" not supported

Aurora DSQL 支持以下 PostgreSQL 会话参数。除非另有说明,否则您可以使用 SETSET SESSION 设置这些参数,或将这些参数设置为连接字符串选项。也可以使用 SET LOCAL 在单个事务的持续时间内设置这些参数中的任何参数。使用 RESET 可将参数还原为其默认值。

支持的会话参数
参数 类别 说明
application_name 客户端标识 设置在连接元数据中报告的应用程序名称。用于识别处于监控下的连接。
client_encoding 本地化 设置客户端字符编码。数据库在内部使用 UTF-8。
datestyle 输出格式 设置日期和时间值的显示格式(例如 ISO, MDY)。
extra_float_digits 输出格式 设置所显示的浮点值位数。某些驱动程序(例如 JDBC)使用此参数。
intervalstyle 输出格式 设置间隔值的显示格式。
timezone 本地化 设置会话的时区。Aurora DSQL 在内部以 UTC 格式存储所有可识别时区的日期和时间。此参数控制 Aurora DSQL 如何向客户端显示值。
search_path 架构解析 为非限定的对象名称设置架构搜索顺序。
enable_bitmapscan 查询计划程序 启用或禁用查询计划程序使用位图扫描计划类型。
enable_hashjoin 查询计划程序 启用或禁用查询计划程序使用哈希联接计划类型。
enable_indexonlyscan 查询计划程序 启用或禁用查询计划程序使用仅限索引扫描计划类型。
enable_indexscan 查询计划程序 启用或禁用查询计划程序使用索引扫描计划类型。
enable_material 查询计划程序 启用或禁用查询计划程序使用具体化。
enable_mergejoin 查询计划程序 启用或禁用查询计划程序使用合并联接计划类型。
enable_nestloop 查询计划程序 启用或禁用查询计划程序使用嵌套循环联接计划。
enable_seqscan 查询计划程序 启用或禁用查询计划程序使用顺序扫描计划类型。
disable_sync_create_index 特定于 Aurora DSQL 控制 CREATE INDEX 是否以异步方式运行。默认值为 on,这意味着 Aurora DSQL 以异步方式创建索引。设置为 off 可在空表上以同步方式创建索引。
role 会话身份 设置当前角色。在 Aurora DSQL 中,您只能在事务块中使用 SET LOCAL 来设置此参数。

Aurora DSQL 自动管理数据库的以下方面,因此您无需配置相应的 PostgreSQL 会话参数:

  • 连接和网络参数:Aurora DSQL 在内部管理连接生命周期和 TCP 设置,包括 tcp_keepalives_idletcp_keepalives_intervaltcp_keepalives_count

  • 内存和资源参数:Aurora DSQL 自动管理内存分配,包括 work_memshared_buffers

  • 超时参数:Aurora DSQL 强制执行其自己的事务持续时间限制,包括 statement_timeoutlock_timeoutidle_in_transaction_session_timeout

  • 复制和 WAL 参数:Aurora DSQL 通过其内置的多区域架构(包括 wal_levelsynchronous_commit)自动处理复制。

  • 日志记录参数:Aurora DSQL 在内部管理日志记录,包括 log_statementclient_min_messages

  • 事务参数:Aurora DSQL 对所有事务使用固定的 REPEATABLE READ 隔离级别。如果您的驱动程序需要指定隔离级别,请使用 BEGIN ISOLATION LEVEL REPEATABLE READ

使用 SQL 客户端访问 Aurora DSQL

Aurora DSQL 支持通过多种兼容 PostgreSQL 的客户端来连接到您的集群。以下各部分介绍如何使用 AWS CloudShell 或本地命令行通过 PostgreSQL 进行连接,以及如何使用基于 GUI 的工具(例如 DBeaver 和 JetBrains DataGrip)进行连接。每个客户端均需要一个有效的身份验证令牌,如上一部分所述。

问题排查

SQL 客户端的身份验证凭证过期

已建立的会话会在最多 1 小时内保持身份验证状态,或者直到出现显式断开连接或客户端超时。如果需要建立新连接,则必须在连接的密码字段中生成并提供新的身份验证令牌。尝试打开新会话(例如,列出新表或打开新的 SQL 控制台)会强制尝试新的身份验证。如果在连接设置中配置的身份验证令牌不再有效,则该新会话将失败,并且所有先前打开的会话将变为无效。在通过 expires-in 选项选择 IAM 身份验证令牌的持续时间时,请记住一点:该持续时间默认设置为 15 分钟,最大值可设置为 7 天。

此外,请参阅 Aurora DSQL 文档的故障排除部分。