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

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

新規登録して質問してみよう
ただいま回答率
85.50%
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カーネル上に構築されています。

データベース

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

Q&A

解決済

2回答

2262閲覧

レプリケーションする方法について。

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カーネル上に構築されています。

データベース

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

0グッド

0クリップ

投稿2014/08/10 10:06

お世話になっております。
MySQLのレプリケーションの方法について教えて頂きたいことがあります。
レプリケーションの方法ですが2通り学びました。

(1)masterからデータ領域(/var/lib/mysql)をごそっと移動させて、slaveの方でchange master コマンドを打ち、start slaveでレプリケーション開始。

(2)mysqldumpコマンドによってSQL文を抽出して、mysqlコマンドでデータベースに戻してあげてから start slaveでレプリケーション開始。

上記の2つの方法があるかと思われますが、今回教えて頂きたいことは”ロック”についてです。
ネット上で調べていると、書き込みロック(コマンドは知りません。)をしてから上記方法でレプリケーション関係を築いてください。とよく書かれているのですが、書き込みロックは100%必要なのでしょうか?
というのも、書き込みを頻繁に行っているデータベース(masterサーバ)のレプリケーション(slaveサーバー)を構築しようと思い、上記方法の(2)mysqldumpコマンドを用いました。
結果、書き込みロックをせずにうまくレプリケーション(slaveサーバー)が出来ました。

書き込みロックをしてからレプリケーション(slaveサーバー)を構築する方法をご存知の方いらっしゃいましたらご教授頂けないでしょうか?

よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

書き込みロックを行ってなくても、Slave設定は可能でありますが、
dumpの最中に発生した書き込みデータはSlaveに反映されない状況で
レプリケーションされている状況になっているかと思いますので、
MasterとSlaveでデータの不整合が発生している可能性が高いです。

dump中に書き込みが確実にされないといった保証がない限り、
ロックをかけてSlave用のデータを取得された方がよいかと思います。

基本的にマスター側でFLUSH TABLES WITH READ LOCK;を行った後に
マスターDBをダンプし、SHOW MASTER STATUS;にてファイルとポジションを
控えたのちに、UNLOCK TABLES;でロックを解除します。

あとはSlave側で取得したダンプファイルをリストアしてCHANGE MASTERで
先ほど控えたファイルとポジション等を指定してslave startを行うと
設定は完了するかと思います。

投稿2014/08/11 04:02

kazu831

総合スコア15

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

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

EzrealTrueshot

2014/08/12 01:46

とてもわかりやすいご説明誠にありがとうございます!
guest

0

ロックをかけないとデータの同期中に更新されたデータが発生してしまいます。
それを防ぐために、ロックをかけます。SQL的には、

FLUSH TABLES WITH READ LOCK;

以下を参考に。

投稿2014/08/11 02:59

bonchan

総合スコア204

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

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

EzrealTrueshot

2014/08/12 01:47

回答ありがとうございます! ここって、教えてgooのような次点ベストアンサーって選べないシステムなんでしょうか? ベストアンサーつけられず申し訳ございません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問