Architettura babelfish - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Architettura babelfish

Quando crei un cluster Aurora PostgreSQL con Babelfish attivato, Aurora fornisce il cluster un database PostgreSQL denominato babelfish_db. Questo database è dove risiedono tutti gli oggetti e le strutture di SQL Server migrati.

Nota

In un cluster Aurora PostgreSQL, il nome del database babelfish_db è riservato a Babelfish. La creazione del proprio database "babelfish_db" su un cluster database Babelfish impedisce ad Aurora di eseguire correttamente il provisioning di Babelfish.

Quando ci si connette alla porta TDS, la sessione viene inserita nel database babelfish_db. Da T-SQL, la struttura sembra simile alla connessione a un'istanza di SQL Server. Puoi visualizzare i database master, msdb e tempdb e il catalogo sys.databases. È possibile creare database utente aggiuntivi e passare da un database all'altro con l'istruzione USE. Quando crei un database utente di SQL Server, viene appiattito nel Database PostgreSQL babelfish_db. Il database mantiene la sintassi e la semantica tra database uguali o simili a quelli forniti da SQL Server.

Utilizzo di Babelfish con un singolo database o più database

Quando si crea un cluster Aurora PostgreSQL da utilizzare con Babelfish, è possibile scegliere tra l'utilizzo di un singolo database SQL Server sul proprio database SQL Server o più database SQL Server insieme. La tua scelta influisce sul modo in cui i nomi degli schemi di SQL Server all'interno del database babelfish_db vengono visualizzati da Aurora PostgreSQL. La modalità di migrazione è memorizzata nel parametro migration_mode. Non è necessario modificare questo parametro dopo aver creato il cluster poiché si potrebbe perdere l'accesso a tutti gli oggetti SQL creati in precedenza.

In modalità database singolo, i nomi dello schema del database SQL Server rimangono uguali nel database babelfish_db di PostgreSQL. Se scegli di migrare un solo singolo database, i nomi dello schema del database dell'utente migrato possono essere usati come riferimento in PostgreSQL con gli stessi nomi utilizzati in SQL Server. Ad esempio, gli schemi dbo e smith risiedono all'interno del database dbA .

Migrazione di un singolo database.

Quando ci si connette tramite TDS, è possibile eseguire USE dba per vedere gli schemi dbo e dev da T-SQL, come si farebbe in SQL Server. I nomi dello schema invariati sono visibili anche da PostgreSQL.

In modalità di database multipli, i nomi dello schema dei database utente diventano dbname_schemaname se l'accesso viene eseguito da PostgreSQL. I nomi dello schema rimangono gli stessi se l'accesso viene eseguito da T-SQL.

Migrazione di più database.

Come mostrato nell'immagine, la modalità database multipli e la modalità database singolo sono le stesse di SQL Server durante la connessione tramite la porta TDS e l'utilizzo di T-SQL. Ad esempio, USE dbA elenca schemi dbo e dev proprio come in SQL Server. I nomi dello schema mappati, come dba_dbo e dba_dev, sono visibili da PostgreSQL.

Ogni database contiene ancora i tuoi schemi. Il nome di ogni database è preceduto al nome dello schema di SQL Server, utilizzando un trattino di sottolineatura come delimitatore, ad esempio:

  • dba contiene dba_dbo e dba_dev.

  • dbb contiene dbb_dbo e dbb_test.

  • dbc contiene dbc_dbo e dbc_prod.

All'interno del databasebabelfish_db, l'utente T-SQL deve ancora eseguire USE dbname per modificare il contesto del database, in modo che l'aspetto rimanga simile a SQL Server.

Scegliere una modalità di migrazione

Ciascuna modalità di migrazione presenta vantaggi e svantaggi. Scegli la modalità di migrazione in base al numero di database utente e ai piani di migrazione. Dopo aver creato un cluster da utilizzare con Babelfish, non devi modificare la modalità di migrazione poiché potresti perdere l'accesso a tutti gli oggetti SQL creati in precedenza. Quando scegli una modalità di migrazione, considera i requisiti dei database utente e dei client.

Quando crei un cluster da utilizzare con Babelfish, Aurora PostgreSQL crea i database di sistema, master e tempdb. Se sono stati creati o modificati oggetti nei database di sistema (master o tempdb), assicurati di ricreare questi oggetti nel nuovo cluster. A differenza di SQL Server, Babelfish non si reinizializza tempdb dopo il riavvio di un cluster.

Utilizzare la modalità di migrazione di database singolo nei seguenti casi:

  • Se si sta eseguendo la migrazione di un singolo database SQL Server. In modalità database singolo, se l'accesso viene eseguito da PostgreSQL i nomi degli schemi migrati sono identici ai nomi dello schema originale di SQL Server. Ciò riduce le modifiche al codice per le query SQL esistenti se desideri ottimizzarle per l'esecuzione con una connessione PostgreSQL.

  • Se il tuo obiettivo finale è una migrazione completa alla nativa Aurora PostgreSQL. Prima di eseguire la migrazione, consolidare gli schemi in un unico schema (dbo) e quindi migrare in un singolo cluster per ridurre le modifiche richieste.

Utilizzare la modalità di migrazione di più database nei seguenti casi:

  • Se desideri l'esperienza SQL Server predefinita con più database utente nella stessa istanza.

  • Se è necessario migrare insieme più database dell'utente.