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 }
ステートメント。