天天看點

Msql ,M-S-S配置,以及blackhole的使用、

M-S-S:

使用一台slave作為中繼,分擔master的壓力,中繼slave上需要開啟二進制日志,

并打開一下選項在my.cnf中:

<code>vim my.cnf</code>

<code>log-bin</code>

<code>log-slave-updates=1</code>

之前配置好了M-S 環境。

接下來增加一台中繼slave

步驟:

1,使用一台slave作為中繼

打開二進制日志,并允許中繼日志重放到二進制日志中

授權:

<code>grant</code> <code>replication slave </code><code>on</code> <code>*.* </code><code>to</code> <code>repl@slave-ip identified </code><code>by</code> <code>'123456'</code><code>;</code>

<code>flush </code><code>privileges</code><code>;</code>

保持和master的二進制日志格式一緻

show master status\G;

檢視binlog和pos

2,配置最終slave,指向中繼slave作為他的master

1,先在中繼slave導出所有的庫,在最終slave還原後,在做以下配置、

<code>change master </code><code>to</code> 

<code> </code><code>master_host=</code><code>'中繼slaveip'</code><code>,</code>

<code> </code><code>master_user=</code><code>'repl'</code><code>,</code>

<code> </code><code>master_password=</code><code>'123456'</code><code>,</code>

<code> </code><code>master_log_file=</code><code>'mysql-bin.000001'</code><code>,</code><code>--中繼slave處檢視</code>

<code> </code><code>master_log_pos=120;</code>

<code> </code><code>start slave;</code>

<code> </code><code>show slave status\G;</code>

針對M-S-S 什麼時候使用blackhole存儲引擎?

BLACKHOLE存儲引擎能夠接受存儲的資料,但是不存儲,是以不管往裡面存儲多少資料,總是會傳回空值。

因為BLACKHOLE表的插入不存儲任何資料,在一般情況下我們是不用的,但是如果遇到類似這樣的情況的話,BALCKHOLE就是一個很好的選擇:

如果你要進行一次資料遷移,,資料須要經過一 個中轉的MySQL伺服器做一些相關的轉換操作,然後再通過複制移植到新的伺服器上面,但做中轉需要很大的空間,如果你沒有那麼大的空間或者不想臨時浪費這個空間,這時候就可以使用BLACKHOLE了,他不會記錄下任何資料,但是會在binlog中記錄下所有的Query.而這些Query最終都會被複制利用,并實施到最終的slave端。

BLACKHOLE存儲引擎其他幾項用途:

Query文法的驗證;

測試二進制日志記錄的性能開銷,如通過比較允許二進制日志功能的BLACKHOLE與禁止二進制日志功能的BLACKHOLE的性能來實作;

查找與存儲引擎自身不相關的性能瓶頸,因為BLACKHOLE本質上是一個"no-op"的存儲引擎。

缺點:

1,某些情況下不會自增ID寫入到二進制日志中

2,使用分發主庫的另一個缺點是,無法使用備庫來代替主庫,由于分發主庫的存在,導緻各個備庫與原始資料二進制坐标不相同

注意,如果中繼slave的存儲引擎改為blackhole,那麼最終的slave也會變為blackhole,我們需要查詢資料,則需要把slave的改回以前的存儲引擎、

      本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1605021,如需轉載請自行聯系原作者