2011-02-11 2 views
13

mysqldump를 내 remotehost에 직접 보내고 싶습니다. 나는 -c 스위치를 사용하거나 gzip을 사용하여 파일을 압축하지 않고 데이터를 압축 할 것을 제안했다. 둘의 차이점은 무엇입니까? 두 시스템이 모두 -C 스위치를 지원하는지 어떻게 알 수 있습니까? 어떻게하면 gzip을 즉시 할 수 있을까요? 두 컴퓨터에서 리눅스를 사용하고 있습니다.-C와 mysqldump gzipping의 차이점은 무엇입니까?

mysqldump -C -u root -p database_name | mysql -h other-host.com database_name 
+0

내가 아는 한, -C는 원본 mysql 서버에서 SQL을 덤프하는 대상 서버로 보내지는 동안 sql 코드를 압축 한 다음 대상 서버에서 압축을 풀고 압축되지 않은 데이터를 저장합니다 파일 (일반적으로) 하드 디스크에. gzipping하는 동안 압축 된 gzip 파일이 하드 디스크에 저장됩니다. –

답변

15

-C 옵션은 MySQL의 클라이언트 - 서버 프로토콜에 존재할 수있는 압축을 사용합니다. Gzip'ing은 파이프 라인에서 gzip 유틸리티를 사용합니다. 나는 압축과 압축 해제가이 경우 동일한 기계에서 일어날 것이기 때문에 후자가 아무런 효과가 없을 것이라고 확신한다. 덤프하는 컴퓨터가 로컬 인 경우 -C 옵션은 CPU 사이클을 낭비하는 것일뿐입니다. mysqldumpmysqld 사이의 프로토콜 메시지를 압축합니다.

mysqldump -u root -p database_name | mysql -C -h other-host -Ddatabase_name -B 

mysqldump의 출력은 mysql 명령 줄 클라이언트가 읽을 파이프 라인에 것입니다 : 여기에 적합 할 수 있습니다

유일한 명령 파이프 라인은 같은 것입니다. -C 옵션은 mysql에게 메시지가 other-host으로 압축되도록합니다. -B 옵션을 사용하면 클라이언트를 mysql 버퍼링 및 대화 형 동작을 사용하지 않도록 설정할 수 있습니다. 당신은 SSH 어쨌든 다른 시스템에서 실행 가지고 제공

mysqldump -u root -p database_name | gzip > dump.gz 
scp dump.gz [email protected]:/tmp 
ssh [email protected] "gunzip /tmp/dump.gz | mysql -Ddatabase_name -B; rm /tmp/dump.gz" 

:

아마 같은 것보다는 빠르다.

+0

-B에 대한 자세한 정보는 어디에서 찾을 수 있습니까? 나는 아무것도 못 찾는다. 그것은 똑같이 행동합니까? –

+0

"mysqldump -C -u root -p database_name | mysql -h other-host -Ddabase_name -B"? –

+1

아니요,'-C' 옵션은 클라이언트 응용 프로그램 (mysqldump 또는 mysql)과 서버 (mysqld) 사이의 통신을 압축합니다. 'mysqldump -C'를 실행하고 * localhost * compresses에 연결하면 mysqldump로 보내는 데이터를 압축하여 출력 파이프에 쓰기 전에 압축을 풀도록 MySQL 데몬에 알린다.compress 옵션을 사용하면 클라이언트 응용 프로그램과 디먼이 별도의 호스트에있을 때만 의미가 있습니다. –

0

필자는 항상 이러한 유형의 매뉴얼 페이지를 읽었습니다. man pages for mysqldump을 보면 -C (대문자 C) 플래그로 mysqldump가 모든 데이터를 압축합니다. 은 전송 중에만입니다. 이렇게하면 압축 된 스트림이되지만 압축되지 않은 상태로 표시됩니다. 파일을 로컬 시스템에 덤프 한 다음 gzip을 한 번에 전송할 수도 있습니다. 매뉴얼 페이지에서

:

o --compress, -C 

     Compress all information sent between the client and the server if 
     both support compression. 
+0

"... 도착하지만, 보시다시피, 압축되지 않은"... 그게 무슨 뜻입니까? 압축에서 압축 해제까지 어떻게됩니까? 기본적으로 -C 스위치를 gzip으로 사용하고 있습니까? –

+1

".... 두 경우 모두 압축을 지원합니다." 두 서버 모두 압축을 지원하는지 어떻게 알 수 있습니까? –

+0

gzip을 사용한다고 가정 할 수는 없지만 즉시 압축합니다. –