成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

什么是MYSQL的AB復(fù)制原理

下面講講關(guān)于什么是MySQL的AB復(fù)制原理,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完什么是MYSQL的AB復(fù)制原理這篇文章你一定會有所受益。

文昌網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,文昌網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為文昌上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的文昌做網(wǎng)站的公司定做!

Myslq AB復(fù)制

做AB復(fù)制之前前提時(shí)兩邊的數(shù)據(jù)必須一樣,Mysql復(fù)制默認(rèn)的是異步復(fù)制,master將事物事件寫入binlog,但不知道slave何時(shí)接受且已接受,在異步復(fù)制的機(jī)制的情況下,如果master宕機(jī),事務(wù)在master上已提交,但很可能這些事物沒有傳到任何slave上。此時(shí)salve有可能丟失事務(wù)。

官方半同步的復(fù)制的概念:

1  當(dāng)slave主機(jī)連接到master時(shí)。能夠查看是否處于半同步復(fù)制的機(jī)制。

2  當(dāng)master上開啟半同步復(fù)制的功能時(shí),至少應(yīng)該有一個(gè)slave開啟其功能。

3  .當(dāng)一個(gè)事務(wù)的事件都已寫入其relay-log中且已刷新到磁盤上,Slave才會告知已收到

同步復(fù)制:Master提交事務(wù),直到事務(wù)在所有的Slave都已提交,此時(shí)才會返回客戶端,事務(wù)執(zhí)行完畢。缺點(diǎn):完成一個(gè)事務(wù)可能會有很大的延遲。

異步復(fù)制:當(dāng)Slave準(zhǔn)備好才會向Master請求binlog。缺點(diǎn):不能保證一些事件都能夠被所有的Slave所接收。

半同步復(fù)制:半同步復(fù)制工作的機(jī)制處于同步和異步之間,Master的事務(wù)提交阻塞,只要一個(gè)Slave已收到該事務(wù)的事件且已記錄。它不會等待所有的Slave都告知已收到,且它只是接收,并不用等其完全執(zhí)行且提交

實(shí)驗(yàn) server2 :master

     Server3 :slave

mysql-5.1.71版本

[root@server2 ~]# yum install mysql-server -y

[root@server3~]# yum install mysql-server -y

[root@server2 ~]# /etc/init.d/mysqld start

[root@server2 ~]# vim /etc/my.cnf

在[mysqld]添加以下參數(shù)

8 log-bin=mysql-bin     啟動二進(jìn)制日志

9 binlog-do-db=westos  二進(jìn)制日志同步的數(shù)據(jù)庫名稱

10 server-id=1         必須是1到2^32-1之間的一個(gè)正整數(shù)數(shù)

[root@server2 ~]# /etc/init.d/mysqld restart         在重啟服務(wù)的過程中如果失敗,要去/var/log/mysql.log查看原因,一般來說都是上面修改的配置文件錯(cuò)了,如果不是在看其他原因,時(shí)在不行據(jù)刪除/var/lib/mysql 里面的文件,然后初始化重啟。

[root@server2 mysql]# mysql_secure_installation 修改密碼

[root@server2 mysql]# mysql -pwestos

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 11

Server version: 5.1.71-log Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

 

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

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

2 rows in set (0.00 sec)

 

mysql> create database weCtrl-C -- exit!

Aborted

[root@server2 mysql]# mysql -pwestos

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 5.1.71-log Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

 

mysql> show master status; 查看master狀態(tài)

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

| File             |Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000001 |     737 | westos       |                  |

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

1 row in set (0.00 sec)

 

mysql> create database westos;  創(chuàng)建一個(gè)共享的庫

Query OK, 1 row affected (0.00 sec)

 

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

| westos             |

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

3 rows in set (0.00 sec)

 

mysql> grant replication slave on *.* tolinux@'172.25.137.3'identified by 'redhat';

Query OK, 0 rows affected (0.00 sec)  授權(quán)個(gè)slave

 

mysql> Bye

里面有mysql-bin.00000x二進(jìn)制文件,記錄的是堆數(shù)據(jù)庫所有的操作,在對數(shù)據(jù)庫進(jìn)行備份的時(shí)候要用到這個(gè)文件。


什么是MYSQL的AB復(fù)制原理

[root@server2 mysql]# mysqlbinlog mysql-bin.000001  通過mysqlbinglog 來查看里面的內(nèi)容。

[root@server3 ~]# vim /etc/my.cnf

8 server-id=2

[root@server3 ~]# /etc/init.d/mysqld restart

[root@server3 ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.1.71 Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

 

mysql> show

    -> ;

ERROR 1064 (42000): You have an error in your SQL syntax; checkthe manual that corresponds to your MySQL server version for the right syntaxto use near '' at line 1

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

| test               |

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

3 rows in set (0.00 sec)

 

mysql> create database westos;

Query OK, 1 row affected (0.00 sec)

 

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

| test               |

| westos             |

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

4 rows in set (0.00 sec)

 

mysql> show slave stauts;

ERROR 1064 (42000): You have an error in your SQL syntax; checkthe manual that corresponds to your MySQL server version for the right syntaxto use near 'stauts' at line 1

mysql> show slave status;

Empty set (0.00 sec)

mysql> change master tomaster_host='172.25.137.2',master_user='linux',master_password='redhat',master_log_file='mysql-bin.000001',master_log_pos=975;

Query OK, 0 rows affected (0.81 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;     Slave_IO_Running,Slave_SQL_Running: 這兩個(gè)的狀態(tài)都是yes說明狀態(tài)良好。Slave_IO_Running如果這個(gè)是no可能是寫有問題,一般看看防火墻是否關(guān)閉,selinux是否為disabled

什么是MYSQL的AB復(fù)制原理

在master端加入表信息:

mysql> createtable student(username varchar(12) not null, number varchar(12) not null);

mysql> insertinto values('dog','111');

mysql> select *from student;

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

| username | number|

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

| dog      | 111   |

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

1 row in set (0.00sec)

在slave端

mysql> usewestos;

mysql> select *from student;

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

| username | number|

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

| dog      | 111   |

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

1 row in set (0.00sec)

 

這里面記錄了master端的信息

mysql-bin.000001  slave端的復(fù)制二進(jìn)制文件就來自master的這個(gè)文件。

什么是MYSQL的AB復(fù)制原理

[root@server2mysql]# mysqlbinlog mysql-bin.000001 查看對數(shù)據(jù)庫的操作。 

                      mysqlABC 復(fù)制

 

     A                 B                     C

Mastermaster         slave                   slave

  

B的數(shù)據(jù)來自master,C的數(shù)據(jù)來自B所以對B而言既是master又是slave,但是BC只做讀操作,不執(zhí)行寫,只有A執(zhí)行寫。

實(shí)驗(yàn) server2 :master

     Server3 :slave

     Server4:slave

[root@server4 ~]#yum install mysql-server -y

[root@server3mysql]# /etc/init.d/mysqld stop

[root@server3mysql]# vim /etc/my.cnf

什么是MYSQL的AB復(fù)制原理

[root@server3 mysql]# /etc/init.d/mysqld restart

[root@server4 ~]# vim /etc/my.cnf

在mysqld里加

什么是MYSQL的AB復(fù)制原理

[root@server4 ~]#/etc/init.d/mysqld start

Server3:

mysql> grantreplication slave on *.* to linux@'172.25.137.4' identified by 'redhat';

Query OK, 0 rowsaffected (0.00 sec)  給server4授權(quán)

[root@server4 ~]#mysql -h 172.25.137.3 -u linux -predhat  測試是否能連通server3

Server4  要向數(shù)據(jù)能同時(shí)存在,就必須給的環(huán)境一樣,在實(shí)驗(yàn)中同一個(gè)westos的庫里的數(shù)據(jù)一致就必須現(xiàn)有這個(gè)庫。

什么是MYSQL的AB復(fù)制原理

change master tomaster_host='172.25.137.3',master_user='linux',master_password='redhat',master_log_file='mysql-bin.000005',master_log_pos=106;  與server3同步。

[root@server2mysql]# mysqlbinlog mysql-bin.000001  在這個(gè)文件里找到在westos數(shù)據(jù)庫建表的那個(gè)命令,

975是指開始建表的數(shù)值,1120是這條命令結(jié)束的數(shù)值

還有一種是用時(shí)間找

什么是MYSQL的AB復(fù)制原理

[root@server2mysql]# mysqlbinlog --start-position=975 --stop-position=1224 mysql-bin.000001|less  這是通過數(shù)值查找master的wesos數(shù)據(jù)庫相關(guān)操作

[root@server2mysql]#  mysqlbinlog--start-datetime='2016-07-30 13:53:26' --stop-datetime='2016-07-30 13:55:10'mysql-bin.000001 |less 這是通過時(shí)間來查找master的wesos數(shù)據(jù)庫相關(guān)操作。

[root@server2mysql]#scp mysql-bin.000001 172.25.137.4:/mnt 把master這個(gè)二進(jìn)制文件發(fā)送給slave。

[root@server2mysql]# mysqldump -pwestos westos > backup.sql 把westos這個(gè)庫備份到backup.sql文件。

[root@server4 mnt]#ls

mysql-bin.000001

[root@server4 mnt]#mysqlbinlog --start-position=975 --stop-position=1224 mysql-bin.000001|mysql         把這個(gè)二進(jìn)制文件倒入到westos這個(gè)庫,使三個(gè)westos數(shù)據(jù)庫在一個(gè)環(huán)境下。

在master的westos數(shù)據(jù)庫上操作。

Mysql備份方式:

  1. 冷備:需要關(guān)閉服務(wù),且讀寫請求不允許。

  2. 熱備:服務(wù)正常,備份不影響。

  3. 溫備:服務(wù)正常,但是只允許讀不允許寫。 

    Mysql備份方法:

  4. :mysqldump  單線程,緩慢

  5. :mysqlpump 多線程,它的最小限度每張表可以綁一個(gè)線程

  6. :mydumpe 多線程,最小限度每張表可以綁多個(gè)線程

    對于以上什么是MYSQL的AB復(fù)制原理相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

分享標(biāo)題:什么是MYSQL的AB復(fù)制原理
分享網(wǎng)址:http://jinyejixie.com/article24/gdpeje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)網(wǎng)站策劃、標(biāo)簽優(yōu)化微信小程序、建站公司面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
安乡县| 大方县| 通榆县| 临桂县| 太谷县| 建宁县| 大洼县| 收藏| 怀柔区| 罗城| 九江市| 阿鲁科尔沁旗| 武冈市| 和平区| 安仁县| 奉贤区| 息烽县| 贺兰县| 南开区| 饶河县| 嘉鱼县| 华容县| 茂名市| 盈江县| 澜沧| 新和县| 定州市| 广西| 垣曲县| 庆城县| 福海县| 元谋县| 余庆县| 南澳县| 涟源市| 阜新市| 突泉县| 金昌市| 西峡县| 武城县| 乌拉特前旗|