

# 适用于 Aurora PostgreSQL 的 Babelfish 与 SQL Server 之间的区别
<a name="babelfish-compatibility"></a>

Babelfish 是一项不断发展的 Aurora PostgreSQL 功能，自 Aurora PostgreSQL 13.4 首次推出以来，每个版本都添加了新功能。它旨在使用 TDS 端口通过 T-SQL 方言在 PostgreSQL 之上提供 T-SQL 语义。Babelfish 的每个新版本都添加了可更好地与 T-SQL 功能和行为保持一致的特性和功能，如 [Babelfish 的各个版本支持的功能](babelfish-compatibility.supported-functionality-table.md)表中所示。为了在使用 Babelfish 时获得最佳效果，我们建议您了解 SQL Server 与最新版本的 Babelfish 支持的 T-SQL 之间目前存在的区别。要了解更多信息，请参阅[Babelfish 中的 T-SQL 差异](babelfish-compatibility.tsql.limitations.md)。

除了 Babelfish 和 SQL Server 支持的 T-SQL 之间的区别之外，您可能还需要在 Aurora PostgreSQL 数据库集群的背景下考虑 Babelfish 和 PostgreSQL 之间的互操作性问题。如前所述，Babelfish 使用 TDS 端口通过 T-SQL 方言在 PostgreSQL 之上支持 T-SQL 语义。同时，也可以使用 PostgreSQL SQL 语句通过标准 PostgreSQL 端口访问 Babelfish 数据库。如果您正在考虑在生产部署中同时使用 PostgreSQL 和 Babelfish 功能，则需要意识到架构名称、标识符、权限、事务语义、多个结果集、原定设置排序规则等之间潜在的互操作性问题。简而言之，当 PostgreSQL 语句或 PostgreSQL 访问发生在 Babelfish 的上下文中时，在新版本的 Babelfish 发布时，PostgreSQL 和 Babelfish 之间可能会发生干扰并可能影响语法、语义和兼容性。有关所有注意事项的完整信息和指导，请参阅 Babelfish for PostgreSQL 文档中的 [Babelfish 互操作性指南](https://babelfishpg.org/docs/usage/interoperability/)。

**注意**  
在同一个应用程序上下文中同时使用 PostgreSQL 原生功能和 Babelfish 功能之前，我们强烈建议您考虑在 Babelfish for PostgreSQL 文档的 [Babelfish 互操作性指南](https://babelfishpg.org/docs/usage/interoperability/)中讨论的问题。只有当您计划在与 Babelfish 相同的应用程序上下文中使用 PostgreSQL 数据库实例时，这些互操作性问题（Aurora PostgreSQL 和 Babelfish）才有意义。

**Topics**
+ [Babelfish 转储和还原](#babelfish-compatibility.dumprestore)
+ [Babelfish 中的 T-SQL 差异](babelfish-compatibility.tsql.limitations.md)
+ [Babelfish 中的事务隔离级别](babelfish-transaction.md)

## Babelfish 转储和还原
<a name="babelfish-compatibility.dumprestore"></a>

从版本 4.0.0 和 3.4.0 开始，Babelfish 用户现在可以使用转储和还原实用程序来备份和还原其数据库。有关更多信息，请参阅 [Babelfish dump and restore](https://github.com/babelfish-for-postgresql/babelfish-for-postgresql/wiki/Babelfish-Dump-and-Restore)。此功能基于 PostgreSQL 转储和还原实用程序而构建。有关更多信息，请参阅 [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html) 和 [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html)。为了在 Babelfish 中有效地使用此功能，您需要使用专门适用于 Babelfish 的基于 PostgreSQL 的工具。Babelfish 的备份和还原功能与 SQL Server 的备份和还原功能有很大不同。有关这些差异的更多信息，请参阅 [Dump and restore functionality differences: Babelfish and SQL Server](https://github.com/babelfish-for-postgresql/babelfish-for-postgresql/wiki/Babelfish-Dump-and-Restore#differences)。Babelfish for Aurora PostgreSQL 为备份和还原 Amazon Aurora PostgreSQL 数据库集群提供额外功能。有关更多信息，请参阅 [备份和还原 Amazon Aurora 数据库集群](BackupRestoreAurora.md)。