Aurora PostgreSQL 無限資料庫檢視 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Aurora PostgreSQL 無限資料庫檢視

下表顯示 Aurora PostgreSQL 無限制資料庫的新檢視。

注意

此資料表中列出的檢視位於rds_aurora結構描述中。使用無限資料庫檢視時,請務必包含完整的物件名稱:rds_auroraobject_name

Aurora PostgreSQL 無限資料庫檢視 對應的 Aurora PostgreSQL 檢視
limitless_database pg_database
limitless_locks pg_locks
limitless_stat_activity pg_stat_activity
limitless_stat_all_indexes pg_stat_all_indexes
limitless_stat_all_tables pg_stat_all_tables
limitless_stat_database pg_stat_database
limitless_stat_progress_vacuum pg_stat_progress_vacuum
limitless_stat_statements pg_stat_statements
limitless_stat_subclusters
limitless_stat_statements_info pg_stat_statements_info
limitless_statio_all_indexes pg_statio_all_indexes
limitless_statio_all_tables pg_statio_all_tables
limitless_tables pg_tables
limitless_table_collocations
limitless_table_collocation_distributions

下列範例提供 Aurora PostgreSQL 無限制資料庫檢視的詳細資訊。如需 PostgreSQL 檢視的詳細資訊,請參閱 PostgreSQL 文件中的檢視統計資料

注意

如果您有進行中的交易,某些統計資料檢視可能會傳回不一致的結果。

limitless_database

此檢視包含資料庫碎片群組中可用資料庫的相關資訊。例如:

postgres_limitless=> SELECT subcluster_id, subcluster_type, oid, datname, datacl FROM rds_aurora.limitless_database; subcluster_id | subcluster_type | oid | datname | datacl ---------------+-----------------+-------+--------------------+------------------------------------------------------------------------------------------------------------------------ 2 | router | 4 | template0 | {=c/rdsadmin,rdsadmin=CTc/rdsadmin} 2 | router | 5 | postgres | 2 | router | 16384 | rdsadmin | {rdsadmin=CTc/rdsadmin,rds_aurora_limitless_metadata_admin=c/rdsadmin,rds_aurora_limitless_heat_mgmt_admin=c/rdsadmin} 2 | router | 16477 | postgres_limitless | 2 | router | 1 | template1 | {=c/rdsadmin,rdsadmin=CTc/rdsadmin} 6 | shard | 4 | template0 | {=c/rdsadmin,rdsadmin=CTc/rdsadmin}

輸出參數如下:

  • subcluster_id (文字) – 子叢集的 ID (節點)

  • subcluster_type (文字) – 子叢集 (節點)、路由器或碎片的類型

其餘資料欄與 中的資料欄相同pg_database

limitless_locks

此檢視包含每個節點每個程序一列。它提供存取資料庫伺服器中作用中程序所持有鎖定的相關資訊。

範例 使用兩個交易建立鎖定

在此範例中,我們在兩個路由器上同時執行兩個交易。

# Transaction 1 (run on router 1) BEGIN; SET search_path = public; SELECT * FROM customers; INSERT INTO customers VALUES (400,'foo','bar'); # Transaction 2 (run on router 2) BEGIN; SET search_path = public; ALTER TABLE customers ADD COLUMN phone VARCHAR;

執行第一個交易。後續交易必須等到第一個交易完成。因此,系統會使用鎖定封鎖第二個交易。為了檢查其根本原因,我們會limitless_locks透過加入 來執行命令limitless_stat_activity

# Run on router 2 SELECT distributed_session_id, state, usename, query, query_start FROM rds_aurora.limitless_stat_activity WHERE distributed_session_id in ( SELECT distributed_session_id FROM rds_aurora.limitless_locks WHERE relname = 'customers' ); distributed_session_id | state | usename | query | query_start ------------------------+---------------------+--------------------------+---------------------------------- -------------+------------------------------- 47BDE66E9A5E8477 | idle in transaction | limitless_metadata_admin | INSERT INTO customers VALUES (400,'foo','bar'); | 2023-04-13 17:44:45.152244+00 2AD7F370202D0FA9 | active | limitless_metadata_admin | ALTER TABLE customers ADD COLUMN phone VARCHAR; | 2023-04-13 17:44:55.113388+00 47BDE66E9A5E8477 | | limitless_auth_admin | <insufficient privilege> | 2AD7F370202D0FA9 | | limitless_auth_admin | <insufficient privilege> | 47BDE66E9A5E8477 | | limitless_auth_admin | <insufficient privilege> | 2AD7F370202D0FA9 | | limitless_auth_admin | <insufficient privilege> | (6 rows)
範例 明確建立鎖定

在此範例中,我們會明確建立鎖定,然後使用 limitless_locks 檢視來查看鎖定 (省略部分資料欄)。

BEGIN; SET search_path = public; LOCK TABLE customers IN ACCESS SHARE MODE; SELECT * FROM rds_aurora.limitless_locks WHERE relname = 'customers'; subcluster_id | subcluster_type | distributed_session_id | locktype | datname | relnspname | relname | virtualtransaction | pid | mode ---------------+-----------------+------------------------+----------+--------------------+------------+ ----------+--------------------+-------+----------------- 1 | router | 7207702F862FC937 | relation | postgres_limitless | public | customers | 28/600787 | 59564 | AccessShareLock 2 | router | 7207702F862FC937 | relation | postgres_limitless | public | customers | 28/600405 | 67130 | AccessShareLock 3 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 15/473401 | 27735 | AccessShareLock 4 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 13/473524 | 27734 | AccessShareLock 5 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 13/472935 | 27737 | AccessShareLock 6 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 13/473015 | 48660 | AccessShareLock (6 rows)
limitless_stat_activity

此檢視包含每個節點每個程序一列。它可用於追蹤需要很長時間的整體系統運作狀態和分類程序。例如:

postgres=# SELECT subcluster_id, subcluster_type, distributed_session_id, distributed_session_state, datname, distributed_query_id, is_sso_query FROM rds_aurora.limitless_stat_activity WHERE distributed_session_id in ('D2470C97E3D07E06', '5A3CD7B8E5FD13FF') order by distributed_session_id; subcluster_id | subcluster_type | distributed_session_id | distributed_session_state | datname | distributed_query_id | is_sso_query ---------------+-----------------+------------------------+---------------------------+--------------------+----------------------+-------------- 2 | router | 5A3CD7B8E5FD13FF | coordinator | postgres_limitless | | f 3 | shard | 5A3CD7B8E5FD13FF | participant | postgres_limitless | 6808291725541680947 | 4 | shard | 5A3CD7B8E5FD13FF | participant | postgres_limitless | 6808291725541680947 | 2 | router | D2470C97E3D07E06 | coordinator | postgres_limitless | | t 3 | shard | D2470C97E3D07E06 | participant | postgres_limitless | 4058400544464210222 | (5 rows)

輸出參數如下:

  • subcluster_id (文字) – 此程序所屬的子叢集 ID。

  • subcluster_type (文字) – 此程序所屬的子叢集類型: routershard

  • distributed_session_id (文字) – 此程序所屬的分散式工作階段 ID。

  • distributed_session_state (文字) – 這是協調器、參與者還是獨立/未分佈的程序 (顯示為 NULL)。

  • datname (文字) – 此程序所連線的資料庫。

  • distributed_query_id (Bigint) – 協調器節點中父查詢的查詢 ID。NULL 如果這是父查詢,則此欄位為 。協調器節點會將分散式查詢 ID 向下推送至參與者節點。因此,對於參與者節點,分散式查詢 ID 和查詢 ID 的值不同。

  • is_sso_query (文字) – 這可讓我們知道查詢是否為單一碎片最佳化。

其餘資料欄與 中的資料欄相同pg_stat_activity

limitless_stat_all_indexes

此檢視包含資料庫碎片群組中索引的用量統計資料。例如:

postgres_limitless=> SELECT schemaname, relname, indexrelname, idx_scan FROM rds_aurora.limitless_stat_all_indexes WHERE relname LIKE 'orders_ts%' ORDER BY indexrelname LIMIT 10; schemaname | relname | indexrelname | idx_scan ------------+----------------+---------------------+---------- ec_sample | orders_ts00001 | orders_ts00001_pkey | 196801 ec_sample | orders_ts00002 | orders_ts00002_pkey | 196703 ec_sample | orders_ts00003 | orders_ts00003_pkey | 196376 ec_sample | orders_ts00004 | orders_ts00004_pkey | 197966 ec_sample | orders_ts00005 | orders_ts00005_pkey | 195301 ec_sample | orders_ts00006 | orders_ts00006_pkey | 195673 ec_sample | orders_ts00007 | orders_ts00007_pkey | 194475 ec_sample | orders_ts00008 | orders_ts00008_pkey | 191694 ec_sample | orders_ts00009 | orders_ts00009_pkey | 193744 ec_sample | orders_ts00010 | orders_ts00010_pkey | 195421 (10 rows)
limitless_stat_all_tables

此檢視包含資料庫碎片群組中目前資料庫中所有資料表的統計資料。這在追蹤清空操作和資料處理語言 (DML) 操作時非常有用。例如:

postgres_limitless=> SELECT subcluster_id, subcluster_type, relname, n_ins_since_vacuum, n_tup_ins, last_vacuum FROM rds_aurora.limitless_stat_all_tables WHERE relname LIKE 'orders_ts%' ORDER BY relname LIMIT 10; subcluster_id | subcluster_type | relname | n_ins_since_vacuum | n_tup_ins | last_vacuum ---------------+-----------------+----------------+--------------------+-----------+------------- 5 | shard | orders_ts00001 | 34779 | 196083 | 5 | shard | orders_ts00002 | 34632 | 194721 | 5 | shard | orders_ts00003 | 34950 | 195965 | 5 | shard | orders_ts00004 | 34745 | 197283 | 5 | shard | orders_ts00005 | 34879 | 195754 | 5 | shard | orders_ts00006 | 34340 | 194605 | 5 | shard | orders_ts00007 | 33779 | 192203 | 5 | shard | orders_ts00008 | 33826 | 191293 | 5 | shard | orders_ts00009 | 34660 | 194117 | 5 | shard | orders_ts00010 | 34569 | 195560 | (10 rows)

輸出參數如下:

  • subcluster_id (文字) – 此程序所屬的子叢集 ID。

  • subcluster_type (文字) – 此程序所屬的子叢集類型: routershard

  • relname (名稱) – 資料表的名稱。

其餘資料欄與 中的資料欄相同pg_stat_all_tables

limitless_stat_database

此檢視包含資料庫碎片群組中所有資料庫的統計資料。每個節點每個資料庫傳回一列。例如:

postgres_limitless=> SELECT subcluster_id, subcluster_type, datname, blks_read, blks_hit FROM rds_aurora.limitless_stat_database WHERE datname='postgres_limitless'; subcluster_id | subcluster_type | datname | blks_read | blks_hit ---------------+-----------------+--------------------+-----------+---------- 1 | router | postgres_limitless | 484 | 34371314 2 | router | postgres_limitless | 673 | 33859317 3 | shard | postgres_limitless | 1299 | 17749550 4 | shard | postgres_limitless | 1094 | 17492849 5 | shard | postgres_limitless | 1036 | 17485098 6 | shard | postgres_limitless | 1040 | 17437257 (6 rows)

輸出參數如下:

  • subcluster_id (文字) – 此程序所屬的子叢集 ID。

  • subcluster_type (文字) – 此程序所屬的子叢集類型: routershard

  • datname (名稱) – 資料庫的名稱。

其餘資料欄與 中的資料欄相同pg_stat_database

limitless_stat_progress_vacuum

此檢視包含持續清空操作的相關資訊。例如:

postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_progress_vacuum; -[ RECORD 1 ]----------+------------------ subcluster_id | 3 subcluster_type | shard distributed_session_id | A56D96E2A5C9F426 pid | 5270 datname | postgres nspname | public relname | customer_ts2 phase | vacuuming heap heap_blks_total | 130500 heap_blks_scanned | 100036 heap_blks_vacuumed | 0 index_vacuum_count | 0 max_dead_tuples | 11184810 num_dead_tuples | 0 -[ RECORD 2 ]----------+------------------ subcluster_id | 3 subcluster_type | shard distributed_session_id | 56DF26A89EC23AB5 pid | 6854 datname | postgres nspname | public relname | sales_ts1 phase | vacuuming heap heap_blks_total | 43058 heap_blks_scanned | 24868 heap_blks_vacuumed | 0 index_vacuum_count | 0 max_dead_tuples | 8569523 num_dead_tuples | 0

輸出參數如下:

  • subcluster_id (文字) – 此程序所屬的子叢集 ID。

  • subcluster_type (文字) – 此程序所屬的子叢集類型: routershard

  • distributed_session_id (文字) – 啟動清空操作之工作階段的識別符。

  • datname (名稱) – 正在清空的資料庫。

  • nspname (名稱) – 正在清空之資料表的結構描述名稱。如果要清空null的資料表與使用者連線的資料表不在相同的資料庫中,則為如此。

  • relname (名稱) – 正在清空的資料表名稱。如果要清空null的資料表與使用者連線的資料表不在相同的資料庫中,則為如此。

其餘資料欄與 中的資料欄相同pg_stat_progress_vacuum

limitless_stat_statements

此檢視提供追蹤所有節點上執行之所有 SQL 陳述式的規劃和執行統計資料的方法。

注意

您必須安裝 pg_stat_statements 擴充功能才能使用 limitless_stat_statements 檢視。

-- CREATE EXTENSION must be run by a superuser CREATE EXTENSION pg_stat_statements; -- Verify that the extension is created on all nodes in the DB shard group SELECT distinct node_id FROM rds_aurora.limitless_stat_statements LIMIT 10;

下列範例顯示使用 limitless_stat_statements 檢視。

postgres_limitless=> SELECT subcluster_id, subcluster_type, distributedqueryid, username, dbname, sso_calls FROM rds_aurora.limitless_stat_statements; subcluster_id | subcluster_type | distributedqueryid | username | dbname | sso_calls ---------------+-----------------+----------------------+-------------------------------------+--------------------+----------- 2 | router | | postgres | postgres_limitless | 0 2 | router | | postgres | postgres_limitless | 0 2 | router | | postgres | postgres_limitless | 0 2 | router | | postgres | postgres_limitless | 0 2 | router | | postgres | postgres_limitless | 0 2 | router | | postgres | postgres_limitless | 1 3 | shard | -7975178695405682176 | postgres | postgres_limitless | [...]

輸出參數如下:

  • subcluster_id (文字) – 此程序所屬的子叢集 ID。

  • subcluster_type (文字) – 此程序所屬的子叢集類型:router適用於 或 shard

  • distributedqueryid (Bigint) – 協調器節點中父查詢的查詢 ID。NULL 如果這是父查詢,則此欄位為 。協調器節點會將分散式查詢 ID 向下推送至參與者節點。因此,對於參與者節點,分散式查詢 ID 和查詢 ID 的值不同。

  • username (名稱) – 查詢陳述式的使用者。

  • dbname (名稱) – 執行查詢的資料庫。

  • sso_calls (名稱) – 陳述式經過單一碎片最佳化的次數。

其餘資料欄與 pg_stat_statements 中的資料欄相同。

limitless_stat_statements_info

此檢視包含limitless_stat_statements檢視的統計資料。每一列都包含來自每個節點的 pg_stat_statements_info 檢視資料。資料subcluster_id欄可識別每個節點。

postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_statements_info; subcluster_id | subcluster_type | dealloc | stats_reset ---------------+-----------------+---------+------------------------------- 1 | router | 0 | 2023-06-30 21:22:09.524781+00 2 | router | 0 | 2023-06-30 21:21:40.834111+00 3 | shard | 0 | 2023-06-30 21:22:10.709942+00 4 | shard | 0 | 2023-06-30 21:22:10.740179+00 5 | shard | 0 | 2023-06-30 21:22:10.774282+00 6 | shard | 0 | 2023-06-30 21:22:10.808267+00 (6 rows)

輸出參數如下:

  • subcluster_id (文字) – 此程序所屬的子叢集 ID。

其餘資料欄與 pg_stat_statements_info 中的資料欄相同。

limitless_stat_subclusters

此檢視包含路由器和其他節點之間的網路統計資料。它包含每對路由器和其他節點的資料列,例如:

postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_subclusters; orig_subcluster | orig_instance_az | dest_subcluster | dest_instance_az | latency_us | latest_collection | failed_requests | received_bytes | sent_bytes | same_az_requests | cross_az_requests | stat_reset_timestamp -----------------+------------------+-----------------+------------------+------------+-------------------------------+-----------------+----------------+------------+------------------+-------------------+------------------------------- 3 | us-west-2b | 2 | us-west-2a | 847 | 2024-10-07 17:25:39.518617+00 | 0 | 35668633 | 92090171 | 0 | 302787 | 2024-10-05 12:39:55.239675+00 3 | us-west-2b | 4 | us-west-2b | 419 | 2024-10-07 17:25:39.546376+00 | 0 | 101190464 | 248795719 | 883478 | 0 | 2024-10-05 12:39:55.231218+00 3 | us-west-2b | 5 | us-west-2c | 1396 | 2024-10-07 17:25:39.52122+00 | 0 | 72864849 | 172086292 | 0 | 557726 | 2024-10-05 12:39:55.196412+00 3 | us-west-2b | 6 | us-west-2c | 729 | 2024-10-07 17:25:39.54828+00 | 0 | 35668584 | 92090171 | 0 | 302787 | 2024-10-05 12:39:55.247334+00 3 | us-west-2b | 7 | us-west-2a | 1702 | 2024-10-07 17:25:39.545307+00 | 0 | 71699576 | 171634844 | 0 | 556278 | 2024-10-05 12:39:52.715168+00 2 | us-west-2a | 3 | us-west-2b | 868 | 2024-10-07 17:25:40.293927+00 | 0 | 35659611 | 92011872 | 0 | 302817 | 2024-10-05 12:39:54.420758+00 2 | us-west-2a | 4 | us-west-2b | 786 | 2024-10-07 17:25:40.296863+00 | 0 | 102437253 | 251838024 | 0 | 895060 | 2024-10-05 12:39:54.404081+00 2 | us-west-2a | 5 | us-west-2c | 1232 | 2024-10-07 17:25:40.292021+00 | 0 | 71990027 | 168828110 | 0 | 545453 | 2024-10-05 12:39:36.769549+00

輸出參數如下:

  • orig_subcluster (文字) – 通訊來源的路由器 ID

  • orig_subcluster_az (文字) – 原始路由器的可用區域 (AZ)

  • dest_subcluster (文字) – 目的地節點的 ID

  • dest_subcluster_az (文字) – 目的地節點的上次收集 AZ

  • latency_us (Bigint) – 節點之間上次收集的網路延遲,以微秒為單位。0 如果節點無法連線,則值為 。

  • latest_collection (時間戳記) – 目的地節點最新 AZ 集合和延遲的時間戳記

  • failed_requests (Bigint) – 失敗的內部請求累積計數

  • received_bytes (綁定) – 從此節點收到的估計累積位元組數

  • sent_bytes (綁定) – 傳送至此節點的估計累積位元組數

  • same_az_requests (聯名) – 當內部資料庫請求與原始路由器位於相同的可用區域時,對此節點的累計請求數量

  • cross_az_requests (Bigint) – 當此節點與原始路由器位於不同的 AZ 時,對此節點的內部資料庫請求累積數量

  • stat_reset_timestamp (時間戳記) – 此檢視的累積統計資料上次重設時的時間戳記

limitless_statio_all_indexes

此檢視包含資料庫碎片群組中所有索引的輸入/輸出 (I/O) 統計資料。例如:

postgres_limitless=> SELECT * FROM rds_aurora.limitless_statio_all_indexes WHERE relname like'customers_ts%'; subcluster_id | subcluster_type | schemaname | relname | indexrelname | idx_blks_read | idx_blks_hit ---------------+-----------------+------------+-------------------+-------------------------------------+ --------------+-------------- 3 | shard | public | customers_ts00002 | customers_ts00002_customer_name_idx | 1 | 0 3 | shard | public | customers_ts00001 | customers_ts00001_customer_name_idx | 1 | 0 4 | shard | public | customers_ts00003 | customers_ts00003_customer_name_idx | 1 | 0 4 | shard | public | customers_ts00004 | customers_ts00004_customer_name_idx | 1 | 0 5 | shard | public | customers_ts00005 | customers_ts00005_customer_name_idx | 1 | 0 5 | shard | public | customers_ts00006 | customers_ts00006_customer_name_idx | 1 | 0 6 | shard | public | customers_ts00007 | customers_ts00007_customer_name_idx | 1 | 0 6 | shard | public | customers_ts00008 | customers_ts00008_customer_name_idx | 1 | 0 (8 rows)
limitless_statio_all_tables

此檢視包含資料庫碎片群組中所有資料表的輸入/輸出 (I/O) 統計資料。例如:

postgres_limitless=> SELECT subcluster_id, subcluster_type, schemaname, relname, heap_blks_read, heap_blks_hit FROM rds_aurora.limitless_statio_all_tables WHERE relname LIKE 'customers_ts%'; subcluster_id | subcluster_type | schemaname | relname | heap_blks_read | heap_blks_hit ---------------+-----------------+------------+-------------------+----------------+--------------- 3 | shard | public | customers_ts00002 | 305 | 57780 3 | shard | public | customers_ts00001 | 300 | 56972 4 | shard | public | customers_ts00004 | 302 | 57291 4 | shard | public | customers_ts00003 | 302 | 57178 5 | shard | public | customers_ts00006 | 300 | 56932 5 | shard | public | customers_ts00005 | 302 | 57386 6 | shard | public | customers_ts00008 | 300 | 56881 6 | shard | public | customers_ts00007 | 304 | 57635 (8 rows)
limitless_tables

此檢視包含 Aurora PostgreSQL 無限制資料庫中資料表的相關資訊。

postgres_limitless=> SELECT * FROM rds_aurora.limitless_tables; table_gid | local_oid | schema_name | table_name | table_status | table_type | distribution_key -----------+-----------+-------------+-------------+--------------+-------------+------------------ 5 | 18635 | public | placeholder | active | placeholder | 6 | 18641 | public | ref | active | reference | 7 | 18797 | public | orders | active | sharded | HASH (order_id) 2 | 18579 | public | customer | active | sharded | HASH (cust_id) (4 rows)
limitless_table_collocations

此檢視包含共置碎片資料表的相關資訊。

在下列範例中, orderscustomers資料表會共置,而 usersfollowers資料表則會共置。集合的資料表具有相同的 collocation_id

postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocations ORDER BY collocation_id; collocation_id | schema_name | table_name ----------------+-------------+------------ 2 | public | orders 2 | public | customers 5 | public | users 5 | public | followers (4 rows)
limitless_table_collocation_distributions

此檢視顯示每個主機代管的金鑰分佈。

postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocation_distributions ORDER BY collocation_id, lower_bound; collocation_id | subcluster_id | lower_bound | upper_bound ----------------+---------------+----------------------+---------------------- 2 | 6 | -9223372036854775808 | -4611686018427387904 2 | 5 | -4611686018427387904 | 0 2 | 4 | 0 | 4611686018427387904 2 | 3 | 4611686018427387904 | 9223372036854775807 5 | 6 | -9223372036854775808 | -4611686018427387904 5 | 5 | -4611686018427387904 | 0 5 | 4 | 0 | 4611686018427387904 5 | 3 | 4611686018427387904 | 9223372036854775807 (8 rows)