MySQL主從備份

來源:互聯網
上載者:User

標籤:mysql   主從備份   高可用 雙機熱備

MySQL雙機熱備

環境說明

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C1/wKioL1RE0zbAm9B1AAJWSS3H_Mc796.jpg" title="1.jpg" alt="wKioL1RE0zbAm9B1AAJWSS3H_Mc796.jpg" />

Msql主備結構

1、Master:

Mysql主節點,Master接收到來自Slave的IO進程的請求後,通過負責複製的IO進程根據請求資訊讀取制定日誌指定位置之後的日誌資訊,返回給Slave 的IO進程。返回資訊中除了日誌所包含的資訊之外,還包括本次返回的資訊已經到Master端的bin-log檔案的名稱以及bin-log的位置;

2、Slave:

Slave節點, Slave的IO進程接收到資訊後,將接收到的日誌內容依次添加到Slave端的relay-log檔案的最末端,並將讀取到的Master端的 bin-log的檔案名稱和位置記錄到master-info檔案中,以便在下一次讀取的時候能夠清楚的告訴Masterbin-log的位置。

1、MySQL主伺服器

系統:CentOS 6.2

IP:192.168.1.251

主機名稱:MySQLMaster

MySQL 版本:mysql-5.5.22

 

2、MySQL從伺服器

系統:CentOS 6.2

IP:192.168.1.252

主機名稱:MySQLSlave

MySQL 版本:mysql-5.5.22

一、配置MySQL 主從伺服器

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C1/wKioL1RE00Tie8-dAAWWTrGltR0552.jpg" title="2.png" alt="wKioL1RE00Tie8-dAAWWTrGltR0552.jpg" />

修改兩台伺服器的IP    然後使用rpm包安裝好mysql資料庫,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C1/wKioL1RE07eTVL4PAAIyNUeA_CM597.jpg" title="3.png" alt="wKioL1RE07eTVL4PAAIyNUeA_CM597.jpg" />

使用mysql–u root –p 登入  密碼預設為空白,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C1/wKioL1RE08PRc1jpAABpoOyKMWA691.jpg" title="4.png" alt="wKioL1RE08PRc1jpAABpoOyKMWA691.jpg" />

建立資料庫smiledb;

#create database smiledb;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C0/wKiom1RE04WC2GgFAAEg0g2EbQw606.jpg" title="5.png" alt="wKiom1RE04WC2GgFAAEg0g2EbQw606.jpg" />

授權使用者rsync只能從192.168.1.252 這個IP

訪問主伺服器192.168.1.251 上面的資料庫,並且只具有Database Backup的許可權,

# grant replication slave on *.* to ‘rsync‘@‘192.168.1.252‘ identified by ‘123456‘ with grant option;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C1/wKioL1RE0-uCR7lpAACReTE_GE0845.jpg" title="6.png" alt="wKioL1RE0-uCR7lpAACReTE_GE0845.jpg" />

重新整理系統授權表,  

#flush privileges;

備忘:在匯出之前可以先進入MySQL 控制台執行下面命令

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C0/wKiom1RE066SmDtZAACDnxQCKbw818.jpg" title="7.png" alt="wKiom1RE066SmDtZAACDnxQCKbw818.jpg" />

 資料庫唯讀鎖定命令,防止匯出資料庫的時候有資料寫入,

#flush tables withread lock;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C0/wKiom1RE07-DT-nmAAB4lsRb0Is394.jpg" title="8.png" alt="wKiom1RE07-DT-nmAAB4lsRb0Is394.jpg" />

#在MySQL主服務

器進行操作,匯出資料庫smiledb 到/root/smile.sql

#mysql -u root -p smiledb > /root/smile.sql

將備份的smile.sql 上傳至從伺服器(上傳大家都會我就不示範)

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/C0/wKiom1RE09yy55O1AABaIqGCfSI751.jpg" title="9.png" alt="wKiom1RE09yy55O1AABaIqGCfSI751.jpg" />

在從伺服器先建立smiledb庫;

#create database smiledb;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C0/wKiom1RE1GeCRjBHAABQfNKuQLQ235.jpg" title="8補.png" alt="wKiom1RE1GeCRjBHAABQfNKuQLQ235.jpg" />

使用 use smildb;進入庫

#use smiledb;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/C1/wKioL1RE1MzRhb0kAAGC6RP-Glg050.jpg" title="10.png" alt="wKioL1RE1MzRhb0kAAGC6RP-Glg050.jpg" />

匯入備份檔案到從資料庫,

#source /root/smile.sql

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C0/wKiom1RE1KSCeKIgAACBJqGDKxk307.jpg" title="11.png" style="float:none;" alt="wKiom1RE1KSCeKIgAACBJqGDKxk307.jpg" />

測試在從伺服器上登入到主伺服器,

二、配置MySQL (主)--伺服器的my.cnf 檔案

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C1/wKioL1RE1O6zf7qsAAKTM5zGrsQ981.jpg" title="12.png" style="float:none;" alt="wKioL1RE1O6zf7qsAAKTM5zGrsQ981.jpg" />

,修改my.cnf檔案,(上面描述的非常詳細)

將主伺服器 /usr/share/mysql/my-my-large.cnf修改為my.cnf並且移動到/etc/ 目錄下

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C0/wKiom1RE1KXR3cX7AACpNNM-LMw251.jpg" title="13.png" style="float:none;" alt="wKiom1RE1KXR3cX7AACpNNM-LMw251.jpg" />

然後重啟MySQL

#service mysql restart

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C1/wKioL1RE1O_xH2syAAFTuyjByHw776.jpg" title="14.png" style="float:none;" alt="wKioL1RE1O_xH2syAAFTuyjByHw776.jpg" />

再次進入mysql控制台,使用    show master status;      必須把庫鎖住否則會出現變動

查看master資料庫當前正在使用的二進位日誌及當前執行二進位日誌位置;

三、配置MySQL (從)--伺服器的my.cnf 檔案

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C0/wKiom1RE1KWTk323AAJujk3M5w8485.jpg" title="15.png" style="float:none;" alt="wKiom1RE1KWTk323AAJujk3M5w8485.jpg" />

,修改my.cnf檔案,(上面描述的非常詳細)

將從伺服器  /usr/share/mysql/my-my-large.cnf修改為my.cnf並且移動到/etc/ 目錄下

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C1/wKioL1RE1O_gf2ZoAAC0zKgdoZA027.jpg" title="16.png" style="float:none;" alt="wKioL1RE1O_gf2ZoAAC0zKgdoZA027.jpg" />

然後重啟MySQL

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/C1/wKioL1RE1O-wMdGdAACB_p-OIjk661.jpg" title="17.png" style="float:none;" alt="wKioL1RE1O-wMdGdAACB_p-OIjk661.jpg" />

進入mysql控制台   停止slave同步進程 #   slave stop

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/C0/wKiom1RE1KWAWPCpAAE8wMlvaUA024.jpg" title="18.png" style="float:none;" alt="wKiom1RE1KWAWPCpAAE8wMlvaUA024.jpg" />

執行同步語句;

#change master to master_host=‘192.168.1.210‘,master_user=‘rsync‘, master_password=‘123456‘,master_port=5656,  master_log_file=‘mysql-bin.000001‘,master_log_pos=107;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/C0/wKiom1RE1cGTuTNrAAB5ph5xXWE070.jpg" title="19.png" alt="wKiom1RE1cGTuTNrAAB5ph5xXWE070.jpg" />

開啟slave同步資訊;

#slave start

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C1/wKioL1RE1PDi7PHEAAB2S37RauE160.jpg" title="20.png" style="float:none;" alt="wKioL1RE1PDi7PHEAAB2S37RauE160.jpg" />

完成後別忘記解除主伺服器庫的鎖定;

 #unlock tables;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4C/C0/wKiom1RE1KixJghaAAJoTXQN7bs034.jpg" title="21.png" style="float:none;" alt="wKiom1RE1KixJghaAAJoTXQN7bs034.jpg" />

最後使用             SHOW SLAVE STATUS\G             查看同步資訊;

注意查看:

Slave_IO_Running: Yes            Slave_SQL_Running: Yes

以上這兩個參數的值為Yes,即說明配置成功!

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4C/C1/wKioL1RE1PLSul0oAAE90I628pA967.jpg" title="22.png" style="float:none;" alt="wKioL1RE1PLSul0oAAE90I628pA967.jpg" />

進入主伺服器 建立test表  查看從伺服器是否同步過來;

# use smiledb;#create table test ( id int not null primary key,namechar(20) );

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4C/C1/wKioL1RE1PKwogm7AAQW64Y8lUs654.jpg" title="23.png" style="float:none;" alt="wKioL1RE1PKwogm7AAQW64Y8lUs654.jpg" />

show tables;                 #查看smiledb 表結構,會看到有一個建立的表test,表示資料庫同步成功

至此,MySQL 資料庫配置主從伺服器實現雙機熱備執行個體教程完成。


                注意哦:需要同步那些資料庫 記得在my.cnf中自己添加哦















本文出自 “Linux營運” 部落格,請務必保留此出處http://linuxdarker.blog.51cto.com/8340258/1565975

MySQL主從備份

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.