溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

發(fā)布時(shí)間:2020-07-12 10:23:11 來源:網(wǎng)絡(luò) 閱讀:667 作者:pcdog 欄目:MySQL數(shù)據(jù)庫

mariadb? 主從復(fù)制

mariadb主從復(fù)制概述:

復(fù)制解決的基本問題是讓一臺服務(wù)器的數(shù)據(jù)和另外的服務(wù)器保持同步。

一臺主服務(wù)器可以連接多臺從服務(wù)器,并且從服務(wù)器也可以反過來作主服務(wù)器。

主服務(wù)器和從服務(wù)器可以位于不同的網(wǎng)絡(luò)拓?fù)渲?,還能對整臺服務(wù)器、特定的數(shù)據(jù)庫,甚至特定的表進(jìn)行復(fù)制。

1.2 . 主從復(fù)制解決的問題

???????? Mariadb復(fù)制技術(shù)有以下一些特點(diǎn):

???????? (1)??? 數(shù)據(jù)分布 (Data distribution )

???????? (2)??? 負(fù)載平衡(load balancing)

???????? (3)??? 備份(Backups)

???????? (4)??? 高可用性和故障轉(zhuǎn)移 High availability and failover

1.3 主從復(fù)制如何工作

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

整體上來說,復(fù)制有3個(gè)步驟:?

?????? (1)??? master將改變記錄到二進(jìn)制日志(binary log)中(這些記錄叫做二進(jìn)制日志事件,binary log events);

?????? (2)??? slave將master的binary log events拷貝到它的中繼日志(relay log);

?????? (3)??? slave重做中繼日志中的事件,修改salve上的數(shù)據(jù)。

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

mariadb主從復(fù)制中:

第一步:master記錄二進(jìn)制日志。在每個(gè)事務(wù)更新數(shù)據(jù)完成之前,master在二日志記錄這些改變。Mariadb將事務(wù)寫入二進(jìn)制日志,即使事務(wù)中的語句都是交叉執(zhí)行的。在事件寫入二進(jìn)制日志完成后,master通知存儲引擎提交事務(wù)。

第二步:slave將master的binary log拷貝到它自己的中繼日志。首先,slave開始一個(gè)工作線程——I/O線程。I/O線程在master上打開一個(gè)普通的連接,然后開始binlog dump process。Binlog dump process從master的二進(jìn)制日志中讀取事件,如果已經(jīng)執(zhí)行完master產(chǎn)生的所有文件,它會睡眠并等待master產(chǎn)生新的事件。I/O線程將這些事件寫入中繼日志。

第三步:SQL slave thread(SQL線程)處理該過程的最后一步。SQL線程從中繼日志讀取事件,并重新執(zhí)行其中的事件而更新slave的數(shù)據(jù),使其與master中的數(shù)據(jù)一致。

yum install mariadb-server -y

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

systemctl? start? mariadb

mysql -h 127.0.0.1 -u root -p

MariaDB [(none)]> create database pcdog

MariaDB [(none)]> use pcdog;

MariaDB [pcdog]> create table test1(id int);

MariaDB [pcdog]> show tables;

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

systemctl? stop? mariadb

配置mariadb主要同步的數(shù)據(jù)庫名字并開啟對應(yīng)的二進(jìn)制日志

vim /etc/my.cnf # my.cnf 是mariadb 主配置文件

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0 #在原配置文件中,添加以下內(nèi)容:

log-bin=mariadblog

server-id=1

binlog-do-db=pcdog

注釋:

log-bin=mariadblog #啟用二進(jìn)制日志,默認(rèn)存在/var/lib/mariadb 下面

server-id=1 #本機(jī)數(shù)據(jù)庫ID 唯一標(biāo)示。

binlog-do-db=pcdog #可以被從服務(wù)器復(fù)制的庫。二進(jìn)制需要同步的數(shù)據(jù)庫名

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

systemctl start mariadb

mysql

grant replication slave on *.* to slave@192.168.10.130 identified by "123456";

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

slave上驗(yàn)證登錄

mysql -h 192.168.10.129 -u slave -p123456

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

從主機(jī)dump出所有db

mysqldump -u root -p -A > all1.sql

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

scp過去

scp all1.sql root@192.168.10.130:/root

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

從機(jī)導(dǎo)入

mysql -u root -p < all1.sql

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

vi /etc/my.cnf

加一行

server-id=2

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

到主機(jī)上查看

mysql

show master status;

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

從機(jī)上設(shè)置主人

mysql

change master to master_host='192.168.10.129', master_user='slave', master_password='123456', master_port=3306, master_log_file='mariadblog.000001', master_log_pos=397, master_connect_retry=10;

MariaDB [(none)]> start slave; #啟動從服務(wù)

MariaDB [(none)]> show slave status \G #查看從服務(wù)器狀態(tài)

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

Slave_IO_Running: Yes #可以看到這兩個(gè)Yes,說明從服務(wù)器安裝成功。

Slave_SQL_Running: Yes

Slave_IO_Running :一個(gè)負(fù)責(zé)與主機(jī)的io通信

Slave_SQL_Running:負(fù)責(zé)自己的slave mariadb進(jìn)程

主機(jī)上插入數(shù)據(jù)

insert into test1 values(1);

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

從機(jī)上查看下

mariadb 主從服務(wù)器實(shí)驗(yàn)熱備1

查看日志

show binlog events;

總結(jié):

1、 主從同步的原理

2、 主從同步的配置

3、 測試主從同步是否成功

實(shí)戰(zhàn)2:mariadb 主主 雙向主從復(fù)制

實(shí)戰(zhàn)3:mariadb 主從讀寫分離

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI