Aurora PostgreSQL でのローカル書き込み転送の制限と考慮事項
Aurora PostgreSQL でのローカル転送には、現在、以下の制限が適用されます。
-
ローカル書き込み転送は RDS Proxy ではサポートされていません。
-
書き込み転送機能を持つ Aurora PostgreSQL では、特定のステートメントが許可されないか、古い結果を生成する可能性があります。また、ユーザー定義関数とユーザー定義プロシージャはサポートされていません。したがって、DB クラスターでは
EnableLocalWriteForwarding設定がデフォルトではオフになっています。オンにする前に、アプリケーションコードがこれらの制限の影響を受けていないことを確認してください。 -
書き込み転送では、次の種類の SQL ステートメントはサポートされていません。
注記
これらのステートメントは、アプリケーションで暗黙的に使用することも、PostgreSQL プロトコルで推測することもできます。例えば、PL/SQL 例外処理では、サポートされていないステートメントである SAVEPOINT が使用される場合があります。
-
ANALYZE -
CLUSTER -
COPY -
カーソル — カーソルはサポートされていないため、ローカル書き込み転送を使用する前に必ずカーソルを閉じてください。
-
データ定義言語 (DDL) ステートメント
-
GRANT|REVOKE|REASSIGN OWNED|SECURITY LABEL -
LISTEN / NOTIFY -
LOCK -
SAVEPOINT -
SELECT INTO -
SET CONSTRAINTS -
シーケンスの更新:
nextval()、setval() -
TRUNCATE -
2 相コミットコマンド:
PREPARE TRANSACTION、COMMIT PREPARED、ROLLBACK PREPARED -
ユーザー定義関数とユーザー定義プロシージャ。
-
VACUUM
-
書き込み転送では、以下の SQL ステートメントを使用することを検討できます。
-
DML ステートメントは、
INSERT ... SELECTステートメントやDELETE ... WHEREステートメントなど、複数の部分から構成される場合があります。この場合、ステートメント全体がライター DB インスタンスに転送され、そこで実行されます。 -
INSERT、DELETE、およびUPDATEなどのデータ操作言語 (DML) ステートメント。 -
このリストにあるステートメントを含む
EXPLAINステートメント -
PREPAREとEXECUTEステートメント。 -
SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }ステートメント。