Tentang ruang kerja konversi lama

Ruang kerja konversi lama adalah jenis ruang kerja konversi yang lebih lama dan lebih terbatas. Ruang kerja konversi lama tidak mendukung fitur konversi yang ditingkatkan Gemini atau editor SQL interaktif. Anda hanya dapat menggunakannya untuk mengonversi skema sumber dengan alat migrasi Ora2Pg.

Sebaiknya jangan gunakan jenis ruang kerja konversi lama untuk migrasi Anda karena jenis ruang kerja ini memiliki beberapa batasan lain pada alur kerja konversi:

Ruang kerja konversi interaktifRuang kerja konversi lama
Konversi objek skema dan kode terjadi di Database Migration Service. Anda melakukan konversi skema dan objek kode di luar Database Migration Service menggunakan alat migrasi Ora2Pg.
Anda dapat menerapkan sumber yang dikonversi ke database tujuan secara langsung di Database Migration Service. Anda bertanggung jawab untuk menerapkan skema yang dikonversi ke database tujuan di instance tujuan Cloud SQL untuk PostgreSQL.
Anda dapat menguji skema dan kode draf secara langsung di Database Migration Service untuk memastikan keduanya dapat berhasil diterapkan ke instance tujuan Anda. Anda tidak dapat menguji draf skema dan kode tanpa memengaruhi instance tujuan.
Menambahkan kolom rowid yang tidak ada secara otomatis untuk tabel yang tidak memiliki kunci utama dan batasan unik. Anda harus menambahkan kunci utama yang tidak ada ke tabel tujuan setelah Anda menerapkan skema.
Tabel 1: Perbandingan fitur ruang kerja konversi

Menggunakan ruang kerja konversi lama

Jika skenario Anda memerlukan penggunaan ruang kerja konversi lama, ubah proses migrasi dengan tindakan berikut:

  1. Tulis file konfigurasi Ora2Pg.

    Baca dokumentasi Ora2Pg untuk mendapatkan panduan tentang cara menggunakan alat konversi Ora2Pg. Luaskan bagian berikut untuk melihat daftar lengkap direktif yang didukung di Database Migration Service.

    Konfigurasi Ora2Pg yang didukung di Database Migration Service

    Database Migration Service mendukung item konfigurasi berikut untuk file Ora2Pg:

    • BOOLEAN_VALUES
    • DATA_TYPE
    • DEFAULT_NUMERIC
    • ENABLE_MICROSECOND
    • EXPORT_SCHEMA
    • MODIFY_STRUCT
    • MODIFY_TYPE
    • PG_INTEGER_TYPE
    • PG_NUMERIC_TYPE
    • PG_SCHEMA
    • PRESERVE_CASE
    • REPLACE_AS_BOOLEAN
    • REPLACE_COLS
    • REPLACE_TABLES
    • REPLACE_ZERO_DATE
    • SCHEMA

    Database Migration Service menggunakan profil koneksi untuk menentukan detail konektivitas, sehingga Anda tidak perlu menentukan informasi berikut dalam file konfigurasi Or2Pg:

    • ORACLE_DSN
    • ORACLE_HOME
    • ORACLE_PWD
    • ORACLE_USER
    • PG_DSN
    • PG_PWD
    • PG_USER

    Selain itu, Database Migration Service tidak menggunakan direktif konfigurasi WHERE untuk membatasi catatan yang akan dimigrasikan.

  2. Buat ruang kerja konversi lama, lalu upload file Ora2Pg untuk mengonversi skema Anda.
  3. Menerapkan skema yang dikonversi ke database tujuan secara manual.

    Setelah membuat konfigurasi Ora2Pg dan membuat ruang kerja, Anda harus menerapkan kode yang dihasilkan sendiri secara langsung di database tujuan.

  4. Migrasikan tabel tanpa kunci utama.

    Database Migration Service hanya memigrasikan tabel yang memiliki kunci utama. Jika database sumber Anda menyertakan tabel yang tidak memiliki kunci utama, Anda harus membuat kunci utama atau batasan unik secara manual di tabel yang dikonversi dalam database tujuan setelah Anda menerapkan skema yang dikonversi. Luaskan bagian berikut untuk mengetahui detail selengkapnya.

    Menambahkan batasan kunci utama di database tujuan

    Untuk memigrasikan tabel Oracle tanpa kunci utama, lakukan langkah-langkah berikut:

    1. Hubungkan ke instance Cloud SQL tujuan Anda dengan klien SQL. Anda dapat menggunakan metode berikut:
      • psql client. Anda dapat menggunakan metode ini untuk terhubung ke IP pribadi instance, tetapi mungkin mengharuskan Anda membuat virtual machine Compute Engine.
      • Perintah gcloud sql connect. Perintah ini hanya berfungsi untuk instance Cloud SQL yang mengaktifkan alamat IP publik.
    2. Buat batasan kunci utama yang tidak ada untuk tabel Anda. Untuk mengetahui informasi selengkapnya tentang kunci primer, lihat Kunci Primer dalam dokumentasi PostgreSQL.

      Anda juga dapat meluaskan bagian berikut untuk melihat contoh perintah SQL:

      Membuat kunci utama menggunakan kolom yang ada

      Tabel Anda mungkin sudah memiliki kunci utama logis berdasarkan kolom atau kombinasi kolom. Misalnya, mungkin ada kolom dengan batasan atau indeks unik yang dikonfigurasi. Gunakan kolom ini untuk membuat kunci utama baru bagi tabel di database sumber. Contoh:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Membuat kunci utama menggunakan semua kolom

      Jika Anda tidak memiliki batasan yang sudah ada yang dapat berfungsi sebagai kunci utama, buat kunci utama menggunakan semua kolom tabel. Pastikan Anda tidak melebihi panjang maksimum kunci utama yang diizinkan oleh instance PostgreSQL Anda. Contoh:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);

      Saat membuat kunci primer komposit seperti ini, Anda harus mencantumkan semua nama kolom yang ingin digunakan secara eksplisit. Pernyataan tidak dapat digunakan untuk mengambil semua nama kolom untuk tujuan ini.

      Membuat batasan unik dengan pseudokolom ROWID

      Database Oracle menggunakan ROWID pseudocolumn untuk menyimpan lokasi setiap baris dalam tabel. Untuk memigrasikan tabel Oracle yang tidak memiliki kunci utama, Anda dapat menambahkan kolom ROWID di database PostgreSQL tujuan. Database Migration Service mengisi kolom dengan nilai numerik yang sesuai dari kolom semu ROWID Oracle sumber.

      Untuk menambahkan kolom dan menetapkannya sebagai kunci utama, jalankan perintah berikut:

      ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;
      CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;
      ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq');
      ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);

Langkah berikutnya

Setelah melakukan alur kerja konversi dengan ruang kerja lama, Anda dapat melanjutkan prosedur migrasi standar. Lihat Membuat tugas migrasi.