

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Babelfish-Architektur
<a name="babelfish-architecture"></a>

Wenn Sie einen Aurora-PostgreSQL-Cluster erstellen, bei dem Babelfish aktiviert ist, stellt Aurora den Cluster mit einer PostgreSQL-Datenbank namens `babelfish_db` bereit. In dieser Datenbank befinden sich alle migrierten SQL Server-Objekte und Strukturen. 

**Anmerkung**  
In einem Aurora-PostgreSQL-Cluster ist der Datenbankname `babelfish_db` für Babelfish reserviert. Wenn Sie eine eigene „babelfish\$1db“-Datenbank auf einem Babelfish-DB-Cluster erstellen, wird verhindert, dass Aurora Babelfish erfolgreich bereitstellt. 

Wenn Sie eine Verbindung zum TDS-Port herstellen, wird die Sitzung in der `babelfish_db`-Datenbank. Von T-SQL sieht die Struktur ähnlich aus wie eine Verbindung mit einer SQL Server-Instanz. Die `master`-, `msdb`- und `tempdb`-Datenbanken und der `sys.databases`-Katalog sind zu sehen. Sie können zusätzliche Benutzerdatenbanken erstellen und mit der USE-Anweisung zwischen Datenbanken wechseln. Wenn Sie eine SQL Server-Benutzerdatenbank erstellen, wird sie in die `babelfish_db` PostgreSQL-Datenbank eingebracht. Ihre Datenbank behält datenbankübergreifende Syntax und Semantik bei, die denen von SQL Server entsprechen oder ähnlich sind.

## Verwenden von Babelfish mit einer einzigen Datenbank oder mehreren Datenbanken
<a name="babelfish-single_vs_multi_db"></a>

Wenn Sie einen Aurora-PostgreSQL-Cluster erstellen, der mit Babelfish verwendet werden soll, wählen Sie zwischen der Verwendung einer einzelnen SQL Server-Datenbank für sich selbst oder mehrere SQL Server-Datenbanken zusammen. Ihre Wahl wirkt sich darauf aus, wie die Namen von SQL Server-Schemas innerhalb der `babelfish_db`-Datenbank aus Aurora PostgreSQL erscheinen. Der Migrationsmodus wird im `migration_mode`-Parameter gespeichert. Sie dürfen diesen Parameter nicht ändern, nachdem Sie Ihren Cluster erstellt haben, da Sie ggf. den Zugriff auf alle zuvor erstellten SQL-Objekte verlieren.

Im Einzeldatenbank-Modus bleiben die Schemanamen der SQL-Server-Datenbank in der `babelfish_db`-Datenbank von PostgreSQL unverändert. Wenn Sie nur eine einzelne Datenbank migrieren möchten, können die Schemanamen der migrierten Benutzerdatenbank in PostgreSQL mit denselben Namen referenziert werden, die in SQL Server verwendet werden. Zum Beispiel: Das `dbo`- und `smith`-Schema befinden sich in der `dbA`-Datenbank*.* 

![\[\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/images/babelfish_single_db_mode.png)


Wenn Sie sich über TDS verbinden, können Sie `USE dba` starten, um Schemas `dbo` und `dev` von T-SQL zu sehen, wie Sie es in SQL Server tun würden. Die unveränderten Schemanamen sind auch von PostgreSQL aus sichtbar.

Im Mehrfachdatenbankmodus werden die Schemanamen von Benutzerdatenbanken zu `dbname_schemaname`, wenn von PostgreSQL aus darauf zugegriffen wird. Die Schemanamen bleiben gleich, wenn von T-SQL aus darauf zugegriffen wird.

![\[\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/images/babelfish_multi_db_mode.png)


Wie im Bild gezeigt, sind der Mehrfachdatenbankmodus und der Einzeldatenbankmodus identisch mit SQL Server, wenn Sie eine Verbindung über den TDS-Port herstellen und T-SQL verwenden. Beispielsweise listet `USE dbA` Schemata `dbo` und `dev` genau wie in SQL Server auf. Die zugeordneten Schemanamen wie `dba_dbo` und `dba_dev` sind von PostgreSQL aus sichtbar.

Jede Datenbank enthält immer noch Ihre Schemas. Der Name jeder Datenbank wird dem Namen des SQL Server-Schemas vorangestellt, wobei ein Unterstrich als Trennzeichen verwendet wird, z. B.:
+ `dba` enthält `dba_dbo` und `dba_dev`.
+ `dbb` enthält `dbb_dbo` und `dbb_test`.
+ `dbc` enthält `dbc_dbo` und `dbc_prod`.

Innerhalb der `babelfish_db`-Datenbank muss der T-SQL-Benutzer immer noch `USE dbname` ausführen, um den Datenbankkontext zu ändern, so dass das Erscheinungsbild ähnlich wie bei SQL Server bleibt.

## Auswahl eines Migrationsmodus
<a name="babelfish-choosing_single_vs_multi"></a>

Jeder Migrationsmodus hat Vor- und Nachteile. Wählen Sie Ihren Migrationsmodus basierend auf der Anzahl der Benutzerdatenbanken, die Sie haben, und Ihren Migrationsplänen aus. Nachdem Sie einen Cluster für die Verwendung mit Babelfish erstellt haben, dürfen Sie den Migrationsmodus nicht mehr ändern, da Sie ggf. den Zugriff auf alle zuvor erstellten SQL-Objekte verlieren. Berücksichtigen Sie bei der Auswahl eines Migrationsmodus die Anforderungen Ihrer Benutzerdatenbanken und Clients.

Wenn Sie einen Cluster zur Verwendung mit Babelfish erstellen, erstellt Aurora PostgreSQL die Systemdatenbanken `master` und `tempdb`. Wenn Sie Objekte in den Systemdatenbanken erstellt oder geändert haben (`master` oder `tempdb`), stellen Sie sicher, dass Sie diese Objekte in Ihrem neuen Cluster neu erstellen. Im Gegensatz zu SQL Server initialisiert Babelfish `tempdb` nach einem Neustart des Clusters nicht neu.

Verwenden Sie in den folgenden Fällen den Migrationsmodus einer einzelnen Datenbank:
+ Wenn Sie eine einzelne SQL Server-Datenbank migrieren. Im Einzeldatenbankmodus sind migrierte Schemanamen identisch mit den ursprünglichen SQL-Server-Schemanamen. Dadurch werden Codeänderungen an vorhandenen SQL-Abfragen reduziert, wenn Sie sie für die Ausführung mit einer PostgreSQL-Verbindung optimieren möchten.
+ Wenn Ihr Endziel eine vollständige Migration zur nativen Aurora PostgreSQL ist. Konsolidieren Sie Ihre Schemas vor der Migration in einem einzigen Schema (`dbo`) und migrieren Sie dann in einen einzelnen Cluster, um die erforderlichen Änderungen zu verringern.

Verwenden Sie in den folgenden Fällen den Migrationsmodus für mehrere Datenbanken:
+ Wenn Sie die standardmäßige SQL-Server-Umgebung mit mehreren Benutzerdatenbanken in derselben Instance wünschen.
+ Wenn mehrere Benutzerdatenbanken zusammen migriert werden müssen.