Menggunakan basis data Microsoft SQL Server sebagai target untuk AWS Database Migration Service - AWS Layanan Migrasi Database

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

Menggunakan basis data Microsoft SQL Server sebagai target untuk AWS Database Migration Service

Anda dapat memigrasi data ke basis data Microsoft SQL Server menggunakan AWS DMS. Dengan basis data SQL Server sebagai target, Anda dapat memigrasi data dari basis data SQL Server lain atau salah satu basis data didukung lainnya.

Untuk informasi tentang versi SQL Server yang AWS DMS mendukung sebagai target, lihatTarget untuk AWS DMS.

AWS DMSmendukung edisi lokal dan Amazon RDS Enterprise, Standard, Workgroup, dan Developer.

Untuk detail tambahan tentang bekerja dengan AWS DMS dan basis data target SQL Server, lihat berikut ini.

Keterbatasan menggunakan SQL Server sebagai target untuk AWS Database Migration Service

Batasan berikut berlaku saat menggunakan basis data SQL Server sebagai sumber untuk AWS DMS:

  • Ketika Anda membuat tabel target SQL Server secara manual dengan kolom terkomputasi, maka penggunaan utilitas salinan massal BCP tidak mendukung replikasi beban penuh. Untuk menggunakan replikasi beban penuh, nonaktifkan pemuatan BCP dengan menyetel atribut koneksi tambahan (ECA) 'useBCPFullLoad=false' pada titik akhir. Untuk informasi tentang pengaturan ECA pada titik akhir, lihat. Membuat titik akhir sumber dan target Untuk informasi lebih lanjut tentang bekerja menggunakan BCP, lihat dokumentasi Microsoft SQL Server.

  • Ketika mereplikasi tabel dengan tipe data spasial dari SQL Server (GEOMETRY dan GEOGRAPHY) AWS DMS mengganti setiap pengenal referensi spasial (SRID) yang mungkin telah Anda masukkan dengan SRID default. SRID default adalah 0 untuk GEOMETRY dan 4326 untuk GEOGRAPHY.

  • Tidak mendukung tabel sementara. Migrasi tabel temporal dapat bekerja dengan tugas yang hanya terdiri dari replikasi saja dalam mode penerapan transaksional jika tabel tersebut dibuat secara manual pada target.

  • Saat ini tipe data boolean dalam sumber PostgreSQL dimigrasi ke target SQLServer sebagai tipe data bit dengan nilai yang tidak konsisten.

    Sebagai solusinya, lakukan hal berikut:

    • Buat tabel dengan tipe VARCHAR(1) data untuk kolom (atau biarkan AWS DMS membuat tabel). Kemudian buatlah pemrosesan hilir memperlakukan “F” sebagai False dan “T” sebagai True.

    • Untuk menghindari keharusan mengubah pemrosesan hilir, tambahkan aturan transformasi ke tugas untuk mengubah nilai “F” menjadi “0" dan “T” menjadi 1, dan simpan sebagai tipe data bit server SQL.

  • AWS DMStidak mendukung pemrosesan perubahan untuk mengatur nullabilitas kolom (menggunakan ALTER COLUMN [SET|DROP] NOT NULL klausa dengan pernyataan). ALTER TABLE

  • Autentikasi Windows tidak didukung.

Persyaratan keamanan saat menggunakan SQL Server sebagai target untuk AWS Database Migration Service

Berikut penjelasan persyaratan keamanan untuk penggunaan AWS DMS dengan target Microsoft SQL Server:

  • Parameter akun pengguna AWS DMS harus memiliki setidaknya peran pengguna db_owner di basis data SQL Server yang Anda hubungkan.

  • Administrator sistem SQL Server harus memberikan izin ini untuk semua akun pengguna AWS DMS.

Pengaturan titik akhir saat menggunakan SQL Server sebagai target AWS DMS

Anda dapat menggunakan pengaturan endpoint untuk mengkonfigurasi database target SQL Server Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir target menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint perintah di AWS CLI, dengan sintaks --microsoft-sql-server-settings '{"EndpointSetting": "value", ...}' JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan SQL Server sebagai target.

Nama Penjelasan

ControlTablesFileGroup

Tentukan kelompok file untuk tabel internal AWS DMS. Ketika tugas replikasi dimulai, semua tabel kendali AWS DMS internal (awsdms_ apply_exception, awsdms_apply, awsdms_changes) dibuat pada kelompok file yang sudah ditentukan.

Nilai default: tidak ada

Nilai valid: String

Contoh: --microsoft-sql-server-settings '{"ControlTablesFileGroup": "filegroup1"}'

Berikut ini adalah contoh perintah untuk membuat kelompok file.

ALTER DATABASE replicate ADD FILEGROUP Test1FG1; GO ALTER DATABASE replicate ADD FILE (        NAME = test1dat5,        FILENAME = 'C:\temp\DATA\t1dat5.ndf',        SIZE = 5MB,        MAXSIZE = 100MB,        FILEGROWTH = 5MB    )    TO FILEGROUP Test1FG1;    GO

ExecuteTimeout

Gunakan atribut koneksi tambahan (ECA) ini untuk mengatur batas waktu pernyataan klien untuk instance SQL Server, dalam hitungan detik. Nilai default adalah 60 detik.

Contoh: '{"ExecuteTimeout": 100}'

UseBCPFullLoad

Gunakan ini untuk mengatributkan transfer data untuk operasi beban penuh menggunakan BCP. Ketika tabel target berisi identitas kolom yang tidak ada di tabel sumber, Anda harus nonaktifkan pilihan Gunakan BCP untuk memuat tabel.

Nilai default: benar

Nilai yang benar: benar/salah

Contoh: --microsoft-sql-server-settings '{"UseBCPFullLoad": false}'

Jenis data target untuk Microsoft SQL Server

Tabel berikut menunjukkan tipe data target Microsoft SQL Server yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe data AWS DMS. Untuk informasi tambahan tentang tipe data AWS DMS, lihat Tipe data untuk AWS Database Migration Service.

Tipe data AWS DMS

Tipe data SQL Server

BOOLEAN

TINYINT

BYTES

VARBINARY(length)

DATE

Untuk SQL Server 2008 dan yang lebih tinggi, gunakan DATE.

Untuk versi sebelumnya, jika skalanya 3 atau kurang, gunakan DATETIME. Selain itu gunakan VARCHAR (37).

WAKTU

Untuk SQL Server 2008 dan yang lebih tinggi, gunakan DATETIME2 (%d).

Untuk versi sebelumnya, jika skalanya 3 atau kurang, gunakan DATETIME. Selain itu gunakan VARCHAR (37).

DATETIME

Untuk SQL Server 2008 dan yang lebih tinggi, gunakan DATETIME2 (skala).

Untuk versi sebelumnya, jika skalanya 3 atau kurang, gunakan DATETIME. Selain itu gunakan VARCHAR (37).

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIC (p,s)

REAL4

REAL

REAL8

FLOAT

STRING

Jika kolom berupa kolom tanggal atau waktu, lakukan hal berikut:

  • Untuk SQL Server 2008 dan yang lebih tinggi, gunakan DATETIME2.

  • Untuk versi sebelumnya, jika skalanya 3 atau kurang, gunakan DATETIME. Selain itu gunakan VARCHAR (37).

Jika kolom bukan berupa kolom tanggal atau waktu, gunakan VARCHAR (length).

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INT

UINT8

BIGINT

WSTRING

NVARCHAR (length)

BLOB

VARBINARY(max)

IMAGE

Untuk menggunakan tipe data ini dengan AWS DMS, Anda harus mengaktifkan penggunaan BLOBs untuk tugas tertentu. AWS DMS mendukung tipe data BLOB hanya dalam tabel dengan kunci primer.

CLOB

VARCHAR(max)

Untuk menggunakan tipe data ini dengan AWS DMS, Anda harus mengaktifkan penggunaan CLOB untuk tugas tertentu. Selama perubahan penangkapan data (CDC) berjalan, AWS DMS mendukung tipe data CLOB hanya dalam tabel dengan kunci primer.

NCLOB

NVARCHAR(max)

Untuk menggunakan tipe data ini dengan AWS DMS, Anda harus mengaktifkan penggunaan NCLOB untuk tugas tertentu. Selama CDC berjalan, AWS DMS mendukung tipe data NCLOB hanya dalam tabel yang mencakup kunci primer.