跳到主要内容 跳到补充内容

限制和考虑事项

在使用 PostgreSQL 源时,应注意以下限制和注意事项:

所有数据任务的限制和注意事项

  • 数据库名称不能包含分号 (;)。
  • 不支持在数据库处于热备用模式时捕获更改。
  • 要从第二数据库捕获更改,必须在数据库上配置读/写权限。由于写权限要求,不支持 PostgreSQL 读副本(在高可用性环境中)。

    有关读写权限的信息,请参阅从客户安装的 PostgreSQL 数据库捕获更改

  • 具有相同名称但大小写不同(例如 table1TABLE1Table1)的多个表的 移动 可能会导致不可预测的行为,因此不受支持。
  • 不支持 TRUNCATE 操作的更改处理。
  • 不支持延迟约束。
  • 仅支持副本标识的默认配置。

    有关副本标识的更多信息,请参阅 https://www.postgresql.org/docs/10/logical-replication-publication.html

  • 不支持带有 CASE 表达式的唯一索引。

仅登陆任务的限制和注意事项

  • 不支持分区表。
  • 强制故障转移是 Azure Database for PostgreSQL–Flexible Server 的一项功能。如果来自 Azure Database for PostgreSQL–Flexible Server 的 移动 数据发生强制故障转移,则任务将停止,需要重新创建数据集。

仅复制任务的限制和注意事项

  • 源表和相应的目标表必须具有相同的主键。如果其中一个表没有主键,则 DELETE 和 UPDATE 记录操作的结果将不可预测。
  • 不支持“从时间戳开始进程更改”运行选项。
  • 不支持之前映像的移动
  • 支持 [CREATE | ALTER | DROP] 表 DDL 的更改处理,除非它们保存在内部函数/过程体块或其他嵌套结构中。

    例如,将不会捕获以下更改:

    CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void

    LANGUAGE plpgsql

    AS $$

    BEGIN

    create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL);

    END;

    $$;

  • 当捕获对源表的更改时,只有在 RENAME TABLE 操作之前有 DML 操作时,才会捕获 RENAME TABLE 操作。

  • 不支持 PostGIS 数据类型。

  • 强制故障转移是 Azure Database for PostgreSQL–Flexible Server 的一项功能。如果来自 Azure Database for PostgreSQL–Flexible Server 的 移动 数据发生强制故障转移,则任务将停止,需要重新加载数据集。

  • PostgreSQL 15.x 中引入的 SQL MERGE 命令尚未经过认证。

不受支持的数据类型

不支持以下数据类型:

  • PostGIS

  • INT4MULTIRANGE
  • INT8MULTIRANGE
  • NUMMULTIRANGE
  • TSMULTIRANGE

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!