日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql 导出dmp文件_一文带你了解MySQL主从复制(Master-Slave)

發(fā)布時(shí)間:2023/12/9 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 导出dmp文件_一文带你了解MySQL主从复制(Master-Slave) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.復(fù)制概述

Mysql內(nèi)建的復(fù)制功能是構(gòu)建大型,高性能應(yīng)用程序的基礎(chǔ)。將Mysql的數(shù)據(jù)分布到多個(gè)系統(tǒng)上去,這種分布的機(jī)制,是通過(guò)將Mysql的某一臺(tái)主機(jī)的數(shù)據(jù)復(fù)制到其它主機(jī)(slaves)上,并重新執(zhí)行一遍來(lái)實(shí)現(xiàn)的。復(fù)制過(guò)程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫(xiě)入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接主服務(wù)器時(shí),它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。

請(qǐng)注意當(dāng)你進(jìn)行復(fù)制時(shí),所有對(duì)復(fù)制中的表的更新必須在主服務(wù)器上進(jìn)行。否則,你必須要小心,以避免用戶(hù)對(duì)主服務(wù)器上的表進(jìn)行的更新與對(duì)從服務(wù)器上的表所進(jìn)行的更新之間的沖突。

1.1 mysql支持的復(fù)制類(lèi)型:

  (1)基于語(yǔ)句的復(fù)制:在主服務(wù)器上執(zhí)行的SQL語(yǔ)句,在從服務(wù)器上執(zhí)行同樣的語(yǔ)句。MySQL默認(rèn)采用基于語(yǔ)句的復(fù)制,效率比較高。一旦發(fā)現(xiàn)沒(méi)法精確復(fù)制時(shí),會(huì)自動(dòng)選著基于行的復(fù)制。
  (2)基于行的復(fù)制:把改變的內(nèi)容復(fù)制過(guò)去,而不是把命令在從服務(wù)器上執(zhí)行一遍. 從mysql5.0開(kāi)始支持
  (3)混合類(lèi)型的復(fù)制: 默認(rèn)采用基于語(yǔ)句的復(fù)制,一旦發(fā)現(xiàn)基于語(yǔ)句的無(wú)法精確的復(fù)制時(shí),就會(huì)采用基于行的復(fù)制。

1.2 復(fù)制解決的問(wèn)題

MySQL復(fù)制技術(shù)有以下一些特點(diǎn):
(1) 數(shù)據(jù)分布 (Data distribution )
(2) 負(fù)載平衡(load balancing)
(3) 備份(Backups)
(4) 高可用性和容錯(cuò)行 High availability and failover

1.3 復(fù)制如何工作

整體上來(lái)說(shuō),復(fù)制有3個(gè)步驟:

(1) master將改變記錄到二進(jìn)制日志(binary log)中(這些記錄叫做二進(jìn)制日志事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日志(relay log);
(3) slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。

2 .復(fù)制配置

有兩臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器Master和slave,Master為主服務(wù)器,slave為從服務(wù)器,初始狀態(tài)時(shí),Master和slave中的數(shù)據(jù)信息相同,當(dāng)Master中的數(shù)據(jù)發(fā)生變化時(shí),slave也跟著發(fā)生相應(yīng)的變化,使得master和slave的數(shù)據(jù)信息同步,達(dá)到備份的目的。

要點(diǎn):

負(fù)責(zé)在主、從服務(wù)器傳輸各種修改動(dòng)作的媒介是主服務(wù)器的二進(jìn)制變更日志,這個(gè)日志記載著需要傳輸給從服務(wù)器的各種修改動(dòng)作。因此,主服務(wù)器必須激活二進(jìn)制日志功能。從服務(wù)器必須具備足以讓它連接主服務(wù)器并請(qǐng)求主服務(wù)器把二進(jìn)制變更日志傳輸給它的權(quán)限。

一、安裝MySQL

說(shuō)明:在兩臺(tái)MySQL服務(wù)器192.168.21.169和192.168.21.168上分別進(jìn)行如下操作,安裝MySQL 5.5.22

二、配置MySQL主服務(wù)器(192.168.21.169)

mysql -u root -p #進(jìn)入MySQL控制臺(tái)create database AMT_DB; #建立數(shù)據(jù)庫(kù)AMT_DBinsert into mysql.user(Host,User,Password) values ('localhost','archermind',password('123456')); #創(chuàng)建用戶(hù)archermind,建立MySQL主從數(shù)據(jù)庫(kù)同步用戶(hù)replication密碼123456 flush privileges; #刷新系統(tǒng)授權(quán)表#授權(quán)用戶(hù)replication只能從192.168.21.168這個(gè)IP訪問(wèn)主服務(wù)器192.168.21.169上面的數(shù)據(jù)庫(kù),并且只具有數(shù)據(jù)庫(kù)備份的權(quán)限grant replication slave on *.* to 'replication'@'192.168.21.168' identified by '123456' with grant option;復(fù)制代碼

三、把MySQL主服務(wù)器192.168.21.169中的數(shù)據(jù)庫(kù)AMT_DB導(dǎo)入到MySQL從服務(wù)器192.168.21.168中

1、導(dǎo)出數(shù)據(jù)庫(kù)AMT_DB

mysqldump -u root -p AMT_DB > /home/replication.sql #在MySQL主服務(wù)器進(jìn)行操作,導(dǎo)出數(shù)據(jù)庫(kù)AMT_DB到/home/replication.sql復(fù)制代碼

備注:在導(dǎo)出之前可以先進(jìn)入MySQL控制臺(tái)執(zhí)行下面命令

flush tables with read lock; #數(shù)據(jù)庫(kù)只讀鎖定命令,防止導(dǎo)出數(shù)據(jù)庫(kù)的時(shí)候有數(shù)據(jù)寫(xiě)入unlock tables; #解除鎖定復(fù)制代碼

2、導(dǎo)入數(shù)據(jù)庫(kù)到MySQL從服務(wù)器

mysql -u root -p #進(jìn)入從服務(wù)器MySQL控制臺(tái)create database AMT_DB; #創(chuàng)建數(shù)據(jù)庫(kù)use AMT_DB #進(jìn)入數(shù)據(jù)庫(kù)source /home/replication.sql #導(dǎo)入備份文件到數(shù)據(jù)庫(kù)mysql -u replication -h 192.168.21.169 -p #測(cè)試在從服務(wù)器上登錄到主服務(wù)器復(fù)制代碼

四、配置MySQL主服務(wù)器的my.cnf文件

#vim /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內(nèi)容 server-id=1 #設(shè)置服務(wù)器id,為1表示主服務(wù)器,注意:如果原來(lái)的配置文件中已經(jīng)有這一行,就不用再添加了。 log_bin=mysql-bin #啟動(dòng)MySQ二進(jìn)制日志系統(tǒng),注意:如果原來(lái)的配置文件中已經(jīng)有這一行,就不用再添加了。 binlog-do-db=AMT_DB #需要同步的數(shù)據(jù)庫(kù)名,如果有多個(gè)數(shù)據(jù)庫(kù),可重復(fù)此參數(shù),每個(gè)數(shù)據(jù)庫(kù)一行 binlog-ignore-db=mysql #不同步mysql系統(tǒng)數(shù)據(jù)庫(kù)#service mysqld restart #重啟MySQL復(fù)制代碼mysql -u root -p #進(jìn)入mysql控制臺(tái)show master status; 查看主服務(wù)器,出現(xiàn)以下類(lèi)似信息+------------------+----------+--------------+------------------+|File |Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 | 7131 | AMT_DB |mysql |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)復(fù)制代碼

注意:這里記住File的值:mysql-bin.000001和Position的值:7131,后面會(huì)用到。

五、配置MySQL從服務(wù)器的my.cnf文件

#vim /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內(nèi)容server-id=2 #配置文件中已經(jīng)有一行server-id=1,修改其值為2,表示為從數(shù)據(jù)庫(kù)log-bin=mysql-bin #啟動(dòng)MySQ二進(jìn)制日志系統(tǒng),注意:如果原來(lái)的配置文件中已經(jīng)有這一行,就不用再添加了。replicate-do-db=AMT_DB #需要同步的數(shù)據(jù)庫(kù)名,如果有多個(gè)數(shù)據(jù)庫(kù),可重復(fù)此參數(shù),每個(gè)數(shù)據(jù)庫(kù)一行replicate-ignore-db=mysql #不同步mysql系統(tǒng)數(shù)據(jù)庫(kù):wq! #保存退出#service mysqld restart #重啟MySQL復(fù)制代碼

注意:MySQL 5.1.7版本之后,已經(jīng)不支持把master配置屬性寫(xiě)入my.cnf配置文件中了,只需要把同步的數(shù)據(jù)庫(kù)和要忽略的數(shù)據(jù)庫(kù)寫(xiě)入即可。

mysql -u root -p #進(jìn)入MySQL控制臺(tái)slave stop; #停止slave同步進(jìn)程change master to master_host='192.168.21.169',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=7131; #執(zhí)行同步語(yǔ)句slave start; #開(kāi)啟slave同步進(jìn)程SHOW SLAVE STATUSG #查看slave同步信息,出現(xiàn)以下內(nèi)容*************************** 1. row *************************** Slave_IO_State:Waiting for master to send event Master_Host:192.168.21.169 Master_User:replication Master_Port:3306 Connect_Retry:60 Master_Log_File:mysql-bin.000001 Read_Master_Log_Pos:7131 Relay_Log_File:MySQLSlave-relay-bin.000001 Relay_Log_Pos:253 Relay_Master_Log_File:mysql-bin.000001 Slave_IO_Running:Yes Slave_SQL_Running:Yes Replicate_Do_DB:AMT_DB Replicate_Ignore_DB:mysql Replicate_Do_Table: Replicate_Ignore_Table:1 row in set (0.00 sec)復(fù)制代碼

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上這兩個(gè)參數(shù)的值為Yes,即說(shuō)明配置成功!

六、測(cè)試MySQL主從服務(wù)器雙機(jī)熱備是否成功

1、進(jìn)入MySQL主服務(wù)器

mysql -u root-p #進(jìn)入主服務(wù)器MySQL控制臺(tái)use AMT_DB #進(jìn)入數(shù)據(jù)庫(kù)CREATETABLE test ( id int not null primary key,name char(20)); #創(chuàng)建test復(fù)制代碼

2、進(jìn)入MySQL從服務(wù)器

mysql -u root-p #進(jìn)入MySQL控制臺(tái)use AMT_DB #進(jìn)入數(shù)據(jù)庫(kù)show tables; #查看AMT_DB表結(jié)構(gòu),會(huì)看到有一個(gè)新建的表test,表示數(shù)據(jù)庫(kù)同步成功復(fù)制代碼

至此,MySQL數(shù)據(jù)庫(kù)配置主從服務(wù)器實(shí)現(xiàn)雙機(jī)熱備

總結(jié)

以上是生活随笔為你收集整理的mysql 导出dmp文件_一文带你了解MySQL主从复制(Master-Slave)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。