All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Perubahan skema tanpa kunci

Last Updated:Jul 06, 2025

Informasi latar belakang

Secara umum, ketika Anda mengubah skema tabel, tabel tersebut harus dikunci, yang akan memblokir permintaan bisnis. Untuk menyelesaikan masalah ini, ODC V4.2.0 dan versi berikutnya menyediakan fitur perubahan skema tanpa kunci. Topik ini menjelaskan cara mengajukan tiket untuk melakukan tugas perubahan skema tanpa kunci.

Mekanisme teknis

  1. Buat tabel sementara.

  2. Ubah skema tabel sementara.

  3. Salin semua data.

  4. Sinkronkan data tambahan.

  5. Verifikasi konsistensi data.

  6. Hentikan sesi.

  7. Beralih ke tabel baru.

Proses eksekusi

image

  1. Ajukan tiket perubahan skema tanpa kunci.

  2. Lakukan pemeriksaan awal pada Pernyataan SQL yang dimasukkan.

  3. Setujui proses tugas.

  4. Jalankan tugas perubahan skema tanpa kunci.

Operasi yang didukung untuk perubahan skema tanpa kunci

Kategori

Operasi

Didukung?

Catatan

Operasi kolom

Ubah tipe kolom

✔️

-

Susun ulang kolom (untuk memindahkan kolom sebelum atau setelah yang lain atau ke posisi pertama)

✔️

-

Ubah set karakter

✔️

-

Ganti nama kolom

-

Tambah kolom

✔️

-

Hapus kolom

-

Tambah kolom kunci utama

-

Kunci utama

Tambah kunci utama

✔️

Tabel target harus memiliki kunci unik non-null.

Modifikasi kunci utama

✔️

Tabel target harus memiliki kunci unik non-null.

Hapus kunci utama

✔️

Tabel target harus memiliki kunci unik non-null.

Partisi

Hapus partisi

✔️

-

Truncate partisi

✔️

-

Repartisi tabel

✔️

-

Ubah tabel non-partisi menjadi tabel terpartisi

✔️

-

Pertimbangan

  • Pastikan basis data memiliki ruang disk yang cukup.

  • Tabel harus memiliki kunci utama atau kunci unik non-null, dan tidak boleh berisi kunci asing.

  • Jika Anda menjalankan operasi DDL lain pada tabel di mana tugas perubahan skema tanpa kunci sedang dilakukan, tugas tersebut akan gagal.

  • Nama tabel tidak boleh melebihi 54 karakter dalam mode MySQL dari OceanBase Database.

  • Ketika ODC terhubung ke instance OceanBase Database Community Edition, informasi konfigurasi sumber data harus mencakup nama kluster dan akun tenant sys.

  • Dalam mode MySQL dari OceanBase Database versi lebih lama dari V4.3.0, ODC mengunci pengguna dan menutup sesi untuk mencegah penulisan data selama pergantian nama tabel.

  • Jika Anda menjalankan operasi DDL lain pada tabel di mana tugas perubahan skema tanpa kunci sedang dilakukan, tugas tersebut akan gagal.

Prosedur

Buat tugas perubahan skema tanpa kunci

Topik ini menggunakan edisi komunitas OceanBase dan edisi enterprise OMS sebagai contoh, menunjukkan skenario mengubah tipe kolom birth di tabel student menjadi date. Nama proyek yang digunakan dalam contoh ini adalah odc_4.2.0, nama basis data adalah odc_test, dan nama tabel adalah student.

  1. Di jendela SQL, tulis pernyataan SQL untuk membuat tabel bernama student di basis data odc_test.basis data.

    image

    CREATE TABLE `odc_test`.`student` (
    `name` varchar(120) NULL,
    `id` int NOT NULL,
    `birthday` date NULL,
    `create_time` date NULL,
    CONSTRAINT `key_id` PRIMARY KEY (`id`)
    ) DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci  PARTITION BY RANGE(`id`) (
    PARTITION `p1` VALUES LESS THAN (10000),
    PARTITION `p2` VALUES LESS THAN (20000)
    );
  2. Buat tugas perubahan skema tanpa kunci.

    a. Di tab Ticket, pilih Lock-free Schema Change > Create New.

    image

    b. Di panel Create Online Schema Change , konfigurasikan parameter berikut.

    image

    Parameter

    Deskripsi

    Database

    Pilih basis data tempat tugas perubahan database termasuk.

    Kunci Pengguna

    • Jika Anda menentukan untuk mengunci pengguna, ODC akan mengunci akun basis data yang ditentukan dan menutup semua sesi akun tersebut sebelum pergantian nama tabel. Ini untuk mengurangi dampak pada bisnis sambil memastikan konsistensi data selama pergantian nama tabel.

    • Jika tidak ada akun yang ditentukan, ODC tidak akan mengunci akun apa pun atau menutup sesi apa pun. Dalam hal ini, Anda harus secara manual memastikan konsistensi data selama pergantian nama tabel.

    Catatan

    Anda tidak dapat menjalankan tugas perubahan skema tanpa kunci dari sebuah tabel dan tabel terkaitnya secara bersamaan.

    Definisi Perubahan

    • CREATE TABLE: Jika sintaks lainnya tidak didukung di OceanBase Database, Anda perlu menggunakan pernyataan CREATE.

    • ALTER TABLE: Di OceanBase Database V4.0.0 dan versi berikutnya, Anda dapat menggunakan pernyataan ALTER dalam mode ALTER TABLE OFFLINE.

    Konten SQL

    Masukkan skrip SQL di bagian pengeditan.

    Pengaturan Pergantian Tabel

    Beralih ke tabel target setelah konsistensi data diverifikasi.

    • Periode Waktu Kunci Tabel: Tabel dikunci selama pergantian tabel. Jika pergantian tabel tidak selesai dalam periode waktu habis, pergantian gagal.

    • Percobaan Ulang: Jika pergantian tabel tidak selesai dalam periode waktu tertentu, percobaan ulang dapat diinisiasi secara otomatis.

    • Strategi Pembersihan Tabel Sumber Setelah Selesai: Anda dapat memilih Tugas penggantian nama tidak ditangani untuk mengganti nama tabel sumber tanpa menghapusnya, atau pilih Hapus Sekarang untuk menghapus tabel sumber setelah tugas perubahan skema tanpa kunci selesai.

    Pengaturan Tugas

    • Pilih Jalankan Sekarang atau Ekseskusi Terjadwal.

    • Alat perubahan skema tanpa kunci menyediakan dua metode penanganan kesalahan:

      • Hentikan Tugas: Ini adalah opsi default. Ketika Anda memilih opsi ini, tugas dihentikan jika terjadi kesalahan saat menjalankan skrip.

      • Abaikan Kesalahan dan Lanjutkan: Ketika Anda memilih opsi ini, sistem melewati pernyataan yang salah di mana kesalahan terjadi dan melanjutkan untuk mengeksekusi pernyataan lainnya di skrip.

    • Pilih Saklar Otomatis atau Saklar Manual.

    Catatan

    Opsional. Informasi tambahan tentang tugas, yang tidak boleh melebihi 200 karakter.

    c. Klik Buat.

    d. Setelah tugas perubahan skema tanpa kunci dibuat, pilih Tickets > Lock-free Schema Change dan lihat informasi tugas dalam daftar tugas.

Lihat tugas perubahan skema tanpa kunci

Lihat informasi tugas

  1. Di daftar tugas perubahan skema tanpa kunci pada tab Ticket, klik Lihat di kolom Tindakan tugas target.

  2. Di panel Rincian Tugas, klik tab Informasi Tugas untuk melihat basis data, jenis, tingkat risiko, konten SQL, dan pernyataan rollback dari tugas.

  3. Klik Mulai Lagi untuk memulai tugas perubahan skema tanpa kunci lagi.

Lihat proses tugas

Di panel Rincian Tugas, klik tab Proses Tugas dan lihat informasi seperti status inisiasi tugas, status persetujuan, status eksekusi, dan hasil eksekusi.

Lihat catatan eksekusi

Di panel Rincian Tugas, klik tab Catatan Eksekusi untuk melihat pernyataan DDL dari tabel baru dan sumber.

Lihat log tugas

Di panel Rincian Tugas, klik tab Log Tugas untuk melihat semua log dan log peringatan dari tugas.

Tab

Deskripsi

Semua Log

Menampilkan informasi lengkap dari semua log tugas, termasuk log INFO, ERROR, dan WARN . Anda dapat mengklik Cari, Unduh, atau Salin untuk mencari, mengunduh, atau menyalin semua log.

Log Peringatan

Menampilkan log ERROR dan WARN dari tugas. Ketika sebuah tugas gagal, Anda dapat melihat pesan kesalahan di log peringatan. Anda dapat mengklik Cari, Unduh, atau Salin untuk mencari, mengunduh, atau menyalin log peringatan.

Referensi