Batasan dan rekomendasi umum

Halaman ini menjelaskan batasan umum (termasuk pertimbangan khusus untuk menangani entity seperti kunci utama atau kunci asing dan pemicu), serta praktik yang direkomendasikan untuk migrasi Oracle heterogen dengan Database Migration Service.

Yang tidak dimigrasikan

  • Pengguna dan izin tidak dimigrasikan.
  • Perubahan skema yang terjadi selama tugas migrasi aktif tidak akan otomatis dimigrasikan. Jika Anda mengubah skema selama migrasi, Anda harus mengupdate ruang kerja konversi terlebih dahulu dengan perubahan skema, lalu memperbarui tugas migrasi yang relevan. Untuk mengetahui informasi selengkapnya, lihat Menambahkan skema atau tabel yang diperbarui ke tugas migrasi.
  • Pernyataan SAVEPOINT tidak didukung dan dapat menyebabkan perbedaan data jika terjadi rollback.
  • Database Migration Service mereplikasi jenis data yang ditentukan pengguna, tetapi hanya menyimpan jenis data dasar yang menjadi asal jenis yang ditentukan pengguna. Misalnya, jika Anda menentukan jenis data USERNAME berdasarkan jenis data VARCHAR2, data akan disimpan di tujuan sebagai VARCHAR.

Database, transaksi, dan konsistensi data

  • Migrasi memiliki konsistensi tertunda, karena Database Migration Service tidak mereplikasi setiap transaksi saat terjadi. Migrasi ini membawa data dari beberapa tabel. Urutan pemuatan data ke tujuan dapat bervariasi, tetapi akan diselaraskan kembali dengan sumber setelah penulisan pada sumber dihentikan dan buffer migrasi dihapus.
  • Untuk migrasi Oracle heterogen, Database Migration Service hanya dapat memigrasikan satu database per tugas migrasi.
  • Database Migration Service mendukung arsitektur multi-tenant Oracle (CDB/PDB), tetapi Anda hanya dapat memigrasikan satu pluggable database per tugas migrasi.
  • Oracle Label Security (OLS) tidak direplikasi.
  • Setiap transaksi yang di-roll back di database sumber selama proses migrasi mungkin terlihat di tujuan untuk sementara (jika transaksi cukup lama).
  • Database Migration Service tidak mendukung konektivitas langsung ke database menggunakan fitur Single Client Access Name (SCAN) di lingkungan Oracle Real Application Clusters (RAC). Untuk mengetahui solusi potensial dalam menggunakan konektivitas daftar IP publik yang diizinkan dengan lingkungan tersebut, lihat Memecahkan masalah error Oracle SCAN.

Encoding data

  • Database Migration Service hanya mendukung encoding set UTF8 untuk database tujuan. Nama skema dan tabel yang menyertakan karakter yang bukan bagian dari set encoding UTF8 tidak didukung.
  • Database Migration Service mendukung encoding himpunan karakter berikut untuk database Oracle:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • IW8ISO8859P8
    • JA16SJIS
    • JA16SJISTILDE
    • KO16MSWIN949
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5

Tabel, skema, dan objek lainnya

  • Selama migrasi, perubahan bahasa definisi data (DDL) pada data, skema, dan metadata tidak didukung. Jika Anda memperbarui skema selama migrasi, Anda harus menarik perubahan ke ruang kerja konversi, mengonversi kode, membersihkan tujuan, dan menjalankan tugas migrasi lagi.
  • Nama kolom tabel yang menyertakan karakter selain karakter alfanumerik atau garis bawah (_) tidak didukung.
  • Panjang nama maksimum untuk tabel atau kolom adalah 30 karakter. Database Migration Service tidak dapat mereplikasi tabel yang melebihi batas ini, atau tabel yang berisi kolom yang namanya melebihi batas ini.
  • Tabel yang diatur indeks (IOT) tidak didukung.
  • Tabel sementara global memerlukan ekstensi PostgreSQL pgtt yang diinstal dan dibuat di tujuan.
  • Untuk kolom jenis BFILE, hanya jalur ke file yang akan direplikasi. Isi file tidak akan direplikasi.
  • Untuk Oracle 11g, tabel yang memiliki kolom jenis data ANYDATA atau UDT tidak didukung, dan seluruh tabel tidak akan direplikasi.
  • Tugas yang dijadwalkan menggunakan dbms_job atau dbms_scheduler tidak dimigrasikan.
  • Definisi tampilan terwujud dimigrasikan, tetapi data terwujudnya tidak. Setelah selesai bermigrasi, muat ulang tampilan terwujud untuk mengisinya dengan data dari tabel yang dimigrasikan.
  • Nilai urutan dimigrasikan, tetapi nilainya dalam database sumber mungkin terus bertambah sebelum migrasi selesai. Setelah menyelesaikan migrasi, perbarui nilai urutan pada instance tujuan agar sesuai dengan nilai di database sumber.
  • Tugas migrasi dibatasi hingga 10.000 tabel.
  • Baris memiliki batasan ukuran 100 MB. Baris yang melebihi batas 100 MB tidak dimigrasikan, dan muncul sebagai error dalam tugas migrasi.
  • Tabel apa pun yang dibuat setelah migrasi dimulai tidak akan dimigrasikan secara otomatis. Pertama, Anda perlu menarik skemanya di ruang kerja konversi, menerapkan definisi yang dikonversi ke tujuan, dan memperbarui tugas migrasi.
  • Tabel sumber yang berisi kolom biner dan tidak memiliki kunci utama tidak didukung untuk migrasi data dalam migrasi berkelanjutan.
  • Kolom virtual (GENERATED ALWAYS AS (...) VIRTUAL) tidak direplikasi selama migrasi data karena Oracle tidak menulis nilai kolom virtual ke redo log. Jika kolom virtual adalah bagian dari kunci utama gabungan, hanya kolom non-virtual yang digunakan sebagai kunci utama selama replikasi.

Batasan jenis data

Jenis data berikut tidak didukung untuk migrasi Oracle:

  • ANYDATA (Untuk Oracle 11g, tabel dengan ANYDATA sama sekali tidak didukung dan tidak direplikasi.)
  • BFILE
  • INTERVAL DAY TO SECOND
  • INTERVAL YEAR TO MONTH
  • LONG/LONG RAW
  • SDO_GEOMETRY
  • UDT
  • UROWID
  • XMLTYPE
  • Tanggal nol di TIMESTAMP

Pertimbangan untuk kunci utama

Tabel tanpa kunci utama tidak menjanjikan replikasi yang konsisten. Database Migration Service hanya memigrasikan tabel yang memiliki kunci utama. Jika database sumber Anda menyertakan tabel yang tidak memiliki kunci utama, ruang kerja konversi Database Migration Service akan otomatis membuat kunci utama yang tidak ada di tabel tujuan saat Anda mengonversi kode sumber dan skema. Proses otomatis ini mengharuskan tabel sumber Anda:

  • Belum memiliki kunci utama.
  • Jangan memiliki batasan UNIQUE tanpa kolom nullable.
  • Jangan memiliki indeks UNIQUE tanpa kolom nullable.

Jika tabel Anda tidak memenuhi persyaratan ini, Anda harus menambahkan kunci utama yang tidak ada secara manual ke tabel dalam skema PostgreSQL yang dikonversi. Anda juga dapat menonaktifkan pembuatan kunci utama otomatis dengan perintah konversi GENERATE_MISSING_PK.

Untuk migrasi berkelanjutan: Tabel sumber yang berisi kolom biner dan tidak memiliki kunci utama tidak didukung untuk migrasi data dalam migrasi berkelanjutan.

Jika menggunakan ruang kerja konversi lama, Anda harus membuat batasan kunci utama secara manual di tabel yang dikonversi dalam database tujuan sebelum memulai migrasi. Untuk mengetahui informasi selengkapnya, lihat Ruang kerja konversi lama.

Pertimbangan untuk kunci asing dan pemicu

Kunci asing dan pemicu yang ada di database sumber Anda dapat menyebabkan masalah integritas data, atau bahkan menyebabkan tugas migrasi gagal. Anda dapat mencegah masalah ini jika melewati kunci asing dan pemicu dengan menggunakan opsi REPLICATION untuk pengguna migrasi. Atau, Anda juga dapat menghapus semua kunci asing dan pemicu di database tujuan dan membuatnya kembali setelah migrasi selesai.

Pemicu

Data yang direplikasi oleh Database Migration Service sudah menyertakan perubahan apa pun yang dibuat oleh pemicu pada database sumber. Jika pemicu diaktifkan di tujuan, pemicu tersebut dapat diaktifkan lagi dan berpotensi memanipulasi data, sehingga menyebabkan masalah integritas atau duplikasi data.

Kunci asing

Database Migration Service tidak mereplikasi data secara transaksional, sehingga tabel mungkin dimigrasikan tidak sesuai urutan. Jika ada kunci asing, dan tabel turunan yang menggunakan kunci asing dimigrasikan sebelum induknya, Anda mungkin akan mengalami error replikasi.

Rekomendasi

  • Saat membuat database Cloud SQL tujuan, pastikan Anda menggunakan resource komputasi dan memori yang cukup untuk memenuhi kebutuhan migrasi Anda. Sebaiknya gunakan jenis mesin dengan CPU minimal dual-core.

    Misalnya, jika nama mesin Anda adalah db-custom, dan memiliki 2 CPU dan RAM 3840 MB, maka format untuk nama jenis mesin adalah db-custom-2-3840.

  • Database Cloud SQL tujuan dapat ditulis selama migrasi untuk memungkinkan perubahan Bahasa Pengolahan Data (DML) diterapkan jika diperlukan. Berhati-hatilah agar tidak membuat perubahan apa pun pada konfigurasi database atau struktur tabel yang dapat mengganggu proses migrasi atau memengaruhi integritas data.

Kuota

  • Hingga 2.000 profil koneksi dan 1.000 tugas migrasi dapat ada pada waktu tertentu. Untuk mengosongkan ruang, tugas migrasi (termasuk yang sudah selesai) dan profil koneksi dapat dihapus.