Здравствуйте, уважаемые эксперты.
Накрылся сервер mysql. Накрылся - закончилось место на диске из-за пухлых логов, indata и бинарных логов. Дамп есть от самого начала включения бинарных логов.
Задача - поднять все базы данных на новом сервере.
Centos 7, maria5.5
Логи сначала конвертировала в sql-файл командой
mysqlbinlog -s -D --start-datetime="2016-12-13 17:29:00" --stop-datetime="2017-01-15 18:00:00" -t mysql-bin.000001 > repair20170115.sql
mysqlbinlog -s -D mysql-bin.000001 > repair20170115-1.sql
mysql -uroot -pPassword < repair20170115-1.sql
Нашла такой вариант изъятия инфы:
mysqlbinlog mysql-bin.000001 > 1.sql
ERROR 1032 (HY000) at line 509660: Can't find record in 'job_queue'
Нашла разницу в заголовке и окончании «поломанного» файла: Так выглядит начало и окончание правильного sql-файл из бинарного лога.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#161213 19:03:56 server id 1 end_log_pos 245 Start: binlog v 4, server v 5.5.50-MariaDB created 161213 19:03:56
BINLOG '
...
'/*!*/;
# at 105413866
#161216 7:59:51 server id 1 end_log_pos 105413893 Xid = 1144333
COMMIT/*!*/;
# at 105413893
#161216 7:59:51 server id 1 end_log_pos 105413936 Rotate to mysql-bin.000004 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
А так - поломанный, аварийно завершенный лог: (часть 6-ая, mysql-bin.000006)
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#161220 23:36:50 server id 1 end_log_pos 245 Start: binlog v 4, server v 5.5.50-MariaDB created 161220 23:36:50
# Warning: this binlog is either in use or was not closed properly. (Вот эта строка меня смутила)
BINLOG '
...(тут много-много записей, далее - окончание лога)
'/*!*/;
# at 48701294
#161222 5:26:33 server id 1 end_log_pos 48701321 Xid = 3019671
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#161220 23:36:50 server id 1 end_log_pos 245 Start: binlog v 4, server v 5.5.50-MariaDB created 161220 23:36:50
BINLOG '
...
'/*!*/;
# at 48701294
#161222 5:26:33 server id 1 end_log_pos 48701321 Xid = 3019671
COMMIT/*!*/;
# at 48701321
#161222 5:26:33 server id 1 end_log_pos 48701364 Rotate to mysql-bin.000007 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
ERROR 1032 (HY000) at line 509660: Can't find record in 'job_queue'