您好,登錄后才能下訂單哦!
mariadb? 主從復制
mariadb主從復制概述:
復制解決的基本問題是讓一臺服務器的數據和另外的服務器保持同步。
一臺主服務器可以連接多臺從服務器,并且從服務器也可以反過來作主服務器。
主服務器和從服務器可以位于不同的網絡拓撲中,還能對整臺服務器、特定的數據庫,甚至特定的表進行復制。
1.2 . 主從復制解決的問題
???????? Mariadb復制技術有以下一些特點:
???????? (1)??? 數據分布 (Data distribution )
???????? (2)??? 負載平衡(load balancing)
???????? (3)??? 備份(Backups)
???????? (4)??? 高可用性和故障轉移 High availability and failover
1.3 主從復制如何工作
整體上來說,復制有3個步驟:?
?????? (1)??? master將改變記錄到二進制日志(binary log)中(這些記錄叫做二進制日志事件,binary log events);
?????? (2)??? slave將master的binary log events拷貝到它的中繼日志(relay log);
?????? (3)??? slave重做中繼日志中的事件,修改salve上的數據。
mariadb主從復制中:
第一步:master記錄二進制日志。在每個事務更新數據完成之前,master在二日志記錄這些改變。Mariadb將事務寫入二進制日志,即使事務中的語句都是交叉執行的。在事件寫入二進制日志完成后,master通知存儲引擎提交事務。
第二步:slave將master的binary log拷貝到它自己的中繼日志。首先,slave開始一個工作線程——I/O線程。I/O線程在master上打開一個普通的連接,然后開始binlog dump process。Binlog dump process從master的二進制日志中讀取事件,如果已經執行完master產生的所有文件,它會睡眠并等待master產生新的事件。I/O線程將這些事件寫入中繼日志。
第三步:SQL slave thread(SQL線程)處理該過程的最后一步。SQL線程從中繼日志讀取事件,并重新執行其中的事件而更新slave的數據,使其與master中的數據一致。
yum install mariadb-server -y
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;
systemctl? stop? mariadb
配置mariadb主要同步的數據庫名字并開啟對應的二進制日志
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 #在原配置文件中,添加以下內容:
log-bin=mariadblog
server-id=1
binlog-do-db=pcdog
注釋:
log-bin=mariadblog #啟用二進制日志,默認存在/var/lib/mariadb 下面
server-id=1 #本機數據庫ID 唯一標示。
binlog-do-db=pcdog #可以被從服務器復制的庫。二進制需要同步的數據庫名
systemctl start mariadb
mysql
grant replication slave on *.* to slave@192.168.10.130 identified by "123456";
slave上驗證登錄
mysql -h 192.168.10.129 -u slave -p123456
從主機dump出所有db
mysqldump -u root -p -A > all1.sql
scp過去
scp all1.sql root@192.168.10.130:/root
從機導入
mysql -u root -p < all1.sql
vi /etc/my.cnf
加一行
server-id=2
到主機上查看
mysql
show master status;
從機上設置主人
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; #啟動從服務
MariaDB [(none)]> show slave status \G #查看從服務器狀態
Slave_IO_Running: Yes #可以看到這兩個Yes,說明從服務器安裝成功。
Slave_SQL_Running: Yes
Slave_IO_Running :一個負責與主機的io通信
Slave_SQL_Running:負責自己的slave mariadb進程
主機上插入數據
insert into test1 values(1);
從機上查看下
查看日志
show binlog events;
總結:
1、 主從同步的原理
2、 主從同步的配置
3、 測試主從同步是否成功
實戰2:mariadb 主主 雙向主從復制
實戰3:mariadb 主從讀寫分離
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。