Babelfish-Architektur - Amazon Aurora

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

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_db“-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

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.

Migrieren einer einzelnen Datenbank.

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.

Migrieren mehrerer Datenbanken.

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

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.