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 interaktif | Ruang 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. |
Menggunakan ruang kerja konversi lama
Jika skenario Anda memerlukan penggunaan ruang kerja konversi lama, ubah proses migrasi dengan tindakan berikut:
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.- Buat ruang kerja konversi lama, lalu upload file Ora2Pg untuk mengonversi skema Anda.
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.
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:
- 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.
-
- 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 kolomROWID
di database PostgreSQL tujuan. Database Migration Service mengisi kolom dengan nilai numerik yang sesuai dari kolom semuROWID
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);
- Hubungkan ke instance Cloud SQL tujuan Anda dengan klien SQL. Anda
dapat menggunakan metode berikut:
Langkah berikutnya
Setelah melakukan alur kerja konversi dengan ruang kerja lama, Anda dapat melanjutkan prosedur migrasi standar. Lihat Membuat tugas migrasi.