데비안 시스템을 사용하고 있습니다. 파티션이 가득 찬 후 mysql을 시작할 수 없습니다. "오류: /var/lib/mysql 파티션이 가득 찼습니다!"라는 메시지가 나타납니다.
/var/lib/mysql에서 필요하지 않은 일부 데이터 폴더를 삭제하는 것이 좋습니다. 그래서 필요하지 않은 이전 데이터베이스의 폴더를 삭제했습니다.
이제 mysqld 서비스를 다시 시작하려고 하면 다음 오류가 발생합니다.
150218 10:09:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
150218 10:09:03 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full n$
150218 10:09:03 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use$
150218 10:09:03 [Note] Plugin 'FEDERATED' is disabled.
150218 10:09:03 InnoDB: The InnoDB memory heap is disabled
150218 10:09:03 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150218 10:09:03 InnoDB: Compressed tables use zlib 1.2.7
150218 10:09:03 InnoDB: Using Linux native AIO
150218 10:09:03 InnoDB: Initializing buffer pool, size = 128.0M
150218 10:09:03 InnoDB: Completed initialization of buffer pool
150218 10:09:03 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 20417554120
150218 10:09:03 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 20419913007
150218 10:09:03 InnoDB: Error: page 24667 log sequence number 20425339296
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
150218 10:09:03 InnoDB: Error: page 530914 log sequence number 20426394124
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
InnoDB: 1 transaction(s) which must be rolled back or cleaned up
InnoDB: in total 6135 row operations to undo
InnoDB: Trx id counter is 574E00
150218 10:09:04 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 150218 10:09:04 InnoDB: Error: page 248000 log sequence number 20425331738
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
my.cnf innodb_force_recovery = 1/2/3/4/5/6 1부터 시작해서 위로 다음 명령을 추가하면서 mysql을 시작해야 한다고 봅니다.
모두 시도했지만 아무것도 얻지 못했습니다.
누구든지 어떤 아이디어가 있습니까?
답변1
/var/lib/mysql이 /root를 채울 때 매우 유사한 문제가 발생했습니다. 구경하다https://dba.stackexchange.com/questions/91575/moved-mysql-datadir-now-server-will-not-run 다양한 구성 파일에 숨겨진 경로가 너무 많아서 추적하기 어려울 수 있으므로 기호 링크를 사용하십시오.
답변2
전체 데이터베이스 디렉터리를 삭제하면 시스템이 일관성을 잃게 됩니다. 대부분 "ibdata*" 및 "ib_logfile*"에 데이터베이스에 대한 참조가 남아 있을 가능성이 높습니다(데이터베이스에 InnoDB 테이블이 있다고 가정).
"로그 시퀀스 번호는 미래입니다."라는 오류 메시지는 유사한 불일치를 나타내는 또 다른 신호입니다.
"innodb_force_recovery"(읽기 전용으로 만들기)를 사용하여 MySQL 서버를 시작한 다음 "mysqldump"를 사용하여 데이터를 가져와 다른 곳에 저장할 수 있습니다. 그런 다음 데이터베이스 파일(아마도 "/var/lib/mysql/data" 아래의 모든 항목)을 삭제하고 비어 있는 새 MySQL 인스턴스("mysql_install_db")를 설치하여 덤프를 로드합니다. 여기에는 이러한 불일치로 인한 데이터 손실이 포함될 수 있습니다.
디스크 공간 모니터링을 설정하는 것을 잊지 마세요!