Aurora PostgreSQL 中的本地写入转发的限制和注意事项
目前,Aurora PostgreSQL 中的本地写入转发有以下限制:
-
RDS 代理不支持本地写入转发。
-
在具有写入转发功能的 Aurora PostgreSQL 中不允许使用某些语句,否则可能产生过时的结果。此外,不支持用户定义的函数和用户定义的过程。因此,默认情况下,数据库集群的
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
-
两阶段提交命令:
PREPARE TRANSACTION
、COMMIT PREPARED
、ROLLBACK PREPARED
-
用户定义的函数和用户定义的过程。
-
VACUUM
-
您可以考虑将以下 SQL 语句与写入转发一起使用:
-
DML 语句可能由多个部分组成,如
INSERT ... SELECT
语句或DELETE ... WHERE
语句。在这种情况下,整个语句将转发到写入器数据库实例并在此处运行。 -
数据操作语言 (DML) 语句,如
INSERT
、DELETE
和UPDATE
。 -
EXPLAIN
语句和此列表中的语句。 -
PREPARE
和EXECUTE
语句。 -
SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }
语句。