Heim Datenbank MySQL-Tutorial mysql主从备份_MySQL

mysql主从备份_MySQL

Jun 01, 2016 pm 01:50 PM
二进制 最好 服务器

bitsCN.com

一、准备服务器 

由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。

我们假设主服务器(以下简称Master)和从服务器(以下简称Slave)的版本都是5.0.63。 

假设同步Master的主机名为:A(IP:192.168.0.1),Slave主机名为:B(IP:192.168.0.2),2个MySQL的basedir目录都是/usr/local/mysql,datadir都是:/var/mysql。 

二、设置同步服务器 

1、设置同步Master 

修改 my.cnf 文件,在 
# Replication Master Server (default) 
# binary logging is required for replication 
添加如下内容: 

Java代码  收藏代码
  1. log-bin=mysql-bin  
  2. server-id = 1  
  3. binlog-do-db=test  
  4. binlog-ignore-db=mysql  



重启MySQL,创建一个MySQL帐号为同步专用 

Sql代码  收藏代码
  1. GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* TO backup@192.168.0.2 IDENTIFIED BY 'slavepass';  
  2. FLUSH PRIVILEGES ;  



复制数据库: 

Sql代码  收藏代码
  1. FLUSH TABLES WITH READ LOCK;  


锁定表清除写入操作。 

Sql代码  收藏代码
  1. SHOW MASTER STATUS;  


File列显示日志名,而Position显示偏移量,记录备用。 
备份数据库,建议对于MYI存储的MYSQL采用直接文件复制,效率会好很多。备份完解锁。 

Sql代码  收藏代码
  1. UNLOCK TABLES;  



备份后对于从服务器导入数据库 

以上复制过程也可以用mysqldump,如果数据库在提供服务,必须加入--lock-all-tables以保证数据为同一时间的。加入--master-data=1在dump时会记录binlog名称和偏移值,以CHANGE MASTER TO形式存在文件中,这样导入slave后不用自己设置master的binlog文件和偏移值了。 

2、设置同步Slave 

修改my.cnf文件,添加 

Java代码  收藏代码
  1. server-id = 2  
  2. master-host = 192.168.0.1  
  3. master-user = backup  
  4. master-password = slavepass  
  5. master-port = 3306  
  6.   
  7. replicate-ignore-db=mysql  
  8. replicate-do-db=test  



server-id不能与master相同 

重启MySQL 

3、启动同步 

在主服务器A MySQL命令符下: 

Sql代码  收藏代码
  1. show master status;  


显示(当然这个是我机器的情况,你的不可能跟我一样哈,只是个例子): 
+------------------+----------+-------------------+------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+-------------------+------------------+ 
| mysql-bin.000028 | 313361 | test | mysql | 
+------------------+----------+-------------------+------------------+ 

在从服务器B MySQL命令符下: 

Sql代码  收藏代码
  1. slave stop;  
  2. MySQL> CHANGE MASTER TO  
  3. -> MASTER_HOST='master_host_name',  
  4. -> MASTER_USER='replication_user_name',  
  5. -> MASTER_PASSWORD='replication_password',  
  6. -> MASTER_LOG_FILE='recorded_log_file_name',  
  7. -> MASTER_LOG_POS=recorded_log_position;  
  8. slave start;  



用show slave status;看一下从服务器的同步情况 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
如果都是yes,那代表已经在同步 

往表里面写点数据测试一下看是否同步成功,如果不成功,绝对不是你的RP问题,再检查一下操作步骤! 


4、设置双向同步 


其实也就是A->B单向同步的反向操作!双向同步,就这么简单啦! 

三、同步错误处理 

发现mysql slave服务器经常因为一些特殊字符或者符号产生的更新语句报错,整个同步也会因此而卡在那,最初的办法只是手动去出错的机器,执行下面三条sql语句,跳过错误即可。 

Sql代码  收藏代码
  1. slave stop;  
  2. set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;  
  3. slave start;  



四、备份底层知识 

1、binlog 
mysql的binlog记录了数据库的所有操作,比如我有个新的数据库bbs,建立数据库时候也开启了binlog,那么mysql会在var目录生成个mysql-bin.000001,这个文件记录了对数据库bbs的所有操作sql命令。每个binlog文件默认1G,超过了会自动换到mysql-bin.000002。mysql-bin.index记录了所有mysql-bin的名字。 

mysql-bin.index示例: 

Java代码  收藏代码
  1. ./mysql-bin.000001  
  2. ./mysql-bin.000002  
  3. ./mysql-bin.000003  
  4. ./mysql-bin.000004  
  5. ./mysql-bin.000005  
  6. ./mysql-bin.000006  
  7. ./mysql-bin.000007  
  8. ./mysql-bin.000008  
  9. ./mysql-bin.000009  
  10. ./mysql-bin.000010  



数据主从备份其实就是master把binlog发给slave,然后slave在本地执行这些sql语句。 

2、master.info 
master.info文件存在于slave的var目录,记录了master的信息。 
master.info示例: 

Java代码  收藏代码
  1. 15  
  2. mysql-bin.000105  #master的binlog文件  
  3. 498027148         #偏移值  
  4. 192.168.0.1  
  5. backup  
  6. slavepass  
  7. 3306  
  8. 60  
  9. 0  
  10.   
  11.   
  12.   
  13.   
  14.   
  15. 0  



3、relay-log.info 
relay-log.info文件存在于slave的var目录,记录了slave执行binlog文件情况的信息。 
relay-log.info示例: 

Java代码  收藏代码
  1. ./lab-relay-bin.000050     #slave存放master的binlog的文件  
  2. 210263408                               #slave偏移值  
  3. mysql-bin.000105  
  4. 498027148  
  5. 2  



从master的mysql-bin.000105发送信息写到lab-relay-bin.000050里,slave再从lab-relay-bin.000050取sql语句执行。

bitsCN.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So lösen Sie das Problem, dass die eMule-Suche keine Verbindung zum Server herstellen kann So lösen Sie das Problem, dass die eMule-Suche keine Verbindung zum Server herstellen kann Jan 25, 2024 pm 02:45 PM

Lösung: 1. Überprüfen Sie die eMule-Einstellungen, um sicherzustellen, dass Sie die richtige Serveradresse und Portnummer eingegeben haben. 2. Überprüfen Sie die Netzwerkverbindung, stellen Sie sicher, dass der Computer mit dem Internet verbunden ist, und setzen Sie den Router zurück Wenn Ihre Einstellungen kein Problem mit der Netzwerkverbindung sind, müssen Sie überprüfen, ob der Server online ist. 4. Aktualisieren Sie die eMule-Version, besuchen Sie die offizielle Website von eMule und laden Sie die neueste Version der eMule-Software herunter. 5. Suchen Sie Hilfe.

Detaillierte Erläuterung der CentOS-Installationssicherung und des CentOS-Installationsservers Detaillierte Erläuterung der CentOS-Installationssicherung und des CentOS-Installationsservers Feb 13, 2024 pm 08:40 PM

Als LINUX-Benutzer müssen wir häufig verschiedene Software und Server unter CentOS installieren. In diesem Artikel wird detailliert beschrieben, wie Sie Fuse installieren und einen Server unter CentOS einrichten, damit Sie die entsprechenden Vorgänge reibungslos abschließen können. Die Installation von FuseFuse unter CentOS ist ein User-Space-Dateisystem-Framework, mit dem unprivilegierte Benutzer über ein benutzerdefiniertes Dateisystem auf das Dateisystem zugreifen und es bedienen können. Die Installation von Fuse unter CentOS ist sehr einfach. Befolgen Sie einfach die folgenden Schritte: 1. Öffnen Sie das Terminal und melden Sie sich an Root-Benutzer. 2. Verwenden Sie den folgenden Befehl, um das Sicherungspaket zu installieren: „yuminstallfuse3“. Bestätigen Sie die Eingabeaufforderungen während des Installationsvorgangs und geben Sie „y“ ein, um fortzufahren. 4. Installation abgeschlossen

Lösung für die Unfähigkeit, eine Verbindung zum RPC-Server herzustellen und den Desktop nicht aufzurufen Lösung für die Unfähigkeit, eine Verbindung zum RPC-Server herzustellen und den Desktop nicht aufzurufen Feb 18, 2024 am 10:34 AM

Was soll ich tun, wenn der RPC-Server nicht verfügbar ist und auf dem Desktop nicht darauf zugegriffen werden kann? In den letzten Jahren sind Computer und das Internet in jeden Winkel unseres Lebens vorgedrungen. Als Technologie für zentralisierte Datenverarbeitung und gemeinsame Nutzung von Ressourcen spielt Remote Procedure Call (RPC) eine entscheidende Rolle in der Netzwerkkommunikation. Manchmal kann es jedoch vorkommen, dass der RPC-Server nicht verfügbar ist und der Desktop nicht aufgerufen werden kann. In diesem Artikel werden einige mögliche Ursachen für dieses Problem beschrieben und Lösungen bereitgestellt. Zuerst müssen wir verstehen, warum der RPC-Server nicht verfügbar ist. RPC-Server ist ein

So konfigurieren Sie Dnsmasq als DHCP-Relay-Server So konfigurieren Sie Dnsmasq als DHCP-Relay-Server Mar 21, 2024 am 08:50 AM

Die Rolle eines DHCP-Relays besteht darin, empfangene DHCP-Pakete an einen anderen DHCP-Server im Netzwerk weiterzuleiten, auch wenn sich die beiden Server in unterschiedlichen Subnetzen befinden. Durch die Verwendung eines DHCP-Relays können Sie einen zentralen DHCP-Server im Netzwerkzentrum bereitstellen und ihn verwenden, um allen Netzwerksubnetzen/VLANs dynamisch IP-Adressen zuzuweisen. Dnsmasq ist ein häufig verwendeter DNS- und DHCP-Protokollserver, der als DHCP-Relay-Server konfiguriert werden kann, um die Verwaltung dynamischer Hostkonfigurationen im Netzwerk zu unterstützen. In diesem Artikel zeigen wir Ihnen, wie Sie dnsmasq als DHCP-Relay-Server konfigurieren. Inhaltsthemen: Netzwerktopologie Konfigurieren statischer IP-Adressen auf einem DHCP-Relay D auf einem zentralen DHCP-Server

Best-Practice-Leitfaden zum Erstellen von IP-Proxyservern mit PHP Best-Practice-Leitfaden zum Erstellen von IP-Proxyservern mit PHP Mar 11, 2024 am 08:36 AM

Bei der Netzwerkdatenübertragung spielen IP-Proxyserver eine wichtige Rolle. Sie helfen Benutzern dabei, ihre echten IP-Adressen zu verbergen, ihre Privatsphäre zu schützen und die Zugriffsgeschwindigkeit zu verbessern. In diesem Artikel stellen wir den Best-Practice-Leitfaden zum Aufbau eines IP-Proxyservers mit PHP vor und stellen spezifische Codebeispiele bereit. Was ist ein IP-Proxyserver? Ein IP-Proxyserver ist ein Zwischenserver zwischen dem Benutzer und dem Zielserver. Er fungiert als Übertragungsstation zwischen dem Benutzer und dem Zielserver und leitet die Anforderungen und Antworten des Benutzers weiter. Durch die Verwendung eines IP-Proxyservers

Was soll ich tun, wenn ich das Spiel nicht betreten kann, während der Epic-Server offline ist? Lösung, warum Epic das Spiel nicht offline betreten kann Was soll ich tun, wenn ich das Spiel nicht betreten kann, während der Epic-Server offline ist? Lösung, warum Epic das Spiel nicht offline betreten kann Mar 13, 2024 pm 04:40 PM

Was soll ich tun, wenn ich das Spiel nicht betreten kann, während der Epic-Server offline ist? Dieses Problem muss bei vielen Freunden aufgetreten sein. Wenn diese Meldung angezeigt wird, kann das Problem normalerweise durch Störungen durch das Netzwerk und die Sicherheitssoftware verursacht werden Ich möchte die Lösung mit Ihnen teilen und hoffe, dass das heutige Software-Tutorial Ihnen bei der Lösung des Problems helfen kann. Was ist zu tun, wenn der Epic-Server nicht auf das Spiel zugreifen kann, wenn er offline ist: 1. Möglicherweise wird er durch Sicherheitssoftware gestört. Schließen Sie die Spielplattform und die Sicherheitssoftware und starten Sie sie dann neu. 2. Der zweite Grund ist, dass das Netzwerk zu stark schwankt. Versuchen Sie, den Router neu zu starten, um zu sehen, ob er funktioniert. Wenn die Bedingungen in Ordnung sind, können Sie versuchen, das 5g-Mobilfunknetz für den Betrieb zu verwenden. 3. Dann könnten es noch mehr sein

So berechnen Sie die binäre Arithmetik So berechnen Sie die binäre Arithmetik Jan 19, 2024 pm 04:38 PM

Binäre Arithmetik ist eine Operationsmethode, die auf Binärzahlen basiert. Zu ihren Grundoperationen gehören Addition, Subtraktion, Multiplikation und Division. Die binäre Arithmetik umfasst neben Grundoperationen auch logische Operationen, Verschiebungsoperationen und andere Operationen. Zu den logischen Operationen gehören UND, ODER, NICHT und andere Operationen, und Verschiebungsoperationen umfassen Linksverschiebungs- und Rechtsverschiebungsoperationen. Für diese Operationen gelten entsprechende Regeln und Operandenanforderungen.

Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server? Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server? Mar 28, 2024 pm 02:39 PM

Wie installiere ich die PHPFFmpeg-Erweiterung auf dem Server? Die Installation der PHPFFmpeg-Erweiterung auf dem Server kann uns dabei helfen, Audio- und Videodateien in PHP-Projekten zu verarbeiten und Funktionen wie Kodierung, Dekodierung, Bearbeitung und Verarbeitung von Audio- und Videodateien zu implementieren. In diesem Artikel erfahren Sie, wie Sie die PHPFFmpeg-Erweiterung auf dem Server installieren, sowie spezifische Codebeispiele. Zunächst müssen wir sicherstellen, dass PHP und FFmpeg auf dem Server installiert sind. Wenn FFmpeg nicht installiert ist, können Sie die folgenden Schritte ausführen, um FFmpe zu installieren

See all articles