ວິທີແປງຕາຕະລາງທີ່ເປັນ Innodb ສໍາັລບ Directadmin (MySQL)

ວິທີແປງຕາຕະລາງທີ່ເປັນ Innodb ສໍາັລບ Directadmin (MySQL)

ໂດຍປົກກະຕິ InnoDB Engine ຈະມີການ recovery ຕົວເອງສະເໝີໃນກໍລະນີທີ່ Table ມີບັນຫາແຕ່ກໍມີບາງຄັ້ງທີ່ເປັນການເສຍຫາຍທີ່ຫຼາຍກວ່າລະບົບຈະ recovery ຕົວເອງໄດ້ ສາເຫດທີ່ເຮົາພົບຢູ່ເປັນປະຈໍາກໍຄື Harddisk ຂອງເຊີບເວີເຕັມ ຫຼື ມີການໄປກ່ຽວຂ້ອງກັບໄຟລ lbdata ເຊັ່ນການ copy, ຫຼທໄປເຮັດໃຫ້ມັນເກີດການ lock ຈົນເຮັດໃຫ້ MySQL ຮັບ transaction ເຂົ້າມາແຕ່ Commit ບໍ່ໄດ້ຈົນເຮັດໃຫ້ Crash ໃນທີ່ສຸດ ແລະ ວິທີການສ້ອມແປງ InnoDB Engine ແບ່ງເປັນຂັ້ນຕອນດັ່ງນີ້

1) ເປີດ mode innodb recovery ໃຫ້ກັບ mysql ຈະມີທັງໝົດ 6 mode ແຕ່ລະໂໝດກໍຄືລໍາດັບຂອງຄວາມເສຍຫາຍທີ່ອາດຈະເກີດຂຶ້ນກັບຂໍ້ມູນໃນ Database ແນະນໍາໃຫ້ໄລ່ຕັ້ງແຕ່ 1-6 ຫາກ start mysql ຂຶ້ນທີ່ mode 1 ກໍຖືວ່າໂຊກດີທີ່ສຸດ
2) Dump Database ອອກມາ
3) ລົບ Database ທີ່ເປັນ InnoDB ຖິ້ມທັງໝົດ
4) restore ຂໍ້ມູນກັບຄືນ
5) ເປີດ Mode ປົກກະຕິໃຫ້ກັບ MySQL ເພື່ອໃຫ້ສາມາດໃຊ້ insert , update ໄດ້ ເນື່ອງຈາກ recovery mode ຈະບໍ່ສາມາດ insert , update ຂໍ້ມູນໄດ້

 

 

ຂັ້ນຕອນການສ້ອມແປງ InnoDB ໃນ Directadmin

1) ໃຫ້ເພີ່ມ innodb_force_recovery = 1 ເຂົ້າໄປທີ່ໄຟລ /etc/my.cnf ແລະລອງ start service mysql (ຫາກຍັງ start ບໍ່ຂຶ້ນໃຫ້ປ່ຽນເລກໄປເລື້ອຍໆຕັ້ງແຕ່ 1-6)

** ຫາກ MySQL ຍັງສາມາດເຮັດວຽກໄດ້ໃຫ້ຂ້າມຂັ້ນຕອນນີ້ໄປເລີຍ

 

2 ) Backup ຂໍ້ມູນດ້ວຍການ Dump Database ທັງໝົດອອກມາ

cd /usr/local/directadmin/custombuild
./build update
./build set mysql_backup yes
./build mysql_backup

ໄຟລ sql ທັງໝົດຈະຖືກເກັບໄວ້ທີ່ /usr/local/directadmin/custombuild/mysql_backups ເຂົ້າໄປກວດກາເພື່ອຄວາມແນ່ໃຈກ່ອນຈະເຮັດຂັ້ນຕອນຕໍ່ໄປ

 

3 ) ປິດ service mysql ແລະ backup folder ຂອງ MySQL ໄວ້ກ່ອນເພື່ອຄວາມໝັ້ນໃຈ ແລະ ລົບ InnoDB ຖິ້ມທັງໝົດ

perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
/etc/init.d/mysqld stop
cd /var/lib
cp -Rp mysql mysql.innodb.backup

ຫຼັງຈາກນັ້ນໃຫ້ເຂົ້າໄປລົບຕາຕະລາງພວກນີ້ຖິ້ມໃຫ້ໝົດ mysql, performance_schema, information_schema ໂດຍເຂົ້າຜ່ານ phpmyadmin ກໍໄດ້ password ສໍາລັບ root access ຈະເກັບໄວ້ທີີ່ໄຟລ /usr/local/directadmin/conf/mysql.conf

ລົບໄຟລທີ່ເກັບຂໍ້ມູນ InnoDB ຖິ້ມທັງໝົດດ້ວຍຄໍາສັ່ງນີ້

cd /var/lib/mysql
/etc/init.d/mysqld stop
rm -f ib*
/etc/init.d/mysqld start
perl -pi -e 's/mysqld=OFF/mysqld=ON/' /usr/local/directadmin/data/admin/services.status
4 ) restore ຂໍ້ມູນທັງໝົດເຂົ້າ Database
cd /usr/local/directadmin/custombuild/mysql_backups
wget http://files1.directadmin.com/services/all/mysql/restore_sql_files.sh
chmod 755 restore_sql_files.sh
./restore_sql_files.sh
6 ) ໃຫ້ປິດ mode recovery ໂດຍການລົບວັກ innodb_force_recovery ໃນໄຟລ /etc/my.cnf ອອກ ແລະ start service MySQL ອີກຄັ້ງ
ຂໍ້ມູນເພີ່ມເຕີມ
https://help.directadmin.com/item.php?id=559