2013-10-25 9 views
33

나는과 같이 내 로컬 개발 환경에 거대한 데이터베이스 업데이트를 실행해야합니다 : 그것은 완료하는 데 몇 시간이 걸릴 수 있기 때문에'gunzip <database.sql.gz |'에서 진행 상황을 표시 할 수있는 방법이 있습니까? mysql ...`프로세스? 일주일에 한 번

$ gunzip < /path/to/database1.sql.gz | mysql -uUSER -p database1 & 
$ gunzip < /path/to/database2.sql.gz | mysql -uUSER -p database2 & 
$ gunzip < /path/to/database3.sql.gz | mysql -uUSER -p database3 & 

내가 하룻밤이를 실행 해보십시오.

이러한 작업에 대한 진행 상황을 보여줄 수 있습니까? 여기

몇 가지 추측은 다음과 같습니다

  1. 는 DB의 압축되지 않은 파일 크기를 취득하고 현재 (내 현재의 방법을 삽입 무슨 테이블보기 위해 MySQL의에서
  2. 내 로컬 DB의 크기와 실행 show processlist 비교하지만, 일부 테이블은 거대하고, 내 적어도 하나의 DB는 단지 db.sql.gz 파일을 모두 도움 미만이 옵션)

를 떠나, 그래서 프로세스의 대부분은이 표에 붙어 하나 개의 거대한 테이블이 있습니다 표준 gzip 된 mysqldump이므로 나는 나에게 업데이트를주기 위해 무엇이든 덤프에 설치할 수 있다고 생각하지 않는다.

  1. 하는 것은 유용하고 합리적으로 정확한 진행 상황을 제공 (중 시각적 같은 scp :


    바운티 규칙

    답변해야합니다 (내가 뭔가를 누락하지만 난 그에게 열려있어) (선호!) 또는 쉽게 액세스 할 수있는 간단한 진행 데이터베이스 테이블을 통해). 그래서 mysqldump 특별하거나 다른 MySQL의 지점 요청에 쉽게 유지 -

  2. 내 DBA에게 심장 마비를 제공하지 않음 (당신이 와서 무엇이든 사용할 수 없습니다 다른 엔지니어) 일반 mysqldump 수출 또는 일반 gunzip ... | mysql 수입을 중단하지 않습니다.

답변

87

당신은 -v 사용할 수 있습니다 : 자세한 정보 표시 모드는 명령 (진행률을 표시), 또는 다음과 같이 gzip으로의 진행 상황을 보여줍니다 파이프 뷰어 (pv), gunzip이 명령을 사용하여 다른 방법이있다 :

$ pv database1.sql.gz | gunzip | mysql -u root -p database1 

SCP와 유사한이 출력됩니다 진행 :

: 당신은 또한 mysqldump를 모니터링하기 위해 파이프 뷰어를 사용할 수 있습니다

$ pv database1.sql.gz | gunzip | mysql -uroot -p database1 
    593MiB 1:00:33 [ 225kiB/s] [====================>    ] 58% ETA 0:42:25 

이미 pv이없는 경우 7,336,974,

, 당신이 그것을 설치할 수 있습니다

yum install pv 

또는 MacPorts를

sudo port install pv 
내가 데이터를로드하기 전에 드롭 데이터베이스를 수행 할 것이라고 생각
+0

감사합니다. 전체 프로세스에서 의미있는 발전을 이루기 위해 MySQL을 압축 해제하고 가져 오는 맥락에서 이것이 어떻게 작동 하는지를 보여줄 수 있습니까? – Ryan

+4

# pv gunzip] 11 % ETA 0:02:10 – Ali

+0

업데이트 :이 솔루션은 환상적입니다! 예상대로 잘할 수 있습니다. ETA 표시기는 내가 원하는 것보다 더 많이 변동하지만 다양한 프로세스가 느려지거나 속도가 빨라질 것으로 예상됩니다. @ factorde7은이 솔루션에 대한 주요 업보를받을 자격이 있습니다. 나는 몇 년 전에 그것을 알고 있었으면 좋겠다. – Ryan

1

으로, 그리고 그 일이 끝나면 데이터베이스 디렉토리에서 "du -sh"를 연속적으로 실행할 수 있습니다. 내가 원래 데이터베이스 디렉토리의 크기를 아는 경우 (왜 내가 아닐까요?) 그러면 진행 모니터로 사용할 수 있습니다. 데이터베이스가 삭제 가능합니까?

+0

네, 위 질문에 많은 것을 공유하고 있습니다. 나는 그 이상을 기대하고 있었다. – Ryan