Tulisan ini merupakan lanjutan dari serial Dataguard 10g. Tulisan terdahulu telah membahas tentang persiapannya, cara membuatnya, me-manage-nya, dan ada juga contoh kasus kalau kita kehilangan archived log. Sekarang saya akan membahas switchover (role transition) physical standby database.
Role transition, perubahan fungsi dari PRIMARY ke STANDBY dan sebaliknya, ada dua macam yaitu:
- Switchover
Sesuai dengan istilahnya, ini adalah men-switch (mengubah) peran dari database STANDBY menjadi PRIMARY dan database PRIMARY menjadi STANDBY. Biasanya dilakukan kalau kita ingin melakukan maintenance pada mesin PRIMARY, misalnya menambah memory atau CPU yang memerlukan downtime. - Failover
Bila karena suatu hal tiba-tiba database PRIMARY mati, maka kita tidak bisa melakukan switchover karena database PRIMARY keburu mati duluan. Yang bisa kita lakukan adalah ‘memaksa’ database STANDBY untuk menjadi PRIMARY. Istilah ‘memaksa’ inilah yang kira-kira lebih pas untuk menjelaskan fail over.
Langkah-langkah melakukan Switch Over pada Physical Standby DB
Dalam contoh ini, database PRIMARY ada di MESIN A dan database STANDBY ada di MESIN B. Berikut ini persiapan yang mesti dilakukan:
- Di database PRIMARY, close semua transaksi dan user session
- Database PRIMARY harus dalam keadaan OPEN
SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- PRIMARY SQL> select open_mode from v$database; OPEN_MODE ---------- READ WRITE
Database STANDBY harus dalam keadaan MOUNT
SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- PHYSICAL STANDBY SQL> select open_mode from v$database; OPEN_MODE ---------- MOUNTED
- Verify bahwa switch over siap dilakukan. Jalankan query ini di kedua database PRIMARY dan STANDBY
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
Kondisi paling bagus (paling siap dilakukan switchover) adalah kalau kolom SWITCHOVER_STATUS di database PRIMARY nilainya “TO STANDBY” dan di database STANDBY nilainya “TO PRIMARY”
Namun lebih sering kolom SWITCHOVER_STATUS nilainya “SESSIONS ACTIVE”. Inipun gak masalah, switchover bisa dilanjutkan.
Lebih detail tentang kolom SWITCHOVER_STATUS di view V$DATABASE, silahkan lihat di sini Oracle® Database Reference - 10g Release 2 (10.2) - V$DATABASE
Sekarang kita menuju step utamanya
- Di database PRIMARY (MESIN A)
Lakukan switchover dengan perintah berikutALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
Kalau masih ada user yang aktif, akan muncul error berikut
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
Solusinya adalah: close (kill) semua user session atau tambahkan parameter WITH SESSION SHUTDOWN sehingga command-nya menjadi:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
Setelah itu shutdown dan startup mount.
SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT;
Sekarang verifikasi bahwa database PRIMARY telah beralih menjadi STANDBY
SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- PHYSICAL STANDBY
- Di database STANDBY (MESIN B)
Sekarang, database STANDBY kita switchover menjadi PRIMARY. Jalankan command berikut:SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Mungkin kita akan menjumpai error seperti ini:
ORA-16139: media recovery required
Kalau menjumpai error tersebut, jalankan “recover managed standby database” kemudian jalankan switchover:
SQL> recover managed standby database; Media recovery complete. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Setelah switchover berhasil, kemudian open database:
SQL> alter database open; ORA-01507: database not mounted
Oo… Error. Ternyata tadinya STANDBY database (sejak last startup) pernah saya “OPEN READ ONLY”, jadinya error kayak gitu. Kalau tidak pernah di-”OPEN READ ONLY” harusnya tidak error. OK, kalo gitu, solusinya: restart database.
SQL> SHUTDOWN IMMEDIATE; SQL> startup
Dah berhasil. Sekarang verify bahwa STANDBY database telah menjadi PRIMARY
SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- PRIMARY
Referensi
Oracle® Data Guard Concepts and Administration - 10g Release 2 (10.2)
Role Transitions

2 Comments
Bagaimana caranya agar switchover itu otomatis dijalankan ?
Switch over tidak bisa otomatis, harus dijalankan manual. Keputusan untuk melakukan switch over khan dari kita sendiri.
Post a Comment