Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon Aurora PostgreSQL 参考

Amazon Aurora PostgreSQL 参数

您可以通过使用数据库参数组中的参数,以管理其他 Amazon RDS 数据库实例的同一方式管理 Amazon Aurora 数据库集群。Amazon Aurora 不同于其他数据库引擎,您有一个数据库集群包含多个数据库实例。因此,您用于管理 Amazon Aurora 数据库集群的一些参数适用于整个集群,而另一些参数仅适用于数据库集群中的特定数据库实例。

集群级别的参数是在数据库集群参数组中管理的。实例级别的参数是在数据库参数组中管理的。尽管 Aurora PostgreSQL 数据库集群中的每个数据库实例都与 PostgreSQL 数据库引擎兼容,但一些 PostgreSQL 数据库引擎参数必须在集群级别应用,并且是使用数据库集群参数组进行管理的。在数据库参数组中找不到适用于 Aurora PostgreSQL 数据库集群中数据库实例的集群级别参数,本主题的后面将列出这些参数。

您可使用 Amazon RDS 控制台、AWS CLI 或 Amazon RDS API 管理集群级别和实例级别的参数。管理集群级别的参数和实例级别的参数有不同的命令。例如,您可使用 modify-db-cluster-parameter-group AWS CLI 命令管理数据库集群参数组中的集群级别的参数,还可使用 modify-db-parameter-group AWS CLI 命令,针对数据库集群中的数据库实例,管理数据库参数组中实例级别的参数。

您可通过 Amazon RDS 控制台或者使用 AWS CLI 或 Amazon RDS API 查看集群级别和实例级别的参数。例如,您可使用 describe-db-cluster-parameters AWS CLI 命令查看数据库集群参数组中的集群级别的参数,并使用 describe-db-parameters AWS CLI 命令,针对数据库集群中的数据库实例,查看数据库参数组中实例级别的参数。

有关参数组的更多信息,请参阅 使用数据库参数组

集群级别的参数

下表显示了适用于整个 Aurora PostgreSQL 数据库集群的所有参数。

参数名称 可修改

archive_command

archive_timeout

array_nulls

autovacuum

autovacuum_analyze_scale_factor

autovacuum_analyze_threshold

autovacuum_freeze_max_age

autovacuum_max_workers

autovacuum_multixact_freeze_max_age

autovacuum_naptime

autovacuum_vacuum_cost_delay

autovacuum_vacuum_cost_limit

autovacuum_vacuum_scale_factor

autovacuum_vacuum_threshold

autovacuum_work_mem

backslash_quote

client_encoding

data_directory

datestyle

default_tablespace

default_with_oids

extra_float_digits

huge_pages

intervalstyle

lc_monetary

lc_numeric

lc_time

log_autovacuum_min_duration

max_prepared_transactions

password_encryption

port

rds.extensions

rds.force_autovacuum_logging_level

rds.force_ssl

server_encoding

ssl

synchronous_commit

timezone

track_commit_timestamp

vacuum_cost_delay

vacuum_cost_limit

vacuum_cost_page_hit

vacuum_cost_page_miss

vacuum_defer_cleanup_age

vacuum_freeze_min_age

vacuum_freeze_table_age

vacuum_multixact_freeze_min_age

vacuum_multixact_freeze_table_age

wal_buffers

实例级别的参数

下表显示了适用于 Aurora PostgreSQL 数据库集群中特定数据库实例的所有参数。

参数名称 可修改

application_name

authentication_timeout

auto_explain.log_analyze

auto_explain.log_buffers

auto_explain.log_format

auto_explain.log_min_duration

auto_explain.log_nested_statements

auto_explain.log_timing

auto_explain.log_triggers

auto_explain.log_verbose

auto_explain.sample_rate

backend_flush_after

bgwriter_flush_after

bytea_output

check_function_bodies

checkpoint_flush_after

checkpoint_timeout

client_min_messages

config_file

constraint_exclusion

cpu_index_tuple_cost

cpu_operator_cost

cpu_tuple_cost

cursor_tuple_fraction

db_user_namespace

deadlock_timeout

debug_pretty_print

debug_print_parse

debug_print_plan

debug_print_rewritten

default_statistics_target

default_transaction_deferrable

default_transaction_isolation

default_transaction_read_only

effective_cache_size

effective_io_concurrency

enable_bitmapscan

enable_hashagg

enable_hashjoin

enable_indexonlyscan

enable_indexscan

enable_material

enable_mergejoin

enable_nestloop

enable_seqscan

enable_sort

enable_tidscan

escape_string_warning

exit_on_error

force_parallel_mode

from_collapse_limit

geqo

geqo_effort

geqo_generations

geqo_pool_size

geqo_seed

geqo_selection_bias

geqo_threshold

gin_fuzzy_search_limit

gin_pending_list_limit

hba_file

hot_standby_feedback

ident_file

idle_in_transaction_session_timeout

join_collapse_limit

lc_messages

listen_addresses

lo_compat_privileges

log_connections

log_destination

log_directory

log_disconnections

log_duration

log_error_verbosity

log_executor_stats

log_file_mode

log_filename

log_hostname

log_line_prefix

log_lock_waits

log_min_duration_statement

log_min_error_statement

log_min_messages

log_parser_stats

log_planner_stats

log_replication_commands

log_rotation_age

log_rotation_size

log_statement

log_statement_stats

log_temp_files

log_timezone

log_truncate_on_rotation

logging_collector

maintenance_work_mem

max_connections

max_files_per_process

max_locks_per_transaction

max_replication_slots

max_stack_depth

max_standby_archive_delay

max_standby_streaming_delay

max_wal_senders

max_worker_processes

min_parallel_relation_size

old_snapshot_threshold

operator_precedence_warning

parallel_setup_cost

parallel_tuple_cost

pg_hint_plan.debug_print

pg_hint_plan.enable_hint

pg_hint_plan.enable_hint_table

pg_hint_plan.message_level

pg_hint_plan.parse_messages

pg_stat_statements.max

pg_stat_statements.save

pg_stat_statements.track

pg_stat_statements.track_utility

pgaudit.log

pgaudit.log_catalog

pgaudit.log_level

pgaudit.log_parameter

pgaudit.log_relation

pgaudit.log_statement_once

pgaudit.role

postgis.gdal_enabled_drivers

quote_all_identifiers

random_page_cost

rds.force_admin_logging_level

rds.log_retention_period

rds.rds_superuser_reserved_connections

rds.superuser_variables

replacement_sort_tuples

restart_after_crash

row_security

search_path

seq_page_cost

session_replication_role

shared_buffers

shared_preload_libraries

sql_inheritance

ssl_ca_file

ssl_cert_file

ssl_ciphers

ssl_key_file

standard_conforming_strings

statement_timeout

stats_temp_directory

superuser_reserved_connections

synchronize_seqscans

syslog_facility

tcp_keepalives_count

tcp_keepalives_idle

tcp_keepalives_interval

temp_buffers

temp_tablespaces

track_activities

track_activity_query_size

track_counts

track_functions

track_io_timing

transaction_deferrable

transaction_read_only

transform_null_equals

unix_socket_directories

unix_socket_group

unix_socket_permissions

update_process_title

wal_receiver_status_interval

wal_receiver_timeout

wal_sender_timeout

work_mem

xmlbinary

xmloption

Amazon Aurora PostgreSQL 事件

以下是 Aurora PostgreSQL 的一些常见等待事件。

BufferPin:BufferPin

在此等待事件中,某个会话在一段时间内等待访问数据缓冲区,此时其他会话无法检查该缓冲区。如果另一进程拥有相关缓冲区上一读取数据的已打开游标,则缓冲区 PIN 等待可能延长。

Client:ClientRead

在此等待事件中,某个会话正在从应用程序客户端接收数据。如果使用 COPY 语句进行批量数据加载,或应用程序在客户端和数据库之间使用多个往返操作将数据传输到 Aurora,则此等待可能会频繁发生。每个事务的客户端读取等待很多可能指示往返操作过多,如参数传递。您应将此与每个事务的预期语句数量进行比较。

IO:DataFilePrefetch

在此等待事件中,某个会话正在等待从 Aurora 存储进行异步预取。

IO:DataFileRead

在此等待事件中,某个会话正在从 Aurora 存储读取数据。对于 I/O 密集型工作负载,这可能是一个典型的等待事件。如果某些 SQL 语句显示的等待事件与其他 SQL 语句相比比例较大,则此类 SQL 语句可能使用了需要读取大量数据的低效的查询计划。

IO:XactSync

在此等待事件中,某个会话正在发出提交或回滚命令,这要求保留当前事务的更改。Aurora 正在等待 Aurora 存储确认保留。

当系统上有非常多的提交活动时,此等待的时间通常会增加。通过修改应用程序以分批提交事务,有时可以减少此等待。在数据库负载超出数据库实例的虚拟 CPU (vCPU) 数量的情况下,CPU 会等待,同时您可能会发现此等待。在这种情况下,存储保留可能会与 CPU 密集型数据库工作负载争用 CPU。要减少此情况,您可以尝试减少这些工作负载,或者扩展到具有更多 vCPU 的数据库实例。

Lock:transactionid

在此等待事件中,某个会话正在尝试修改已由其他会话修改的数据,并正在等待提交或回滚其他会话的事务。您可以在 pg_locks 视图中调查阻止和等待会话。

LWLock:buffer_content

在此等待事件中,某个会话等待读取或写入内存中的某个数据页面时,另一个会话正锁定该页面以进行写入。多个会话频繁更新相同数据段会造成单个页面 (热页面) 的严重写入争用,进而导致此类等待事件频繁发生。过度使用外键约束可能会增加锁定持续时间,从而导致争用增加。您应该调查遇到高 buffer_content 等待的工作负载的外键约束使用情况来确定约束是否是必需的。

有关 PostgreSQL 等待事件的完整列表,请参阅 PostgreSQL 等待事件表