Masalah
Client punya server MySQL yang disknya hampir penuh, yang jadi masalah
- Server tidak mau di upgrade
- MySQL server harus tetap jalan, tidak bisa down
- Menggunakan formula (dump & delete)
mysqldumplalu menggunakan commandsqluntuk delete tidak bisa digunakan karena malah membuat MySQL service down - Mau hapus tanpa
dumpterlebih dahulu tidak bisa, akan tetap membuat MySQL down
Yang sudah dilakukan untuk bikin free disk
Lumayan, tapi hanya bisa buat free space ratusan MB saja
Solusi
Backup dan archive dengan percona pt-archiver
Jika data lama itu tidak diperlukan, saya biasa menggunakan
sudo pt-archiver \
--source h=localhost,D=NamaDatabase,t=NamaTabel,u=root,p=PasswordRoot \
--where "xxx" \
--purge \
--limit 1000 \
--commit-each \
--no-check-charset \
--progress 10000 \
--statistics
Jika data ingin kamu backup terlebih dahulu
sudo pt-archiver \
--source h=localhost,D=NamaDatabase,t=NamaTabel,u=root,p=PasswordRoot \
--where "xxx" \
--limit 1000 \
--commit-each \
--no-check-charset \
--progress 10000 \
--statistics \
--file '/tmp/backup-%Y-%m-%d-%T.sql' \
--output-format sql
Setelah melakukan ini, disk kamu tidak akan bertambah.
Tapi data_free di tabel kamu yang akan bertambah, gunakan SHOW TABLE STATUS LIKE 'NamaTable'\G untuk melihat data_free di tabel
