Recovery Database Zimbra 8 Yang Korup
Recovery Database Zimbra 8 Yang Korup, biasanya terjadi bila database zimbra mengalami corrupt atau rusak. bisa diakibatkan karena hardware failur atau server mati dikarenakan listrik padam atau kemungkinan yang lain. Ini biasanya status database stop atau mati. Pada Zimbra 8 ini mmenggunakan database MariaDB, untuk syntax query nya sama dengan database MySQL.
Untuk sebagian contoh dibutuhkannya melakukkan recovery database, salah satunya pada mysql error log akan muncul pesan peringatan dibawah.
InnoDB: Serious error! InnoDB is trying to free page 716 InnoDB: though it is already marked as free in the tablespace! InnoDB: The tablespace free space info is corrupt. InnoDB: You may need to dump your InnoDB tables and recreate the whole InnoDB: database!
Langkah Recovery Database
Sebelum melakukkan recovery database, cek terlebih dahulu status service database dengan perintah berikut (user: zimbra)
su - zimbra mysql.server status
Apabila status database mati, lakukkan perintah berikut untuk menjalankan service database (user: zimbra)
mysql.server start
Namun bila database tidak running, ubah status database menjadi recovery mode dengan menambahkan innodb_force_recovery = 1 dibawah [mysqld] (user: zimbra)
[mysqld] innodb_force_recovery = 1 basedir = /opt/zimbra/common datadir = /opt/zimbra/db/data socket = /opt/zimbra/data/tmp/mysql/mysql.sock pid-file = /opt/zimbra/log/mysql.pid bind-address = 127.0.0.1 port = 7306 user = zimbra tmpdir = /opt/zimbra/data/tmp
Kemudian simpan file, start ulang database. Apabila database tetap tidak jalan. ubah value innodb_force_recovery = 1 menjadi innodb_force_recovery = 2, Apabila masih tidak jalan juga ubah value innodb_force_recovery menjadi 3/4/5/6. Apabila tidak bisa juga database running pada recovery mode. database tidak bisa di recovery atau di selamatkan.
Apabila database bisa running, maka bisa mengikuti langkah-langkah berikut:
Backup Database Zimbra
1. Masuk ke user zimbra
su - zimbra
2. Load mysql configuration kedalam variabel shell
source ~/bin/zmshutil ; zmsetvars
3. List semua database
mysql --batch --skip-column-names -e "show databases" | grep -e mbox -e zimbra > /tmp/mysql.db.list
Catatan: Bila fitur Zimbra Chat Aktif menggunakan perintah berikut
mysql --batch --skip-column-names -e "show databases" | grep -e mbox -e zimbra -e chat > /tmp/mysql.db.list
4. Buat direktori lokasi backup/dump database
mkdir /tmp/mysql.sql
5. Dump/backup semua database(copy + paste)
for db in `cat /tmp/mysql.db.list`; do ~/common/bin/mysqldump $db -S $mysql_socket -u root --password=$mysql_root_password > /tmp/mysql.sql/$db.sql echo "Dumped $db" sleep 10 done
Remove & Restore Database Zimbra
Remove Database Zimbra
1. Remove semua database mbox
for db in `cat /tmp/mysql.db.list |grep mbox` do mysql -u root --password=$mysql_root_password -e "drop database $db" echo -e "Dropped $db" done
2. Remove database zimbra
mysql -u root --password=$mysql_root_password -e "drop database zimbra"
3. Hapus tablespace dan log files database
rm -rf /opt/zimbra/db/data/ib*
Restore Semua Database
1. Restart service mysql
mysql.server restart
2. Create database kosong
for db in `cat /tmp/mysql.db.list` do mysql -e "create database $db character set utf8" echo "Created $db" done
3. Restore isi database zimbra
mysql zimbra < /tmp/mysql.sql/zimbra.sql
4. Restore isi database semua mbox
for sql in /tmp/mysql.sql/mbox* do mysql `basename $sql .sql` < $sql echo -e "Updated `basename $sql .sql` \n" done
Catatan: Bila fitur Zimbra Chat aktif tambahkan perintah berikut
mysql chat < /tmp/mysql.sql/chat.sql
5. Test query
mysql zimbra -e "select * from mailbox order by id desc limit 1"
6. Restart service
zmcontrol restart
Selesai..
Video Tutorial:
Berikut layanan yang ada di saadwebid terkait zimbra
Layanan Jasa Maintenance Zimbra
Layanan Jasa Migrasi Zimbra Mail Server
VPS/Cloud Zimbra
SSL Zimbra Mail Server
SMTP Relay