Heim > Datenbank > MySQL-Tutorial > CentOS搭建MysqlMMM高可用架构_MySQL

CentOS搭建MysqlMMM高可用架构_MySQL

WBOY
Freigeben: 2016-05-31 08:49:03
Original
1091 Leute haben es durchsucht

CentOS

环境

CentOS

Mysql 5.1

前提

安装了EPEL,具体安装步骤请参照

http://blog.csdn.net/robinsonmhj/article/details/36184863

机器列表

机器IP 机器名 192.168.0.135 db1 192.168.0.136 monitor 192.168.0.137 db2 虚拟IP 作用 192.168.0.138 writter 192.168.0.139 reader 192.168.0.140 reader

安装步骤

1. 在db1 和 db2 上安装mysql

yum install mysql-server

2. 修改配置文件

db1 的配置文件

[mysqld]datadir = /data/mysqlsocket=/data/mysql/mysql.sockuser=mysql<span style="font-size:18px;"><strong>server-id=1</strong></span>table_cache = 512sort_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size = 8Mmyisam_sort_buffer_size = 64Mthread_cache_size = 8query_cache_size = 64Mthread_concurrency = 8log-bin=mysql-binbinlog_format = mixedmax_connections=2048character_set_server=utf8wait_timeout=1800interactive_timeout=1800skip-show-databaseskip-name-resolvetmp_table_size = 512Mmax_heap_table_size = 512Mbinlog-ignore-db = mysqlreplicate-ignore-db = mysqlbinlog-ignore-db = information_schemareplicate-ignore-db = information_schemabinlog-ignore-db = performance_schemareplicate-ignore-db = performance_schemabinlog-ignore-db = testreplicate-ignore-db = testinnodb_data_home_dir=/data/mysql/innodbinnodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextendinnodb_log_group_home_dir=/data/mysql/innodb/loginnodb_file_per_table=1innodb_buffer_pool_size = 1000Minnodb_additional_mem_pool_size = 20Minnodb_log_file_size = 100Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 2innodb_lock_wait_timeout = 50default-storage-engine = MyISAM#default-storage-engine = INNODB[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysqldump]quickmax_allowed_packet = 16Msocket=/data/mysql/mysql.sock[mysql]no-auto-rehashsocket=/data/mysql/mysql.sock
Nach dem Login kopieren

db2 的配置文件

[mysqld]datadir = /data/mysqlsocket=/data/mysql/mysql.sockuser=mysql<span style="font-size:18px;"><strong>server-id=2</strong></span>table_cache = 512sort_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size = 8Mmyisam_sort_buffer_size = 64Mthread_cache_size = 8query_cache_size = 64Mthread_concurrency = 8log-bin=mysql-binbinlog_format = mixedmax_connections=2048character_set_server=utf8wait_timeout=1800interactive_timeout=1800skip-show-databaseskip-name-resolvetmp_table_size = 512Mmax_heap_table_size = 512Mbinlog-ignore-db = mysqlreplicate-ignore-db = mysqlbinlog-ignore-db = information_schemareplicate-ignore-db = information_schemabinlog-ignore-db = performance_schemareplicate-ignore-db = performance_schemabinlog-ignore-db = testreplicate-ignore-db = testinnodb_data_home_dir=/data/mysql/innodbinnodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextendinnodb_log_group_home_dir=/data/mysql/innodb/loginnodb_file_per_table=1innodb_buffer_pool_size = 1000Minnodb_additional_mem_pool_size = 20Minnodb_log_file_size = 100Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 2innodb_lock_wait_timeout = 50default-storage-engine = MyISAM#default-storage-engine = INNODB[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysqldump]quickmax_allowed_packet = 16Msocket=/data/mysql/mysql.sock[mysql]no-auto-rehashsocket=/data/mysql/mysql.sock
Nach dem Login kopieren

3. 在db1和db2 上分别建立复制,监控用户

    GRANT REPLICATION CLIENT                 ON *.* TO &#39;mmm_monitor&#39;@&#39;192.168.0.136&#39; IDENTIFIED BY &#39;monitor&#39;;      GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO &#39;mmm_agent&#39;@&#39;192.168.0.%&#39;   IDENTIFIED BY &#39;agent&#39;;      GRANT REPLICATION SLAVE                  ON *.* TO &#39;replication&#39;@&#39;192.168.0.%&#39; IDENTIFIED BY &#39;replication&#39;;   
Nach dem Login kopieren

4. 把db1和db2互相设置成master和slave

4.1 在db1上执行,mysql命令

CHANGE MASTER TO master_host=&#39;192.168.0.137&#39;, master_port=3306, master_user=&#39;replication&#39;,master_password=&#39;replication&#39;, master_log_file=&#39;mysql-bin.000006&#39;, master_log_pos=106;注意:<span></span><pre name="code" class="html">master_log_file和master_log_pos的值通过如下命令察看在db2上执行如下mysql命令 show master status
Nach dem Login kopieren
4.2 在db2上执行,mysql命令
CHANGE MASTER TO master_host=&#39;192.168.0.135&#39;, master_port=3306, master_user=&#39;replication&#39;,master_password=&#39;replication&#39;, master_log_file=&#39;mysql-bin.000006&#39;, master_log_pos=106;注意:<span></span><pre name="code" class="html">master_log_file和master_log_pos的值通过如下命令察看在db1上执行如下mysql命令 show master status 
Nach dem Login kopieren

5. 在db1和db2上安装mysql-mmm-agent

yum install mysql-mmm-agent*

6. 在monitor上安装mysql-mmm-monitor

yum install mysql-mmm-monitor*

7. 修改配置文件

在db1,db2和monitor上修改

/etc/mysql-mmm/mmm_common.conf,修改内容如下

active_master_role      writer<host default>    cluster_interface       eth0    pid_path                /var/run/mysql-mmm/mmm_agentd.pid    bin_path                /usr/libexec/mysql-mmm/    replication_user        replication    replication_password    replication    agent_user              mmm_agent    agent_password          agent</host><host db1>    ip      192.168.0.135    mode    master    peer    db2</host><host db2>    ip      192.168.0.137    mode    master   peer    db1</host><role writer>    hosts   db1,db2    ips     192.168.0.138    mode    exclusive</role><role reader>    hosts   db1,db2    ips     192.168.0.139,192.168.0.140    mode    balanced</role>
Nach dem Login kopieren
修改配置文件

/etc/mysql-mmm/mmm_agent.conf

db1上的内容如下

include mmm_common.conf# The &#39;this&#39; variable refers to this server.  Proper operation requires # that &#39;this&#39; server (db1 by default), as well as all other servers, have the # proper IP addresses set in mmm_common.conf.<span style="font-size:18px;"><strong>this db1</strong></span>
Nach dem Login kopieren
db2上的内容如下
include mmm_common.conf# The &#39;this&#39; variable refers to this server.  Proper operation requires # that &#39;this&#39; server (db1 by default), as well as all other servers, have the # proper IP addresses set in mmm_common.conf.<span style="font-size:18px;"><strong>this db2</strong></span>
Nach dem Login kopieren

修改配置monitor文件

/etc/mysql-mmm/mmm_mon.conf,内容如下

include mmm_common.conf<monitor>    ip                  <span style="font-size:18px;"><strong>192.168.0.136</strong></span>    pid_path            /var/run/mysql-mmm/mmm_mond.pid    bin_path            /usr/libexec/mysql-mmm    status_path         /var/lib/mysql-mmm/mmm_mond.status    ping_ips            <span style="font-size:18px;"><strong>192.168.0.135,192.168.0.137</strong></span>    auto_set_online     60    # The kill_host_bin does not exist by default, though the monitor will    # throw a warning about it missing.  See the section 5.10 "Kill Host    # Functionality" in the PDF documentation.    #    # kill_host_bin     /usr/libexec/mysql-mmm/monitor/kill_host    #</monitor><host default>    monitor_user        mmm_monitor    monitor_password    monitor</host>debug 0
Nach dem Login kopieren

8.在db1,db2上启动agent

    # cd /etc/init.d/      # chkconfig mysql-mmm-agent on      # service mysql-mmm-agent start  
Nach dem Login kopieren
9. 在monitor上启动monitor
    # cd /etc/init.d/      # chkconfig mysql-mmm-monitor on      # service mysql-mmm-monitor start  
Nach dem Login kopieren

10. 在monitor上察看

mmm_control -show status

10.2 把一台机器上线

mmm_control set_online db1

10.3 试验

把db1上的mysql停掉 service mysqld stop

察看状态mmm_control -show status,db1上的写ip应该飘到db2上

参考

http://blog.csdn.net/mydeman/article/details/6845567

http://hi.baidu.com/viewehsoitfmyzr/item/5024bec2ef02ccd196445280

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage