使用兼容 PostgreSQL 的客户端访问 Aurora DSQL
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 会话参数。除非另有说明,否则您可以使用 SET、SET 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_idle、tcp_keepalives_interval和tcp_keepalives_count。 -
内存和资源参数:Aurora DSQL 自动管理内存分配,包括
work_mem和shared_buffers。 -
超时参数:Aurora DSQL 强制执行其自己的事务持续时间限制,包括
statement_timeout、lock_timeout和idle_in_transaction_session_timeout。 -
复制和 WAL 参数:Aurora DSQL 通过其内置的多区域架构(包括
wal_level和synchronous_commit)自动处理复制。 -
日志记录参数:Aurora DSQL 在内部管理日志记录,包括
log_statement和client_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 文档的故障排除部分。