Halaman ini menjelaskan batasan yang diketahui (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 dimigrasikan secara otomatis. Jika Anda mengubah skema selama migrasi, Anda harus memperbarui ruang kerja konversi terlebih dahulu dengan perubahan skema, lalu me-refresh tugas migrasi yang relevan. Untuk mengetahui informasi selengkapnya, lihat Menambahkan skema atau tabel yang diperbarui ke tugas migrasi.
-
Pernyataan
SAVEPOINTtidak 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 digunakan untuk mendapatkan jenis yang ditentukan pengguna.
Misalnya, jika Anda menentukan jenis data
USERNAMEberdasarkan jenis dataVARCHAR2, data akan disimpan di tujuan sebagaiVARCHAR.
Database, transaksi, dan konsistensi data
- Migrasi pada akhirnya akan konsisten, karena Database Migration Service tidak mereplikasi setiap transaksi saat terjadi. Migrasi akan mengambil data dari beberapa tabel. Urutan data dimuat ke tujuan dapat bervariasi, tetapi akan disejajarkan kembali dengan sumber setelah penulisan di 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 database pluggable per tugas migrasi.
- Oracle Label Security (OLS) tidak direplikasi.
- Database tujuan harus memiliki nama yang sama dengan nama pengguna yang digunakan untuk terhubung ke database.
- Transaksi apa pun yang di-rollback di database sumber selama proses migrasi mungkin akan terlihat di tujuan untuk sementara (jika transaksi cukup panjang).
- 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 potensi solusi menggunakan konektivitas daftar yang diizinkan IP publik dengan lingkungan tersebut, lihat Memecahkan masalah error Oracle SCAN.
Encoding data
- Database Migration Service hanya mendukung
UTF8encoding set untuk database tujuan. Nama skema dan tabel yang menyertakan karakter yang bukan bagian dari set encodingUTF8tidak didukung. - Database Migration Service mendukung encoding set karakter berikut untuk database Oracle
databases:
AL16UTF16AL32UTF8IN8ISCIIIW8ISO8859P8JA16SJISJA16SJISTILDEKO16MSWIN949US7ASCIIUTF8WE8ISO8859P1WE8ISO8859P9WE8ISO8859P15WE8MSWIN1252ZHT16BIG5
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
karakter 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 dengan nama yang melebihi batas ini.
- Tabel yang diatur indeks (IOT) tidak didukung.
- Tabel sementara global memerlukan ekstensi PostgreSQL
pgttyang diinstal dan dibuat di tujuan. - Untuk kolom berjenis
BFILE, hanya jalur ke file yang akan di replikasi. Konten file tidak akan direplikasi. - Untuk Oracle 11g, tabel yang memiliki kolom dengan jenis data
ANYDATAatauUDTtidak didukung, dan seluruh tabel tidak akan direplikasi. - Tugas yang dijadwalkan menggunakan
dbms_jobataudbms_schedulertidak dimigrasikan. - Definisi tampilan terwujud dimigrasikan, tetapi data terwujudnya tidak. Setelah selesai bermigrasi, refresh 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 harus menarik skemanya di ruang kerja konversi, menerapkan definisi yang dikonversi ke tujuan, dan memperbarui tugas migrasi.
Batasan jenis data
Jenis data berikut tidak didukung untuk migrasi Oracle:
ANYDATA(Untuk Oracle 11g, tabel denganANYDATAtidak didukung sepenuhnya dan tidak direplikasi.)BFILEINTERVAL DAY TO SECONDINTERVAL YEAR TO MONTHLONG/LONG RAWSDO_GEOMETRYUDTUROWIDXMLTYPE- 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.
- Tidak memiliki batasan
UNIQUEtanpa kolom yang dapat diisi null. - Tidak memiliki indeks
UNIQUEtanpa kolom yang dapat diisi null.
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
GENERATE_MISSING_PK direktif konversi.
Jika Anda 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 Anda 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 saat migrasi selesai.
Pemicu
Data yang direplikasi oleh Database Migration Service sudah menggabungkan perubahan apa pun yang dibuat oleh pemicu di 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 di luar urutan. Jika kunci asing ada, dan tabel turunan yang menggunakan kunci asing dimigrasikan sebelum induknya, Anda mungkin akan mengalami error replikasi.
Rekomendasi
- Saat Anda
membuat database Cloud SQL tujuan,
pastikan Anda menggunakan resource komputasi dan memori yang cukup untuk memenuhi
kebutuhan migrasi. Sebaiknya gunakan jenis mesin dengan CPU dual-core minimal.
Misalnya, jika nama mesin Anda adalah
db-custom, dan memiliki 2 CPU dan RAM 3840 MB, format nama jenis mesinnya adalahdb-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 merusak proses migrasi atau memengaruhi integritas data.
Kuota
- Maksimal 2.000 profil koneksi dan 1.000 tugas migrasi dapat ada kapan saja. Untuk membuat ruang bagi lebih banyak tugas migrasi, tugas migrasi (termasuk tugas yang selesai) dan profil koneksi dapat dihapus.