基於RHEL6.0的mysql服務器複製的主從架構實現

基於RHEL6.0的mysql服務器複製的主從架構實現  mysql

說明:本文選用172.16.22.1做爲主服務器,172.16.22.3做爲從服務器


從服務器的mysql軟件版本應大於或等於主服務器的mysql軟件版本


主服務器與從服務器的server-id 應不一樣


mysql服務器的主從架構工做原理:


主服務器的dump線程將二進制日誌讀給從服務器的一個I/O線程;


從服務器的I/O線程將接收到的二進制日誌讀給中繼日誌;


從服務器的SQL線程一次將從中繼日誌中讀出一句,執行一次。這樣就實現了主服務數據的改變異步到從服務器上了。


 


1、準備條件:安裝mysql(本文選用相似於一種綠色軟件的方式安裝mysql,特色:方便、快捷)


1.在172.16.22.1主機上安裝mysql-5.5.20


(1).準備數據存放的文件系統


新建一個邏輯卷,並將其掛載至特定目錄。


增長一個sda5,id爲8e,先不要格式化。


# fdisk /dev/sda n e   +4G n   +2G t 5 8e p w # partprobe /dev/sda # pvcreate /dev/sda5 # vgcreate myvg /dev/sda5 # lvcreate -L 2G -n mysql myvg # mke2fs -j /dev/myvg/mysql # mkdir /mydata/data -pv # mount /dev/myvg/mysql /mydata 這裏假設其邏輯卷的掛載目錄爲/mydata,然後須要建立/mydata/data目錄作爲mysql數據的存放目錄。


(2).新建用戶以安全方式運行進程:


# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data (3).安裝並初始化mysql-5.5.20


# tar xf mysql-5.5.20-linux2.6-i686.tar.gz  -C /usr/local # cd /usr/local/ # ln -sv mysql-5.5.20-linux2.6-i686  mysql # cd mysql # chown -R mysql:mysql  . # scripts/mysql_install_db --user=mysql --datadir=/mydata/data # chown -R root  . (4).爲mysql提供主配置文件:


# cd /usr/local/mysql # cp support-files/my-large.cnf  /etc/my.cnf 並修改此文件中thread_concurrency的值爲你的CPU個數乘以2(因爲只有一顆CPU,因此這裏thread_concurrency = 2),另外還須要添加以下行指定mysql數據文件的存放位置:


thread_concurrency = 2


datadir = /mydata/data 


(5).爲mysql提供sysv服務腳本,並添加mysqld至服務列表,然後啓動服務測試。


# cd /usr/local/mysql # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld start爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還須要進行以下步驟:


(6).輸出mysql的man手冊至man命令的查找路徑:


編輯/etc/man.config,添加以下行便可:


MANPATH  /usr/local/mysql/man


(7).輸出mysql的頭文件至系統頭文件路徑/usr/include:


這能夠經過簡單的建立連接實現:


# ln -sv /usr/local/mysql/include  /usr/include/mysql (8)輸出mysql的庫文件給系統庫查找路徑, 然後讓系統從新載入系統庫:


# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf # ldconfig -v (9).修改PATH環境變量(直接在/etc/profile文件裏添加「PATH=$PATH:/usr/local/mysql/bin」便可),讓系統能夠直接使用mysql的相關命令:


# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin # source /etc/profile 2.在172.16.22.3主機上安裝mysql-5.5.22


(1) .新建用戶以安全方式運行進程:


# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M mysql (2).安裝並初始化mysql-5.5.22


# tar xvf mysql-5.5.22-linux2.6-i686.tar.gz  -C /usr/local # cd /usr/local/ # ln -sv mysql-5.5.22-linux2.6-i686  mysql # cd mysql # chown -R mysql:mysql  . # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data # chown -R root  . (3).爲mysql提供主配置文件:


# cd /usr/local/mysql # cp support-files/my-large.cnf  /etc/my.cnf 並修改此文件中thread_concurrency的值爲你的CPU個數乘以2(因爲只有一顆CPU,因此這裏thread_concurrency = 2),另外還須要添加以下行指定mysql數據文件的存放位置:


thread_concurrency = 2


datadir = /usr/local/mysql/data


(4).爲mysql提供sysv服務腳本,並添加mysqld至服務列表,然後啓動服務測試。


# cd /usr/local/mysql # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld start爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還須要進行以下步驟:


(5).輸出mysql的man手冊至man命令的查找路徑:


編輯/etc/man.config,添加以下行便可:


MANPATH  /usr/local/mysql/man


(6).輸出mysql的頭文件至系統頭文件路徑/usr/include:


這能夠經過簡單的建立連接實現:


# ln -sv /usr/local/mysql/include  /usr/include/mysql (7)輸出mysql的庫文件給系統庫查找路徑, 然後讓系統從新載入系統庫:


# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf # ldconfig -v (8).修改PATH環境變量(直接在/etc/profile文件裏添加「PATH=$PATH:/usr/local/mysql/bin」便可),讓系統能夠直接使用mysql的相關命令:


# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin # source /etc/profile 12
本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連接:http://www.linuxidc.com/Linux/2012-04/58566.htm
1.配置主服務器(172.16.22.1):


(1).查看/etc/my.cnf配置文件中是否啓動二進制日誌:


log-bin=mysql-bin   (默認狀況下都已經開啓,此時不須要作修改)


(2).創建複製權限用戶:


# mysql mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lh@’172.16.22.%’ IDENTIFIED BY ‘123456’; mysql> SHOW GRANTS FOR lh@’172.16.22.%’; 2.配置從服務器(172.16.22.3):


(1).編輯/etc/my.cnf配置文件,更改server-id使它和主服務器的server-id不同,關閉二進制日誌並打開中繼日誌,不容許從服務器寫操做:


# vim /etc/my.cnf


找到server-id,並改成


server-id = 11


找到 log-bin=mysql-bin 並禁用此項(在前面加上「#」便可)


在「#log-bin=mysql-bin」下面增長2項:


relay-log = relay-bin


relay-log-index = relay-bin.index


在[mysqld]段增長以下一項,不容許從服務器寫操做:


read_only=1


(2).在從服務器上指定主服務器:


# mysql mysql> FLUSH TABLES WITH READ LOCK;mysql> CHANGE MASTER TO      -> MASTER_HOST=’172.16.22.1’,      -> MASTER_USER=’lh’,      -> MASTER_PASSWORD=’123456’; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G 


若是看到方框內的兩項都爲‘yes’的話,說明你的從服務器已經正常啓動了。


3、對主從服務器進行測試


在172.16.22.1上執行以下操做:


# mysql mysql> show databases; 


在172.16.22.3執行以下操做:


# mysql mysql> show databases; 


此時能夠看到主從服務器的數據庫都是四個。


如今咱們在主服務器上建立一個數據庫testdb和表test,看從服務器上是否也有呢?


在172.16.22.1上執行以下操做:


# mysql mysql> create database testdb; mysql> use testdb; mysql> create table test (      -> Name varchar(30) not null,      -> Age char(3) not null ); 在172.16.22.3上查看是否有testdb數據庫以及test1表:


# mysql mysql> SHOW DATABASES; 


# mysql mysql> show tables; mysq> desc test; 


此時發如今172.16.22.3上有testdb數據庫和test表,說明mysql服務器複製的主從架構實現了。




本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連接:http://www.linuxidc.com/Linux/2012-04/58566p2.htm
本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連接:http://www.linuxidc.com/Linux/2012-04/58566p2.htm
本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連接:http://www.linuxidc.com/Linux/2012-04/58566p2.htm
本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連接:http://www.linuxidc.com/Linux/2012-04/58566p2.htm




rizhi 
前提條件: 
1)日誌服務器機器名:logserver,ip:192.168.1.117 


2)日誌客戶端機器名:logclientX(X指任一臺機器),ip:192.168.1.2 


一)配置日誌客戶端 


1)用本地文件解釋服務器名; 


echo "192.168.1.117 logserver" >>/etc/hosts  




2)修改配置日誌配置文件; 


echo "*.* @logserver" > /etc/syslog.conf 


注:機器上全部日誌均轉發到遠程logserver日誌服務器上; 


3)重啓syslog服務; 


service syslog restart 


4)查詢端口是否打開; 


[root @test ~]# netstat -tunl |grep 514 


udp 0 0 0.0.0.0:514 0.0.0.0:* 


二)配置日誌服務器端 


1)修改日誌配置參數文件/etc/sysconfig/syslog; 


SYSLOGD_OPTIONS="-r -m 0 " 


注:默認狀況沒有-r參數的; 


2)重啓syslog服務; 


service syslog restart 


3)查詢端口是否打開; 


[root @test ~]# netstat -tunl |grep 514 


udp 0 0 0.0.0.0:514 0.0.0.0:* 


三)測試 


1)在logclientX上 (演示登陸/退出) 


su - Oracle 


2)在logserver查看日誌 


[root @test ~]# tail -f /var/log/messages  本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連接:http://www.linuxidc.com/Linux/2007-07/6093.htm
相關文章
相關標籤/搜索