Arsitektur Babelfish - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Arsitektur Babelfish

Saat Anda membuat klaster Aurora PostgreSQL dengan Babelfish diaktifkan, Aurora menyediakan klaster dengan basis data PostgreSQL bernama babelfish_db. Basis data ini adalah tempat semua objek dan struktur SQL Server yang dimigrasi berada.

catatan

Dalam klaster Aurora PostgreSQL, nama basis data babelfish_db dicadangkan untuk Babelfish. Membuat basis data "babelfish_db" Anda sendiri pada klaster Babelfish DB mencegah Aurora berhasil menyediakan Babelfish.

Saat Anda terhubung ke port TDS, sesi ditempatkan pada basis data babelfish_db. Dari T-SQL, strukturnya terlihat mirip dengan kondisi saat terhubung ke instans SQL Server. Anda dapat melihat basis data master, msdb, dan tempdb, serta katalog sys.databases. Anda dapat membuat basis data pengguna tambahan dan beralih antar-basis data dengan pernyataan USE. Ketika Anda membuat basis data pengguna SQL Server, basis data tersebut akan diratakan ke dalam basis data PostgreSQL babelfish_db. Basis data Anda mempertahankan sintaks lintas-basis data dan semantik yang setara atau mirip dengan yang disediakan oleh SQL Server.

Menggunakan Babelfish dengan satu atau beberapa basis data

Saat Anda membuat klaster Aurora PostgreSQL untuk digunakan dengan Babelfish, Anda memilih antara menggunakan satu basis data SQL Server atau beberapa basis data SQL Server sekaligus. Pilihan Anda memengaruhi bagaimana nama skema SQL Server di dalam basis data babelfish_db muncul dari Aurora PostgreSQL. Mode migrasi disimpan dalam parameter migration_mode. Anda tidak boleh mengubah parameter ini setelah membuat klaster karena Anda bisa kehilangan akses ke semua objek SQL yang telah dibuat sebelumnya.

Dalam mode basis data tunggal, nama skema basis data SQL Server tetap sama dalam basis data babelfish_db PostgreSQL. Jika Anda memilih untuk hanya memigrasikan basis data tunggal, nama skema basis data pengguna yang dimigrasi dapat dirujuk di PostgreSQL dengan nama yang sama seperti di SQL Server. Misalnya, skema dbo dan smith berada dalam basis data dbA .

Memigrasikan basis data tunggal.

Saat menghubungkan melalui TDS, Anda dapat menjalankan USE dba untuk melihat skema dbo dan dev dari T-SQL, seperti yang Anda lakukan di SQL Server. Nama skema yang tidak berubah juga terlihat dari PostgreSQL.

Dalam modus multi-basis data, nama skema basis data pengguna menjadi dbname_schemaname ketika diakses dari PostgreSQL. Nama skema tetap sama ketika diakses dari T-SQL.

Memigrasikan beberapa basis data.

Seperti yang ditunjukkan pada gambar, mode multi-basis data dan mode basis data tunggal sama dengan SQL Server saat menghubungkan melalui port TDS dan menggunakan T-SQL. Misalnya, USE dbA mencantumkan skema dbo dan dev seperti halnya di SQL Server. Nama skema yang dipetakan, seperti dba_dbo dan dba_dev, terlihat dari PostgreSQL.

Setiap basis data masih berisi skema Anda. Nama setiap basis data ditambahkan ke nama skema SQL Server, menggunakan garis bawah sebagai pembatas, misalnya:

  • dba berisi dba_dbo dan dba_dev.

  • dbb berisi dbb_dbo dan dbb_test.

  • dbc berisi dbc_dbo dan dbc_prod.

Di dalam basis data babelfish_db, pengguna T-SQL masih perlu menjalankan USE dbname untuk mengubah konteks basis data, sehingga tampilan dan nuansanya tetap mirip dengan SQL Server.

Memilih mode migrasi

Setiap mode migrasi memiliki kelebihan dan kekurangan. Pilih mode migrasi berdasarkan jumlah basis data pengguna milik Anda, dan rencana migrasi Anda. Setelah Anda membuat klaster untuk digunakan dengan Babelfish, Anda tidak boleh mengubah mode migrasi karena Anda mungkin akan kehilangan akses ke semua objek SQL yang dibuat sebelumnya. Saat memilih mode migrasi, pertimbangkan persyaratan basis data dan klien pengguna Anda.

Saat Anda membuat klaster untuk digunakan dengan Babelfish, Aurora PostgreSQL membuat basis data sistem, master dan tempdb. Jika Anda membuat atau memodifikasi objek dalam basis data sistem (master atau tempdb), pastikan untuk membuat ulang objek tersebut di klaster baru. Tidak seperti SQL Server, Babelfish tidak menginisialisasi ulang tempdb setelah klaster mem-boot ulang.

Gunakan mode migrasi basis data tunggal dalam kasus berikut:

  • Jika Anda memigrasi satu basis data SQL Server. Dalam mode basis data tunggal, nama skema yang dimigrasi saat diakses dari PostgreSQL identik dengan nama skema SQL Server asli. Hal ini akan mengurangi perubahan kode pada kueri SQL yang ada jika Anda ingin mengoptimalkannya untuk dijalankan dengan koneksi PostgreSQL.

  • Jika tujuan akhir Anda adalah migrasi lengkap ke Aurora PostgreSQL asli. Sebelum bermigrasi, konsolidasikan skema Anda ke dalam satu skema (dbo) dan kemudian migrasikan ke dalam satu klaster untuk mengurangi perubahan yang diperlukan.

Gunakan beberapa mode migrasi basis data dalam kasus berikut:

  • Jika Anda menginginkan pengalaman SQL Server default dengan beberapa basis data pengguna dalam instans yang sama.

  • Jika beberapa basis data pengguna perlu dimigrasikan bersama.