2017-01-12 15 views
0

나는 많은 수의 재부팅 후에도 계속해서 쓰기 - 주로 100 % 쓰기/쓰기가 많은 Win10 머신에 mysqld.exe가 많은 디스크 I/O, 100 %를 수행한다. 실제로 어떻게하고 있는지를 어떻게 알 수 있습니까? 데이터베이스가 사용되지 않고 있다는 것을 알고 있습니다.이 I/O가 어디서 왔는지 파악하고 싶습니다. 인터넷에서 찾은 유일한 해결책은 일반 구성 조언이었습니다. 필요하지 않습니다. 지금이 문제를 해결해야합니다!MySQL은 무엇을하고 있습니까 ?? 부트로부터 100 % 디스크 사용

show processlist는 아무것도 표시하지 않습니다.

업데이트 : 문제는 테이블에 거대한 배경 롤백 작업이었습니다. 해결책은 다음과 같습니다.

1) kill mysqld.exe 
2) add innodb_force_recovery=3 to my.ini 
3) start mysqld.exe 
4) export the table (96GB table resulted in about 40GB .sql file) 
5) drop the table 
6) kill mysqld.exe 
7) set innodb_force_recovery=0 to my.ini 
8) reboot and import the table back 

아직 데이터 무결성에 대한 아이디어는 없지만 괜찮습니다.

Milney에게 감사드립니다.

+0

[윈도우 프로세스 탐색기] (https://technet.microsoft.com/en-us/을 볼 수 SELECT * FROM information_schema.innodb_trx\G 같은 것을 사용할 수 있습니다 sysinternals/bb896653)는 디버깅에 도움이 될 수 있습니다. – DanFromGermany

답변

2

작업 관리자에서 리소스 모니터의 디스크 탭을 보면 어떤 파일이 쓰여지고 있는지 확인할 수 있습니다.이 파일은 어떤 데이터베이스인지 알 수 있습니다.

그런 다음 열려있는 트랜잭션을 확인하고 문을 일으키는 원인이되는이

Resource Monitor

+0

감사합니다. "trx_state : ROLLING BACK"이라고 표시됩니다. 어떻게하면 취소 할 수 있습니까? – Daniel

+0

"mysqld 프로세스를 죽이고 innodb_force_recovery를 3으로 설정하면 롤백없이 데이터베이스를 가동 한 다음 런 어웨이 롤백을 일으키는 테이블을 삭제할 수 있습니다." 테이블을 삭제하지 않고 롤백을 방지 할 수 있습니까? 그것은 중요한 테이블의 일종이며 수출하기에는 너무 큽니다. – Daniel

+0

백업이 없습니까? 제발이게 Windows가 아닌 서버에서 실행중인 프로덕션 데이터베이스가 아니라고 말해 주시겠습니까? 이상적으로 롤백을 마치면 끝낼 수 있습니다. – Milney

0

이 부분을 살펴 봐야 할 것 같습니다.

http://windowsreport.com/windows-10-anniversary-update-100-disk-usage/

또한 당신이 인터넷을 끄면 디스크 IO 사용률이 아직 거기 경우 확인해보십시오.

+0

디스크 사용량 문제는 mysqld.exe에만 해당되며 OS와 관련이 없습니다. Linux 관련 솔루션을 피하기 위해 언급했을뿐입니다. 또한 시스템이 기념일 업데이트로 업데이트되지 않았습니다. – Daniel

+0

링크에는이 문제를 디버그하는 데 사용할 수있는 몇 가지 도구가 포함되어 있습니다. 한번 봐주세요. – cyberrspiritt

+0

나는 이것을 보았다. 그러나 이는 매우 일반적인 I/O를 일으키는 프로세스/서버/파일을 찾아서 죽이거나 비활성화하는 방법에 대한 일반적인 문제 해결 문서이다. 그게 내가하려는 일이 아니야. 이미 문제를 일으키는 원인을 알고 있습니다. MySQL 서버에 뭔가 복잡한 것이 있습니다. MySQL 관련 솔루션이 필요합니다. 나는 여전히 데이터베이스를 사용하기를 원하기 때문에 나는 전체 MySQL을 죽일 수 없다. 그럼에도 불구하고 당신의 공헌에 감사드립니다. – Daniel