Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Babelfish sebagai target untuk AWS Database Migration Service
Anda dapat memigrasikan data dari database sumber Microsoft SQL Server ke target Babelfish menggunakan. AWS Database Migration Service
Babelfish untuk Aurora PostgreSQL memperluas database Amazon Aurora PostgreSQL-Compatible Edition Anda dengan kemampuan untuk menerima koneksi database dari klien Microsoft SQL Server. Melakukan hal ini memungkinkan aplikasi yang awalnya dibangun untuk SQL Server untuk bekerja langsung dengan Aurora PostgreSQL dengan sedikit perubahan kode dibandingkan dengan migrasi tradisional, dan tanpa mengubah driver database.
Untuk informasi tentang versi Babelfish yang AWS DMS mendukung sebagai target, lihat. Target untuk AWS DMS Versi Babelfish sebelumnya di Aurora PostgreSQL memerlukan peningkatan sebelum menggunakan titik akhir Babelfish.
catatan
Titik akhir target Aurora PostgreSQL adalah cara yang lebih disukai untuk memigrasikan data ke Babelfish. Untuk informasi selengkapnya, lihat Menggunakan Babelfish untuk Aurora PostgreSQL sebagai target.
Untuk informasi tentang menggunakan Babelfish sebagai titik akhir database, lihat Babelfish untuk Aurora PostgreSQL di Panduan Pengguna Amazon Aurora untuk Aurora
Prasyarat untuk menggunakan Babelfish sebagai target AWS DMS
Anda harus membuat tabel sebelum memigrasikan data untuk memastikan bahwa AWS DMS menggunakan tipe data dan metadata tabel yang benar. Jika Anda tidak membuat tabel pada target sebelum menjalankan migrasi, Anda AWS DMS dapat membuat tabel dengan tipe data dan izin yang salah. Misalnya, membuat kolom AWS DMS stempel waktu sebagai biner (8) sebagai gantinya, dan tidak menyediakan fungsionalitas yang diharapkan timestamp/rowversion .
Untuk mempersiapkan dan membuat tabel Anda sebelum migrasi
-
Jalankan pernyataan DDL tabel create Anda yang menyertakan batasan unik, kunci utama, atau batasan default.
Jangan sertakan batasan kunci asing, atau pernyataan DDL apa pun untuk objek seperti tampilan, prosedur tersimpan, fungsi, atau pemicu. Anda dapat menerapkannya setelah memigrasikan database sumber Anda.
-
Identifikasi kolom identitas, kolom yang dihitung, atau kolom yang berisi tipe data rowversion atau timestamp untuk tabel Anda. Kemudian, buat aturan transformasi yang diperlukan untuk menangani masalah yang diketahui saat menjalankan tugas migrasi. Untuk informasi selengkapnya, lihat Aturan dan tindakan transformasi.
-
Identifikasi kolom dengan tipe data yang tidak didukung Babelfish. Kemudian, ubah kolom yang terpengaruh dalam tabel target untuk menggunakan tipe data yang didukung, atau buat aturan transformasi yang menghapusnya selama tugas migrasi. Untuk informasi selengkapnya, lihat Aturan dan tindakan transformasi.
Tabel berikut mencantumkan tipe data sumber yang tidak didukung oleh Babelfish, dan tipe data target yang direkomendasikan untuk digunakan.
Jenis data sumber
Jenis data Babelfish yang direkomendasikan
HIERARCHYID
NARCIS (250)
GEOMETRY
VARCHAR (MAKS)
GEOGRAPHY
VARCHAR (MAKS)
Untuk mengatur tingkat unit kapasitas Aurora (ACU) untuk database sumber Aurora PostgreSQL Serverless V2 Anda
Anda dapat meningkatkan kinerja tugas AWS DMS migrasi sebelum menjalankannya dengan menetapkan nilai ACU minimum.
-
Dari jendela pengaturan kapasitas Severless v2, setel AC U Minimum ke
2, atau tingkat yang wajar untuk cluster Aurora DB Anda.Untuk informasi tambahan tentang pengaturan unit kapasitas Aurora, lihat Memilih rentang kapasitas Aurora Serverless v2 untuk cluster Aurora di Panduan Pengguna Amazon Aurora
Setelah menjalankan tugas AWS DMS migrasi, Anda dapat mengatur ulang nilai minimum ACU ke tingkat yang wajar untuk database sumber Aurora PostgreSQL Serverless V2 Anda.
Persyaratan keamanan saat menggunakan Babelfish sebagai target untuk AWS Database Migration Service
Berikut ini menjelaskan persyaratan keamanan untuk digunakan AWS DMS dengan target Babelfish:
-
Nama pengguna administrator (pengguna Admin) digunakan untuk membuat database.
-
Login PSQL dan pengguna dengan izin SELECT, INSERT, UPDATE, DELETE, dan REFERENSI yang memadai.
Izin pengguna untuk menggunakan Babelfish sebagai target AWS DMS
penting
Untuk tujuan keamanan, akun pengguna yang digunakan untuk migrasi data harus merupakan pengguna terdaftar di database Babelfish mana pun yang Anda gunakan sebagai target.
Titik akhir target Babelfish Anda memerlukan izin pengguna minimum untuk menjalankan migrasi AWS DMS .
Untuk membuat login dan pengguna Transact-SQL (T-SQL) dengan hak istimewa rendah
-
Buat login dan kata sandi untuk digunakan saat menghubungkan ke server.
CREATE LOGIN dms_user WITH PASSWORD ='password'; GO -
Buat database virtual untuk cluster Babelfish Anda.
CREATE DATABASE my_database; GO -
Buat T-SQL pengguna untuk database target Anda.
USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO -
Untuk setiap tabel dalam database Babelfish Anda, BERIKAN izin ke tabel.
GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;
Batasan penggunaan Babelfish sebagai target AWS Database Migration Service
Batasan berikut berlaku saat menggunakan database Babelfish sebagai target untuk: AWS DMS
-
Hanya mode persiapan meja “Do Nothing “yang didukung.
-
Tipe data ROWVERSION memerlukan aturan pemetaan tabel yang menghapus nama kolom dari tabel selama tugas migrasi.
-
Tipe data sql_variant tidak didukung.
-
Mode LOB penuh didukung. Menggunakan SQL Server sebagai titik akhir sumber memerlukan pengaturan Atribut Koneksi Titik Akhir
ForceFullLob=TrueSQL Server untuk disetel agar LOB dapat dimigrasikan ke titik akhir target. -
Pengaturan tugas replikasi memiliki batasan berikut:
{ "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. } -
TIME (7), DATETIME2 (7), dan DATETIMEOFFSET (7) tipe data di Babelfish membatasi nilai presisi untuk porsi detik waktu menjadi 6 digit. Pertimbangkan untuk menggunakan nilai presisi 6 untuk tabel target Anda saat menggunakan tipe data ini. Untuk Babelfish versi 2.2.0 dan lebih tinggi, saat menggunakan TIME (7) dan DATETIME2 (7), digit ketujuh presisi selalu nol.
-
Dalam mode DO_NOTHING, DMS memeriksa untuk melihat apakah tabel sudah ada. Jika tabel tidak ada dalam skema target, DMS membuat tabel berdasarkan definisi tabel sumber, dan memetakan setiap tipe data yang ditentukan pengguna ke tipe data dasarnya.
-
Tugas AWS DMS migrasi ke target Babelfish tidak mendukung tabel yang memiliki kolom menggunakan tipe data ROWVERSION atau TIMESTAMP. Anda dapat menggunakan aturan pemetaan tabel yang menghapus nama kolom dari tabel selama proses transfer. Dalam contoh aturan transformasi berikut, tabel bernama
Actordalam sumber Anda diubah untuk menghapus semua kolom dimulai dengan karaktercoldariActortabel di target Anda.{ "rules": [{ "rule-type": "selection",is "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] } -
Untuk tabel dengan identitas atau kolom yang dihitung, di mana tabel target menggunakan nama kasus campuran seperti Kategori, Anda harus membuat tindakan aturan transformasi yang mengubah nama tabel menjadi huruf kecil untuk tugas DMS Anda. Contoh berikut menunjukkan cara membuat tindakan aturan transformasi, Buat huruf kecil menggunakan konsol. AWS DMS Untuk informasi selengkapnya, lihat Aturan dan tindakan transformasi.
-
Sebelum Babelfish versi 2.2.0, DMS membatasi jumlah kolom yang dapat Anda tiru ke titik akhir target Babelfish menjadi dua puluh (20) kolom. Dengan Babelfish 2.2.0 batasnya meningkat menjadi 100 kolom. Tetapi dengan Babelfish versi 2.4.0 dan lebih tinggi, jumlah kolom yang dapat Anda tiru meningkat lagi. Anda dapat menjalankan contoh kode berikut terhadap database SQL Server Anda untuk menentukan tabel mana yang terlalu panjang.
USE myDB; GO DECLARE @Babelfish_version_string_limit INT = 8000; -- Use 380 for Babelfish versions before 2.2.0 WITH bfendpoint AS ( SELECT [TABLE_SCHEMA] ,[TABLE_NAME] , COUNT( [COLUMN_NAME] ) AS NumberColumns , ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) AS InsertIntoCommandLength -- values string , CASE WHEN ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) -- values string >= @Babelfish_version_string_limit THEN 1 ELSE 0 END AS IsTooLong FROM [INFORMATION_SCHEMA].[COLUMNS] GROUP BY [TABLE_SCHEMA], [TABLE_NAME] ) SELECT * FROM bfendpoint WHERE IsTooLong = 1 ORDER BY TABLE_SCHEMA, InsertIntoCommandLength DESC, TABLE_NAME ;
Jenis data target untuk Babelfish
Tabel berikut menunjukkan tipe data target Babelfish yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe AWS DMS data.
Untuk informasi tambahan tentang AWS DMS tipe data, lihatTipe data untuk AWS Database Migration Service.
|
AWS DMS tipe data |
Tipe data Babelfish |
|---|---|
|
BOOLEAN |
TINYINT |
|
BYTES |
VARBINARY(length) |
|
DATE |
DATE |
|
TIME |
TIME |
|
INT1 |
SMALLINT |
|
INT2 |
SMALLINT |
|
INT4 |
INT |
|
INT8 |
BIGINT |
|
NUMERIC |
NUMERIK (p, s) |
|
REAL4 |
REAL |
|
REAL8 |
FLOAT |
|
STRING |
Jika kolom berupa kolom tanggal atau waktu, lakukan hal berikut:
Jika kolom bukan berupa kolom tanggal atau waktu, gunakan VARCHAR (length). |
|
UINT1 |
TINYINT |
|
UINT2 |
SMALLINT |
|
UINT4 |
INT |
|
UINT8 |
BIGINT |
|
WSTRING |
NVARCHAR (panjang) |
|
BLOB |
VARBINARY(max) Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan BLOB untuk tugas tertentu. DMS mendukung tipe data BLOB hanya dalam tabel yang menyertakan kunci primer. |
|
CLOB |
VARCHAR(max) Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan CLOB untuk tugas tertentu. |
|
NCLOB |
NVARCHAR(max) Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan NCLOBs untuk tugas tertentu. Selama CDC, DMS mendukung tipe data NCLOB hanya dalam tabel yang menyertakan kunci utama. |