View a markdown version of this page

Menyetel dukungan LOB untuk basis data sumber di AWS DMS tugas - AWS Database Migration Service

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

Menyetel dukungan LOB untuk basis data sumber di AWS DMS tugas

Objek biner besar (LOB) kadang-kadang sulit untuk bermigrasi antar sistem. AWS DMS menawarkan sejumlah pilihan untuk membantu penyetelan kolom LOB. Untuk melihat tipe data mana dan kapan dianggap LOB AWS DMS, lihat AWS DMS dokumentasinya.

Ketika Anda bermigrasi data dari satu basis data ke yang lain, Anda dapat mengambil kesempatan untuk memikirkan kembali bagaimana LOB Anda disimpan, terutama untuk migrasi heterogen. Jika Anda ingin melakukannya, ada tidak perlu untuk bermigrasi LOB data.

Jika Anda memutuskan untuk memasukkan LOB, Anda kemudian dapat memutuskan pengaturan LOB lainnya:

  • Mode LOB menentukan bagaimana LOB ditangani:

    • Mode LOB penuh - Dalam mode LOB penuh AWS DMS memigrasikan semua LOB dari sumber ke target terlepas dari ukurannya. Dalam konfigurasi ini, tidak AWS DMS memiliki informasi tentang ukuran maksimum LOB yang diharapkan. Dengan demikian, LOB dimigrasi satu per satu, sepotong demi sepotong. Mode LOB penuh bisa sangat lambat.

    • Mode LOB terbatas - Dalam mode LOB terbatas, Anda mengatur ukuran LOB maksimum untuk diterima DMS. Itu memungkinkan DMS untuk mengalokasikan memori dan memuat data LOB secara massal. LOB yang melebihi ukuran LOB maksimum terpotong, dan peringatan dikeluarkan ke file log. Dalam mode LOB terbatas, Anda dapat memperoleh kinerja yang signifikan melalui mode LOB penuh. Kami menyarankan agar Anda menggunakan mode LOB terbatas bila memungkinkan. Nilai maksimum untuk parameter ini adalah 102400 KB (100 MB).

      catatan

      Menggunakan opsi Max LOB size (K) dengan nilai lebih besar dari 63KB berdampak pada kinerja beban penuh yang dikonfigurasi untuk berjalan dalam mode LOB terbatas. Selama beban penuh, DMS mengalokasikan memori dengan mengalikan nilai ukuran LOB Max (k) dengan tingkat Komit, dan produk dikalikan dengan jumlah kolom LOB. Ketika DMS tidak dapat mengalokasikan memori itu sebelumnya, ia mengkonsumsi memori SWAP yang berdampak negatif pada kinerja tugas beban penuh. Jika Anda mengalami masalah kinerja saat menggunakan mode LOB terbatas, pertimbangkan untuk mengurangi tingkat komit hingga Anda mencapai tingkat kinerja yang dapat diterima. Selama mode CDC, DMS mengalokasikan memori dengan mengalikan jumlah Kolom LOB dengan parameter Ukuran LOB Maks yang ditentukan dalam pengaturan tugas LOB Terbatas, dan kemudian dengan ukuran rekaman. Proses DMS CDC adalah single threaded per tugas DMS. Untuk informasi selengkapnya, lihat Mengubah setelan penyetelan pemrosesan.

      Untuk memvalidasi ukuran LOB terbatas, Anda harus menyetel ValidationPartialLobSize ke nilai yang sama dengan LobMaxSize (K).

    • Mode LOB sebaris - Dalam mode LOB sebaris, Anda mengatur ukuran LOB maksimum yang ditransfer DMS sebaris. LOB lebih kecil dari ukuran yang ditentukan ditransfer inline. LOB lebih besar dari ukuran yang ditentukan direplikasi menggunakan modus LOB penuh. Anda dapat memilih opsi ini untuk mereplikasi LOB kecil dan besar ketika sebagian besar LOB kecil. DMS tidak mendukung mode LOB sebaris untuk titik akhir yang tidak mendukung mode LOB Penuh, seperti S3 dan Redshift.

    catatan

    Dengan Oracle, LOB diperlakukan sebagai tipe data VARCHAR bila memungkinkan. Pendekatan ini berarti AWS DMS mengambilnya dari database secara massal, yang secara signifikan lebih cepat daripada metode lain. Ukuran maksimum VARCHAR di Oracle adalah 32 K. Oleh karena itu, ukuran LOB terbatas kurang dari 32 K optimal ketika Oracle adalah database sumber Anda.

  • Ketika tugas dikonfigurasi untuk berjalan dalam mode LOB terbatas, opsi Ukuran LOB maks (K) menetapkan ukuran maksimum LOB yang diterima AWS DMS . Setiap LOB yang lebih besar dari nilai ini dipotong ke nilai ini.

  • Ketika tugas dikonfigurasi untuk menggunakan mode LOB penuh, AWS DMS mengambil LOB dalam potongan-potongan. Opsi Ukuran potongan LOB (K) menentukan ukuran masing-masing bagian. Saat mengatur opsi ini, beri perhatian khusus pada ukuran paket maksimum yang diizinkan oleh konfigurasi jaringan Anda. Jika ukuran potongan LOB melebihi ukuran paket maksimum yang diizinkan, Anda mungkin melihat kesalahan pemutusan sambungan. Nilai yang disarankan untuk LobChunkSize adalah 64 kilobyte. Meningkatkan nilai di LobChunkSize atas 64 kilobyte dapat menyebabkan kegagalan tugas.

  • Ketika tugas dikonfigurasi untuk berjalan dalam modus LOB inline, pengaturan InlineLobMaxSize menentukan LOB DMS ditransfer secara inline.

    catatan

    Kunci utama wajib untuk tabel yang berisi kolom LOB selama operasi Change Data Capture (CDC). DMS menggunakan kunci ini untuk mencari nilai LOB di tabel sumber. Persyaratan ini hanya berlaku untuk tugas CDC - tugas beban penuh dapat membaca dan menyalin seluruh kolom LOB langsung dari sumber ke target tanpa batasan.

Untuk informasi tentang pengaturan tugas untuk menentukan opsi ini, lihat Menargetkan pengaturan tugas metadata

Perintah SQL untuk memeriksa panjang kolom LOB maks pada tabel sumber

Gunakan perintah SQL berikut untuk memeriksa panjang kolom Max LOB dan karenanya mengkonfigurasi pengaturan LOB terbatas DMS untuk menghindari pemotongan data dalam migrasi:

Oracle
SELECT dbms_lob.getlength(<COL_NAME>) as LOB_LENGTH FROM <TABLE_NAME> ORDER BY dbms_lob.getlength(<COL_NAME>) DESC FETCH FIRST 10 ROWS ONLY; Select ((max(length(<COL_NAME>)))/(1024)) from <TABLE_NAME>
SQL Server
Select top 10 datalength(<COL_NAME>) as fieldsize from <TABLE_NAME> order by datalength(<COL_NAME>) desc;
MySQL
Select (max(length(<COL_NAME>))/(1024)) as "Size in KB" from <TABLE_NAME>;
PostgreSQL
Select max((octet_length(<COL_NAME>))/(1024.0)) as "Size in KB" from <TABLE_NAME>;
Db2 LUW
-- Method 1: Using SYSCAT.COLUMNS (converting to KB) SELECT TABSCHEMA, TABNAME, COLNAME, LENGTH/1024 as LENGTH_KB, TYPENAME FROM SYSCAT.COLUMNS WHERE TYPENAME IN ('BLOB', 'CLOB', 'DBCLOB') ORDER BY LENGTH DESC; -- Method 2: For specific table with KB conversion SELECT COLNAME, LENGTH/1024 as LENGTH_KB, TYPENAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'YOUR_SCHEMA'AND TABNAME = 'YOUR_TABLE'AND TYPENAME IN ('BLOB', 'CLOB', 'DBCLOB'); -- Method 3: Using SYSIBM.SYSCOLUMNS SELECT TBCREATOR, TBNAME, NAME, LENGTH/1024 as LENGTH_KB, COLTYPE FROM SYSIBM.SYSCOLUMNS WHERE COLTYPE IN ('BLOB', 'CLOB', 'DBCLOB') ORDER BY LENGTH DESC; SYBASE : SELECT c.name as column_name, t.name as data_type, (c.length)/1024 as length_KB FROM syscolumns c JOIN systypes t ON c.usertype = t.usertype WHERE object_name(c.id) = 'YOUR_TABLE_NAME'AND t.name IN ('text', 'image', 'unitext') ORDER BY c.length DESC;