2011-02-11 14 views
13

mysqldumpを自分のremotehostに直接行いたいです。私は、-cスイッチを使用するか、またはgzipを使ってその場でデータを圧縮することを提案しました。両者の違いは何ですか?両方のマシンが-Cスイッチをサポートしているかどうかはどのように分かりますか?その場でgzipをどうやって行うのですか?私は両方のマシンでlinuxを使用しています。-Cとmysqldumpのgzippingの違いは何ですか?

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

私が知っている限り、-CはソースmysqlサーバーからSQLをダンプする宛先サーバーに送信されている間にsqlコードを圧縮し、それを宛先サーバーで解凍して圧縮解除されたファイルを保存しますファイルを(通常)ハードディスクに保存します。 gzipを実行すると、圧縮された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オプションを使用すると、クライアント側のバッファリングと対話型動作が無効になります。あなたは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に接続すると、MySQLデーモンはmysqldumpに送信しているデータを圧縮し、出力パイプに書き込む前に解凍します。compressオプションを使用するのは、クライアントアプリケーションとデーモンが別々のホスト上にある場合だけです。 –

0

私はいつもこれらのタイプのマニュアルページを読んでいます。 man pages for mysqldumpを見ると、-C(これはの大文字のC)フラグによってmysqldumpがすべてのデータを圧縮することがわかりますはトランジット中にのみです。これはストリームを圧縮しますが、圧縮されていない状態で表示されます。あなたは、ローカルシステムにファイルをダンプし、すべてのgzipを一度に転送することもできます。 manページから

o --compress, -C 

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

"...しかし、あなたはそれが見えるように、圧縮されていません" ...それはどういう意味ですか?圧縮されたものから圧縮されていないものへはどのようになるのでしょうか?基本的にgスイッチを-Cスイッチで使用していますか? –

+1

"....両者とも圧縮をサポートしています。両方のサーバーが圧縮をサポートしているかどうかはどのようにわかりますか? –

+0

gzipを実行しているとは思いませんが、その場で圧縮します。 –

関連する問題