Centos6.3是mysql資料庫主從複本備份筆記(1/2)

來源:互聯網
上載者:User

 

MySQL主從複製結構是基於mysql bin-log日誌基礎上,從庫通過開啟IO進程收到主庫的bin-log日誌增量

資訊,並儲存到本地relay log,而後再通過開啟MYSQL進程從relay log上擷取的增量資訊並翻譯成SQL語

句後寫到從資料庫。

主從複製結構,實際上可以實現兩個功能:

1.從庫充當主庫的Database Backup執行個體

2.讀寫分離,主庫負責正常讀寫資料,從庫只負責讀資料

實際生產環境,因為很多應用實際讀資料庫的次數遠大於寫資料庫的次數,所以在項目開發初期,編寫

程式時做一個判斷,對所有讀的操作全部推到從庫,若從庫無法擷取資料,則再向主庫擷取資料,從而

在一定意義上實現讀寫分離,緩解主庫的IO壓力。

所以生產環境下推薦使用這種架構。


系統內容:centos6.3 x64

資料庫:  mysql-5.6.10


mysql master:192.168.100.90

mysql slave:192.168.100.91

 


MySQL主從複製結構是基於mysql bin-log日誌基礎上,從庫通過開啟IO進程收到主庫的bin-log日誌增量

資訊,並儲存到本地relay log,而後再通過開啟MYSQL進程從relay log上擷取的增量資訊並翻譯成SQL語

句後寫到從資料庫。

主從複製結構,實際上可以實現兩個功能:

1.從庫充當主庫的Database Backup執行個體

2.讀寫分離,主庫負責正常讀寫資料,從庫只負責讀資料

實際生產環境,因為很多應用實際讀資料庫的次數遠大於寫資料庫的次數,所以在項目開發初期,編寫

程式時做一個判斷,對所有讀的操作全部推到從庫,若從庫無法擷取資料,則再向主庫擷取資料,從而

在一定意義上實現讀寫分離,緩解主庫的IO壓力。

所以生產環境下推薦使用這種架構。


系統內容:centos6.3 x64

資料庫:  mysql-5.6.10


mysql master:192.168.100.90

mysql slave:192.168.100.91


 


一.部署環境:


1.關閉iptables和SELINUX

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------


2.安裝配置mysql傳送門:http://www.showerlee.com/archives/6


二.主mysql配置:(mysql master)


修改mysql設定檔:

# vi /etc/my.cnf

添加:

-----------------

# Replication Master Server

# bin日誌路徑

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

# 伺服器ID號

server-id = 1

# 忽略mysql系統庫複製

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

------------

重啟服務

# service mysqld restart


登入mysql後台:

# mysql -u root -p123456

查看此刻登入帳號:

> select user();


在master為slave添加同步帳號:

> grant replication slave on *.* to 'slave'@'192.168.100.91' identified by '123456';


查看建立的使用者:

> select user.host from mysql.user;


查看許可權:

> show grants for 'slave'@'192.168.100.91';


mysql鎖表唯讀(其他賬戶登入mysql後無法進行寫表操作,防止備份資料庫後,主mysql表更新,導致和

從資料庫內容不一致)

> flush tables with read lock;


查看鎖表倒計時時間:

> show variables like '%timeout%';

------------------------

....


wait_timeout                | 28800

------------------------


將master的資料庫表全部備份匯出,並傳送到slave伺服器上。


# /usr/local/mysql/bin/mysqldump -u root -p123456 --opt  --flush-logs  --all-database >

/root/allbak.sql

# cd ~

# scp allbak.sql root@192.168.100.91:/root


查看mysql位移量(資料庫如果有寫操作,位移值會遞增)

# mysql -u root -p123456 -e "show master status"

----------------------

+------------+----------+--------------+------------------+-------------------+

| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------+----------+--------------+------------------+-------------------+

| bin.000009 |     120 |              |                  |                   |

+------------+----------+--------------+------------------+-------------------+

----------------------

保證FILE列和Position列與從庫配置一致:

 

三.從mysql配置(mysql slave)


修改mysql設定檔:

# vi /etc/my.cnf

添加:

--------------------

# Replication Slave Server

# bin日誌路徑(無需開bin-log日誌)

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

server-id=2

# 唯讀:

read-only

# 忽略mysql系統庫複製

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

---------------------


重啟服務

# service mysqld restart


恢複server的資料庫到slave

#/usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql


首頁 1 2 末頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.