本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
rds_tools 函數參考
rds_tools 延伸項目提供一組公用程式函數,用於管理和監控 Aurora PostgreSQL 資料庫執行個體。使用這些函數,您可以直接從 SQL 診斷複寫、清空和組態問題,而無需單獨的監控工具。這些函數是標準 PostgreSQL 函數以外的函數。如需標準 PostgreSQL 函數的詳細資訊,請參閱 PostgreSQL 文件中的函數和運算子
本節說明 Aurora PostgreSQL 上可用的rds_tools函數。每個函數描述都會記下函數可用的rds_tools延伸版本。
若要建立擴充功能,請執行下列命令。
postgres=> CREATE EXTENSION rds_tools; CREATE EXTENSION
rds_tools.role_password_encryption_type
傳回用於每個資料庫角色的密碼加密方法。此集合傳回函數會從輸出中排除受 RDS 保護的系統角色。從rds_tools延伸模組 1.0 版開始可用。
如需使用此函數在將資料庫使用者遷移至 SCRAM 之前檢閱密碼加密的範例,請參閱 使用 SCRAM 進行 PostgreSQL 密碼加密。
函數原型
rds_tools.role_password_encryption_type()
引數
無。
Output
-
rolname– 資料庫角色的名稱。 -
encryption_type– 使用的密碼加密方法,例如md5或scram-sha-256。
使用範例
=> SELECT * FROM rds_tools.role_password_encryption_type(); rolname | encryption_type ---------------+----------------- postgres | md5 app_user | md5 readonly_user | scram-sha-256 (3 rows)
rds_tools.postgres_get_av_diag
擷取有關封鎖或落後自動清空程序的診斷資訊,以及解決每個問題的建議。在具有最舊交易 ID 的資料庫中執行此集合傳回函數,以獲得準確的結果。如需詳細資訊,請參閱識別和解決積極的清空封鎖程式。
從rds_tools延伸模組 1.9 版開始可用。
函數原型
rds_tools.postgres_get_av_diag()
引數
無。
Output
-
blocker– 封鎖清空的資料庫活動類別。值可以是下列其中一項:作用中陳述式
交易閒置
備妥交易
邏輯複寫槽
僅供讀取複本和實體複寫槽
具有串流複寫的僅供讀取複本
暫時資料表
-
database– 發生封鎖活動的資料庫名稱。 -
blocker_identifier– 封鎖活動的識別符。值取決於封鎖程式類型:對於作用中陳述idle-in-transaction工作階段,程序 ID 及其 SQL 陳述式。
對於預備交易,則為預備交易名稱。
對於僅供讀取複本,則為複本的 IP 地址。
對於複寫插槽,複寫插槽名稱。
-
wait_event– 封鎖工作階段的等待事件,如適用。 -
autovacuum_lagging_by– 自動清空落後於 類別的交易數量。 -
suggestion– 解析封鎖程式的建議,包括資料庫名稱、程序 ID 和要採取的動作。 -
suggested_action– 要用來解析封鎖程式的動作陣列。
使用範例
=> SELECT * FROM rds_tools.postgres_get_av_diag() ORDER BY autovacuum_lagging_by DESC; blocker | Active statement database | my_database blocker_identifier | SELECT pg_sleep(20000); wait_event | Timeout:PgSleep autovacuum_lagging_by | 568600871 suggestion | Connect to database "my_database", review carefully, and consider terminating the process using suggested_action. suggested_action | {"SELECT pg_terminate_backend(29621);"}