CentOS下MYSQL數據庫的主從備份配置

        關於MYSQL主從備份,其實跟MYSQL主主互備的過程類似,最大的區別在主從備份中,主機不能複製從機的數據,所以主機一般用來專注於數據庫的業務操作,從機一般用來專注於數據庫的查詢操作。

        下面直接介紹主從配置:

        一、主從機環境以及軟件版本信息:

          1、主機系統:32位Centos 6.3 版本;

                兩個虛擬機:

                主機(master):IP地址: 192.168.31.139;

                從機(salver):IP地址: 192.168.31.137;

          2、MYSQL版本:mysql-5.5.11版;

          3、虛擬機版本:VMware® Workstation 9.0.0 build-812388;

          4、虛擬機與主機名稱和IP地址的設置:http://blog.csdn.net/limingzhong198/article/details/19919761

        二、配置過程:

          1、主機master與salver均關閉防火牆iptables,執行service iptables stop命令:

               

          2、設置SELINUX文件的SELINUX=disabled,如圖所示:

               

          3、在master和salver分別安裝MYSQL軟件:http://blog.csdn.net/limingzhong198/article/details/19823629

          4、主機(master)配置:

                A:在/usr/local/mysql目錄下建立MYSQL複製的日誌配置文件/usr/local/mysql/mysql-bin.log並賦予權限以及改變文件的所有者:

                      [root@master mysql] touch mysql-bin.log

                      [root@master mysql] chmod 755 mysql-bin.log

                      [root@master mysql] chown -R mysql:mysql .

                      配置結果如圖所示:

                     

                B:配置/etc/my.cnf文件:

                      [root@master mysql] vi /etc/my.cnf

                      在文件中添加如下屬性項:

                      log-bin = /usr/local/mysql/mysql-bin.log

                      binlog-ignore-db=mysql

                      binlog-ignore-db=information_schema

                C:啓動並登陸MYSQL系統:

                      [root@master mysql] service mysql start

                      顯示:Starting MySQL.... SUCCESS! 就表明啓動成功

                      [root@master mysql] mysql -u root -padmin

                      注:-p 表示密碼項,後面的'admin'表明root用戶的密碼是admin

                D:在主機master上添加主機salver的同步賬號:

                      mysql> grant replication slave on *.* to'slave'@'192.168.31.137' identified by 'admin';

                      執行如下命令查看:

                      

                      可以看見備份賬戶以及設置完成。下面對數據庫表加鎖只讀。

                      mysql鎖表只讀(其他賬戶登錄mysql後無法進行寫表操作,防止備份數據庫後,主mysql表更新,導致和從數據庫內容不一致)

                      mysql> flush tables with read lock;

                E:查看狀態:

                      [root@master mysql] mysql -u root -padmin -e "show master status"

                      結果如圖:

                     

                      注:File字段的日誌名稱(mysql-bin.000001)就是從機備份所需要的日誌文件。

          5、從機(salver)配置:

                A:在/usr/local/mysql目錄下建立MYSQL複製的日誌配置文件/usr/local/mysql/mysql-bin.log並賦予權限以及改變文件的所有者:

                      注:這一步驟與配置主機(master)完全一樣。

                B:配置/etc/my.cnf文件:

                      [root@salver mysql] vi /etc/my.cnf

                      在文件中添加或修改相應的配置項,如圖所示:

                      

                      注:log-bin被註釋是因爲主機不需要複製備份從機的數據。

                C:啓動並登陸MYSQL系統:

                      注:這一步驟與配置主機(master)完全一樣。

                D:在MYSQL的SHELL下執行如下圖命令:

                     

                      注:其中change master to master_host='192.168.31.139',

                                                                       master_user='slave',

                                                                       master_password='admin',

                                                                       master_log_file="mysql-bin.000001",

                                                                       master_log_pos=107 ;

                              中的master_log_file項就是前面提到的日誌複製備份所需的名稱。

          6、主機(salver)配置:

                A:解鎖數據庫:

                      mysql> unlock tables;

                B:查詢數據庫狀態:

                      mysql> show slave status \G

                      結果如圖:

                      

                      注:兩臺主機均出現如下內容,則主主配置成功:

                              Slave_IO_State: Waiting for master to send event

                              Slave_IO_Running: Yes

                              Slave_SQL_Running: Yes

                              如果出現Slave_IO_Running: Connecting的情況,則很可能是因爲防火牆未關閉的原因。

          7、測試過程:

                A:在主機上的test數據庫中,建立test表,並插入測試數據,在從機上查看是否備份成功;

                B:在從機上的test數據庫中,在test表插入測試數據,在主機上查看是否備份成功;

                C:主機的數據在從機的數據庫上備份成功,從機的數據在主機上沒有被複製備份,則說明配置成功。

                D:主機的數據在從機的數據庫上備份成功,從機的數據在主機上也被複製備份,則說明配置失敗。

                E:主機的數據在從機的數據庫上備份失敗,則說明配置失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章