電子書籍の厳選無料作品が豊富!

はじめまして。
今、mysqldumpのオプションの「--master-data[=value]」の
取得されるものをリファレンスで調べているのですが、
オプション値が1と等価とオプション値が2と等価の場合で
取得されるものがよく分かりません。

--master-dataは出力にバイナリログファイル名とポジションを書くとのことですが、「CHANGE MASTER TO」コマンドを出力するとの
記載もありました。

普通のmysqldumpのみでしたら分かるのですが..

詳しい方がいましたら、教えてください。

A 回答 (2件)

--master-dataオプションの1,2の違いは、


CHANGE MASTER文をそのまま出力する(=1)か、コメントにする(=2)の違いのみです。
オプションをつけない場合はCHANGE MASTER文は出力されません。

マニュアルにもありますが、
--master-dataは--single-transactionが指定されていなければ、
自動的に--lock-all-tablesをオンにする、というオプションでもあり、
実際はこちらのほうが重要であると思います。

--master-dataに関するオプションについては、
InnoDBをお使いなら--master-data=2 --single-transaction、
MyISAMをお使いなら--master-data=2
で基本的に問題ないかと思います。

参考URL:http://dev.mysql.com/doc/refman/5.1/ja/mysqldump …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すいません。参考URLを見たのですが、
もうちょっと教えてください。

ダンプする前に全てのテーブルをロック(--lock-all-tablesがオン)しないと、
取得中にテーブルが更新されてしまうってことで
あってますか??

もう一点ですが、CHANGE MASTER文をそのまま出力する(=1)と
コメントにする(=2)の違いというのは、
もし、そのダンプを展開したときに、1の場合だと、
CHANGE MASTER文を実行されてしまうってことでしょうか?

CHANGE MASTER文はスレーブサーバがマスターサーバとの
接続+通信をする為にしようしているパラメータだと思います。

素人過ぎる質問をしてしまいすいません..

お礼日時:2007/12/19 01:06

>ダンプする前に全てのテーブルをロック(--lock-all-tablesがオン)しないと、


>取得中にテーブルが更新されてしまうってことで
>あってますか??

そういうことになります。
ですので、MyISAMを--lock-all-tablesなしでmysqldumpを実行すると、
一貫性のあるバックアップを取得できる保証はありません。

>もし、そのダンプを展開したときに、1の場合だと、
>CHANGE MASTER文を実行されてしまうってことでしょうか?

コメントされていない場合は実行されることになります。
一度試しに--master-data=1,--master-data=2,--master-dataオプションなしで
検証されてみるといいかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
理解できました。

実際使うことになると思いますので
その前に試したいとおもっております。

お礼日時:2007/12/19 21:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!