Bermigrasi dari Oracle ke Amazon RDS untuk Postgre atau Amazon SQL Aurora Postgre dengan SQL AWS Schema Conversion Tool - AWS Schema Conversion Tool

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

Bermigrasi dari Oracle ke Amazon RDS untuk Postgre atau Amazon SQL Aurora Postgre dengan SQL AWS Schema Conversion Tool

Saat Anda mengonversi database Oracle ke RDS Postgre atau Amazon SQL Aurora PostgreSQL, perhatikan hal-hal berikut.

Saat mengkonversi objek sistem Oracle ke PostgreSQL, AWS SCT melakukan konversi seperti yang ditunjukkan pada tabel berikut.

Objek sistem Oracle Deskripsi Objek Postgre SQL yang dikonversi
V $ VERSION Menampilkan nomor versi komponen pustaka inti di Oracle Database aws_oracle_ext.v $versi
V $ INSTANCE Tampilan yang menunjukkan keadaan instance saat ini. aws_oracle_ext.v $contoh

Anda dapat menggunakan AWS SCT untuk mengonversi file Oracle SQL *Plus ke psql, yang merupakan front-end berbasis terminal ke Postgre. SQL Untuk informasi selengkapnya, lihat Mengonversi aplikasi menggunakan SQL AWS SCT.

Hak istimewa untuk Postgre SQL sebagai basis data target

Untuk menggunakan Postgre SQL sebagai target, AWS SCT membutuhkan hak istimewa. CREATE ON DATABASE Pastikan Anda memberikan hak istimewa ini untuk setiap basis data SQL Postgre target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi"$user", public_synonyms, public.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

CREATE ROLE user_name LOGIN PASSWORD 'your_password'; GRANT CREATE ON DATABASE db_name TO user_name; ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;

Pada contoh sebelumnya, ganti user_name dengan nama pengguna Anda. Kemudian, ganti db_name dengan nama database target Anda. Akhirnya, ganti your_password dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS untuk Postgre SQL sebagai target, AWS SCT membutuhkan hak istimewa. rds_superuser

Di PostgreSQL, hanya pemilik skema atau a yang superuser dapat menjatuhkan skema. Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan superuser peran.

Pengaturan konversi Oracle ke Postgre SQL

Untuk mengedit pengaturan SQL konversi Oracle ke Postgre, pilih Pengaturan di AWS SCT, lalu pilih Pengaturan konversi. Dari daftar atas, pilih Oracle, dan kemudian pilih Oracle - Postgre. SQL AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL.

Pengaturan SQL konversi Oracle ke Postgre AWS SCT termasuk opsi untuk yang berikut:

  • Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

    Untuk Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

    Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih Error only. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih Semua pesan.

  • Untuk memungkinkan AWS SCT untuk mengonversi tampilan terwujud Oracle ke tabel atau tampilan terwujud di Postgre. SQL Untuk konversi tampilan terwujud sebagai, pilih cara mengonversi tampilan terwujud sumber Anda.

  • Untuk bekerja dengan kode Oracle sumber Anda saat menyertakan, TO_CHARTO_DATE, dan TO_NUMBER fungsi dengan parameter yang SQL tidak didukung Postgre. Secara default, AWS SCT mengemulasi penggunaan parameter ini dalam kode yang dikonversi.

    Ketika kode Oracle sumber Anda hanya menyertakan parameter yang SQL didukung Postgre, Anda dapat menggunakan Postgre SQL TO_CHAR asli,, dan fungsi. TO_DATE TO_NUMBER Dalam hal ini, kode yang dikonversi bekerja lebih cepat. Untuk memasukkan hanya parameter ini, pilih nilai berikut:

    • Fungsi TO_ CHAR () tidak menggunakan string pemformatan khusus Oracle

    • Fungsi TO_ DATE () tidak menggunakan string pemformatan khusus Oracle

    • Fungsi TO_ NUMBER () tidak menggunakan string pemformatan khusus Oracle

  • Untuk mengatasi ketika database Oracle sumber Anda hanya menyimpan nilai integer di kolom kunci primer atau asing dari tipe NUMBER data, AWS SCT dapat mengonversi kolom ini ke tipe BIGINT data. Pendekatan ini meningkatkan kinerja kode Anda yang dikonversi. Untuk mengambil pendekatan ini, pilih Ubah NUMBER kolom kunci utama/asing menjadi kolom kunci BIGINT utama. Pastikan sumber Anda tidak menyertakan nilai floating point di kolom ini untuk menghindari kehilangan data.

  • Untuk melewati pemicu dan kendala yang dinonaktifkan dalam kode sumber Anda. Untuk melakukannya, pilih Abaikan pemicu dan kendala yang dinonaktifkan.

  • Untuk digunakan AWS SCT untuk mengkonversi variabel string yang disebut sebagai dinamisSQL. Kode database Anda dapat mengubah nilai variabel string ini. Untuk memastikan bahwa AWS SCT selalu mengonversi nilai terbaru dari variabel string ini, pilih Konversi SQL kode dinamis yang dibuat dalam rutinitas yang disebut.

  • Untuk mengatasi Postgre SQL versi 10 dan sebelumnya tidak mendukung prosedur. Jika Anda atau pengguna Anda tidak terbiasa menggunakan prosedur di PostgreSQL, AWS SCT dapat mengonversi prosedur Oracle ke fungsi Postgre. SQL Untuk melakukannya, pilih Konversi prosedur ke fungsi.

  • Untuk melihat informasi tambahan tentang item tindakan yang terjadi. Untuk melakukannya, Anda dapat menambahkan fungsi tertentu ke paket ekstensi dengan memilih Tambah pada blok peningkatan pengecualian untuk masalah migrasi dengan tingkat keparahan berikutnya. Kemudian pilih tingkat keparahan untuk meningkatkan pengecualian yang ditentukan pengguna.

  • Untuk bekerja dengan database Oracle sumber yang mungkin menyertakan kendala dengan nama yang dihasilkan secara otomatis. Jika kode sumber Anda menggunakan nama-nama ini, pastikan Anda memilih Konversi nama kendala yang dihasilkan sistem menggunakan nama asli sumber. Jika kode sumber Anda menggunakan batasan ini tetapi tidak menggunakan namanya, hapus opsi ini untuk meningkatkan kecepatan konversi.

  • Untuk mengatasi apakah database dan aplikasi Anda berjalan di zona waktu yang berbeda. Secara default, AWS SCT mengemulasi zona waktu dalam kode yang dikonversi. Namun, Anda tidak memerlukan emulasi ini ketika database dan aplikasi Anda menggunakan zona waktu yang sama. Dalam hal ini, pilih Zona waktu di sisi klien cocok dengan zona waktu di server.

  • Untuk mengatasi apakah basis data sumber dan target Anda berjalan di zona waktu yang berbeda. Jika mereka melakukannya, fungsi yang mengemulasi fungsi Oracle SYSDATE bawaan mengembalikan nilai yang berbeda dibandingkan dengan fungsi sumber. Untuk memastikan bahwa fungsi sumber dan target Anda mengembalikan nilai yang sama, pilih Setel zona waktu default untuk SYSDATE emulasi.

  • Untuk menggunakan fungsi dari ekstensi orafce dalam kode konversi Anda. Untuk melakukannya, untuk implementasi Use orafce, pilih fungsi yang akan digunakan. Untuk informasi lebih lanjut tentang orafce, lihat orafce di. GitHub

Mengonversi urutan Oracle

AWS SCT mengubah urutan dari Oracle ke Postgre. SQL Jika Anda menggunakan urutan untuk mempertahankan batasan integritas, pastikan nilai baru dari urutan yang dimigrasi tidak tumpang tindih dengan nilai yang ada.

Untuk mengisi urutan yang dikonversi dengan nilai terakhir dari database sumber
  1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

  2. Pilih Pengaturan, lalu pilih Pengaturan konversi.

  3. Dari daftar atas, pilih Oracle, dan kemudian pilih Oracle - Postgre. SQL AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL.

  4. Pilih Isi urutan yang dikonversi dengan nilai terakhir yang dihasilkan di sisi sumber.

  5. Pilih OK untuk menyimpan pengaturan dan menutup kotak dialog Pengaturan konversi.

Mengonversi Oracle ROWID

Dalam database Oracle, ROWID pseudocolumn berisi alamat baris tabel. ROWIDPseudocolumn unik untuk Oracle, jadi AWS SCT mengkonversi ROWID pseudocolumn ke kolom data di Postgre. SQL Dengan menggunakan konversi ini, Anda dapat menyimpan ROWID informasi.

Saat mengkonversi ROWID pseudocolumn, AWS SCT dapat membuat kolom data dengan tipe data. bigint Jika tidak ada kunci primer, AWS SCT tetapkan ROWID kolom sebagai kunci utama. Jika kunci primer ada, AWS SCT atur ROWID kolom dengan kendala unik.

Jika kode database sumber Anda menyertakan operasi denganROWID, yang tidak dapat Anda jalankan menggunakan tipe data numerik, AWS SCT dapat membuat kolom data dengan tipe character varying data.

Untuk membuat kolom data untuk Oracle ROWID untuk sebuah proyek
  1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

  2. Pilih Pengaturan, lalu pilih Pengaturan konversi.

  3. Dari daftar atas, pilih Oracle, dan kemudian pilih Oracle - Postgre. SQL AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL.

  4. Untuk Menghasilkan ID baris, lakukan salah satu hal berikut:

    • Pilih Hasilkan sebagai identitas untuk membuat kolom data numerik.

    • Pilih Hasilkan sebagai tipe domain karakter untuk membuat kolom data karakter.

  5. Pilih OK untuk menyimpan pengaturan dan menutup kotak dialog Pengaturan konversi.

Mengonversi Oracle Dynamic SQL

Oracle menyediakan dua cara untuk menerapkan dinamisSQL: menggunakan EXECUTE IMMEDIATE pernyataan atau prosedur panggilan dalam SQL paket DBMS _. Jika database Oracle sumber Anda menyertakan objek dengan dinamisSQL, gunakan AWS SCT untuk mengonversi SQL pernyataan dinamis Oracle ke Postgre. SQL

Untuk mengonversi Oracle dynamic SQL ke Postgre SQL
  1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

  2. Pilih objek database yang menggunakan dinamis SQL dalam tampilan pohon sumber Oracle.

  3. Buka menu konteks (klik kanan) untuk objek, pilih Convert schema, dan setuju untuk mengganti objek jika ada. Tangkapan layar berikut menunjukkan prosedur yang dikonversi di bawah prosedur Oracle dengan dinamisSQL.

    SQLKonversi dinamis

Mengonversi partisi Oracle

AWS SCT saat ini mendukung metode partisi berikut:

  • Kisaran

  • Daftar

  • Rentang multicolumn

  • Hash

  • Komposit (daftar-daftar, daftar rentang, daftar-rentang, daftar-hash, rentang-hash, hash hash)