SSH로 원격 명령을 실행하면 다른 모든 네트워크 활동이 정지되는 것 같습니다.

SSH로 원격 명령을 실행하면 다른 모든 네트워크 활동이 정지되는 것 같습니다.

원격 시스템에서 mysql 데이터베이스를 백업하기 위해 다음 명령을 실행하고 있습니다.

ssh [email protected] 'mysqldump mainserver' | gzip -c > mainserver.sql.gz

명령 시간을 재어 보았는데 2.5~3분 정도 소요되는 것 같습니다. 문제없이 작동하는 것 같습니다.

그러나 문제는 원격 서버의 다른 모든 네트워크 트래픽이 중단된 것 같다는 것입니다.

원격 서버에는 "comet"과 같은 http 연결(오랜 기간 동안 열려 있는 연결)이 있으며 해당 연결이 중지된 것처럼 보입니다. 위의 ssh 명령이 끝나는 지점에서 연결이 끊어진 것처럼 보이는 열린 상태로 유지되는 다른 TCP 연결도 있습니다. (적어도 ssh 명령이 중지되면 로그 메시지가 나타나지만 그 이전에는 데이터가 전송되지 않는 것으로 의심됩니다).

답변1

데이터베이스가 잠겨 있습니다.

질문에 "원격 서버의 다른 모든 네트워크 트래픽이 중단된 것 같습니다"라고 설명되어 있지만 데이터베이스 덤프가 (모든) innodb 테이블을 잠글 가능성이 훨씬 더 높습니다.

이 시나리오에서 잠긴 테이블에 대한 읽기/쓰기 프로세스는 덤프가 완료될 때까지 기다린 후 자체적으로 잠금을 획득하고 데이터베이스에 읽기/쓰기를 수행한 후 요청을 완료합니다. 모든 http 트래픽이 데이터베이스에 대한 읽기/쓰기가 필요한 경우 모든 http 트래픽이 차단된 것으로 인식됩니다.

잠금 방지

Mysqldump는 다음을 제공합니다.--단일 트랜잭션mysqldump를 허용하는 플래그~ 아니다테이블을 잠급니다 innodb.

관련 정보