Beberapa dari anda mungkin pernah mengalami kinerja server menjadi lambat pada database Oracle, dan muncul message “Chekpoint Not Complete” pada alert log database, apa yang terjadi ketika permasalahan tersebut muncul? lalu bagaimana cara mengatasi permasalahan tersebut?
Di artikel ini akan dibahas bagaimana cara mengatasi permasalahan “Chekpoint Not Complete” pada Database Oracle. Sebelum membahas cara mengatasi error Checkpoint not Complete kita perlu tahu terlebih dahulu apa itu checkpoint dan proses berjalannya checkpoint.
Checkpoint adalah event yang di sediakan oleh Database Oracle yang berfungsi untuk memindahkan data block yang berada di dalam memori ke dalam disk dengan DBWR, dengan dipindahkannya datablock yang berada di dalam memori ke dalam disk akan memberikan space pada Redo Log buffer sehingga transaksi yang dilakukan oleh user dapat ditampung kembali ke dalam Redo log buffer.
Lalu mengapa bisa terjadi permasalahan Checkpoint Not Complete? Permasalahan itu terjadi karena kapasitas Redo log buffer sudah tidak memungkinkan untuk menampung data log, dan ketika Redo Log buffer akan menulis data block nya ke dalam disk ternyata DBWR pun sedang melakukan transaksi penulisan ke dalam disk, dalam artian lain semua proses sedang berjalan dan kapasitas memori yang digunakan sudah melampaui batas, sehingga ketika proses checkpoint dilakukan secara otomatis system akan menuliskan error report Checkpoint Not Complete pada log database. Error ini dapat mempengaruhi terhadap performa database, maka kita perlu mengatasi masalah tersebut.
Cara untuk mengatasi masalah tersebut adalah dengan cara memperbesar kapasitas Redo Log File di konfigurasi database servernya atau dengan cara menambahkan Redo Log File yang baru. Untuk memperbesar kapasitas Redo Log File, sebelum kita memperbesar kapasitasnya kita perlu mengetahui terlebih dulu kapasitas Redo Log File saat ini berapa dan group Redo Log mana yang akan kita ubah kapasitasnya.
Untuk melihat Group Redo Log yang kita miliki kita dapat menggunakan Query ‘ SELECT * FROM v$log ; ‘, kita bisa melihat group Redo log nya pada baris GROUP.
Berikut adalah contoh informasi Redo Log:
Jika kita lihat dari gambar diatas terdapat contoh informasi tentang Redo Log yang berada di server, disana terdapat 3 Redo Log Files yang terdiri dari Group 1, Group 2, dan Group 3. Secara default masing-masing Group memiliki kapasitas 50mb (52428800 Bytes), status dari dari Redo Log Group 1 adalah Current, status Current adadlah status untuk Log File yang sedang digunakan oleh server, sedangakn status Redo Log Group 2 & Group yang ke 3 adalah Unused, unused adalah status untuk Redo Log yang belum pernah digunakan sama sekali. Jika kita lihat ketiga status dari group tersebut kita hanya bisa mengubah kapasitas Group 2 & Group 3, karena Group yang lain statusnya sedang digunakan.
Step selanjutnya ketika merubah Redo Log File Size maka akan menghasilkan size yang baru, dan secara default statusnya akan di set manjadi Unused, karena Log File tersebut belum pernah digunakan sebelumnya. Lalu bagaimana dengan Group1? Agar dapat merubah sizenya Status Group perlu di ubah agar tidak Current, caranya adalah dengan cara melakukan checkpoint dan merubah posisi logfile aktif nya, setelah itu barulah Group 1 dapat dirubah size nya.
Gambar di bawah ini adalah sebagai contoh perubahan size Log File Group 1, Group 2 dan Group 3, Redo Log File nya akan di ubah dari 50mb menjadi 100mb.