質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

2回答

3044閲覧

【MySQL】レプリケーションのやり方について

EzrealTrueshot

総合スコア388

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2015/01/06 06:32

お世話になっております。Ezです。
データベース(MySQL)を無停止でレプリケーションの作成をしたいです。
やり方をご存じの方いらっしゃいましたらご教授いただけないでしょうか?

google先生に聞いてみたのですが、自分がやりたいことが探せなくて困っております。
やりたいことは下図の通りです。
masterもslaveも完全無停止で新たにslaveを作ることは可能でしょうか?
(mysqldumpallコマンドで毎日バックアップは取っております)

また、masterのバイナリーログ
slaveのリレーログ ともにどっちとも出るようにmy.cnfにオプションは記載しております。

何か足りない情報等ございましたら追記していきます。
ちょっとしたことでもいいので、回答頂ければ幸いです。

![イメージ説明]WIDTH:600

↓これは使わない(使えない)ものとします。
mysqldump -uroot --single-transaction --master-data

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

やったことはありませんが、既存のスレーブから下記のように --dump-slave を付けてダンプすれば、スレーブが参照しているマスターのバイナリログの位置がダンプに記録されると思います。

mysqldump -uroot --dump-slave

--single-transaction がつけられないのであればダンプ中はレプリケーションが止まると思いますが(書き込みがロックされるので)、元々スレーブならアプリからは参照しかしないと思うので、よほどダンプに時間がかかるとかでない限り問題にはならないと思います。

投稿2015/01/07 12:02

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EzrealTrueshot

2015/01/08 01:22

これいいですね! ありがとうございます!
EzrealTrueshot

2015/01/08 01:42

2人ともにベストアンサーを選びたいのですが、回答が早かった方で>< 申し訳ございません!
guest

0

ベストアンサー

↓これは使わない(使えない)ものとします。
mysqldump -uroot --single-transaction --master-data

という事は、MyISAMか、混合のDBって事でしょうか。
その前提だと、その構成から無停止でレプリカを作るのはきつそうですね。
たいしてデータが入ってないのであれば、いきなりCHANGE MASTERでぶっこんでみる価値はあるかもですが・・・。
まぁ、たいしてデータ入ってなければdumpをためらう事は無いと思いますが。

ただ、mysqldumpallでダンプを取っているのであれば、それが動いた直後辺りにそのdumpを利用してやってしまえばいいような気がします。
mysqldumpallが正確にどういう動作をするのか知らないので、断言はできませんが。
cron等でやってるなら取得時間は分かると思いますので、その時間に待機しておいて、dumpが取れたらそれを元にレプリカを復元⇒CHANGE MASTERコマンドでいけませんかね。

結構適当な事言ってますが、ご参考になれば幸いですー

投稿2015/01/06 18:40

utun

総合スコア384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EzrealTrueshot

2015/01/07 03:56

ありがとうございます! dump取得⇒レプリカ作成⇒change master コマンドをやろうと思います! change master コマンドで用いるバイナリログのポジション等はいつのタイミングのshow master status;で表示される情報がよろしいでしょうか?
utun

2015/01/07 06:47

mysqldumpallでのdumpがどうなっているかわかりませんが、取り方次第ではdump内に「MASTER_LOG_FILE」と「MASTER_LOG_POS」が出てくるので、一度探してみる事をお勧めします。 これがない場合はshow master statusで、dump取得が実行される直前くらいに取っておけばいいと思います。
EzrealTrueshot

2015/01/07 09:08

ありがとうございます! --master-dataオプションがついていないので、 master_log_file と master_log_posがある望みは薄いですが探してみて試してみようと思います! ・・・もし、記載が無かった場合(dump時のmaster_log_fileとmaster_log_posが不明な場合)は・・・やり直し(show master status と 同時にdump)するしかないでしょうか?裏ワザ的な方法あったら教えて頂きたいです><
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問