Heim >Datenbank >MySQL-Tutorial >MySQL – Datenbank-Dual-Machine-Hot-Standby-Konfigurationsmethode und Codebeispiele
MySQL-Datenbank verfügt nicht über einen inkrementellen Sicherungsmechanismus. Wenn die Datenmenge zu groß ist, ist die Sicherung ein großes Problem. Glücklicherweise bietet die MySQL-Datenbank einen Master-Slave-Sicherungsmechanismus, der tatsächlich alle Daten in der Master-Datenbank gleichzeitig in die Sicherungsdatenbank schreibt.
1. Die MySQL-Datenbank verfügt nicht über einen inkrementellen Sicherungsmechanismus. Glücklicherweise bietet die MySQL-Datenbank einen Master-Slave-Sicherungsmechanismus, der tatsächlich alle Daten in der Master-Datenbank gleichzeitig in die Sicherungsdatenbank schreibt. Implementieren Sie ein Hot-Backup der MySQL-Datenbank.
2. Um ein Dual-Machine-Hot-Backup zu implementieren, müssen Sie zunächst die Versionsanforderungen des Master-Slave-Datenbankservers verstehen. Um Hot-Standby zu erreichen, muss die MySQL-Version höher als 3.2 sein. Ein weiteres Grundprinzip besteht darin, dass die Datenbankversion der Slave-Datenbank höher sein kann als die Datenbankversion des Master-Servers, jedoch nicht niedriger als die Datenbankversion des Master-Servers sein kann.
server-id=1 //数据库的id这个应该默认是1就不用改动 log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称 binlog-do-db=db_name //记录日志的数据库 binlog-ignore-db=db_name //不记录日志的数据库und legen Sie dann das Benutzerkonto für die Synchronisierung der Datenbank fest
mysql> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT FILE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
b. Sperren Sie die aktuellen Datenbanken und sichern Sie die aktuellen Daten.
mysql> FLUSH TABLES WITH READ LOCK;c. Überprüfen Sie den Status des Masterservers
mysql> show master status\G; +---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | mysql-bin.003 | 73 | test | manual,mysql | +---------------+----------+--------------+------------------+d. Aktivieren Sie dann die Datenbanksperre
mysql> UNLOCK TABLES;
server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。 master-host=db-master.mycompany.com //主服务器的IP地址或者域名 master-port=3306 //主数据库的端口号 master-user=pertinax //同步数据库的用户 master-password=freitag //同步数据库的密码 master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差 report-host=db-slave.mycompany.com //报告错误的服务器
eingegeben
mysql> slave stop; //停止slave的服务e. Starten Sie den Thread, um die Datenbank zu synchronisieren
mysql> CHANGE MASTER TO -> MASTER_HOST='master_host_name', //主服务器的IP地址 -> MASTER_PORT=3306, //主服务器端口 -> MASTER_USER='replication_user_name', //同步数据库的用户 -> MASTER_PASSWORD='replication_password', //同步数据库的密码 -> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数) -> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)Überprüfen Sie die Synchronisierung der Datenbank. Wenn die Synchronisierung erfolgreich sein kann, herzlichen Glückwunsch!
mysql> slave start;Überprüfen Sie den Status der Master- und Slave-Server
mysql> SHOW PROCESSLIST\G //可以查看mysql的进程看看是否有监听的进程
1. Master-Datenbank sperren
mysql> FLUSH TABLES WITH READ LOCK;3. Überprüfen Sie den Protokolldateinamen des Masters Datenbank und die Position der Protokolldatei
mysql> slave stop;4. Entsperren Sie die Master-Datenbank
show master status; +---------------+----------+--------------+------------------+ | File | Position | Binlog_do_db | Binlog_ignore_db | +---------------+----------+--------------+------------------+ | louis-bin.001 | 79 | | mysql | +---------------+----------+--------------+------------------+5. Aktualisieren Sie die Master-Datenbankinformationen in der Slave-Datenbank
mysql> UNLOCK TABLES;6. Starten Sie den Slave der Slave-Datenbank
mysql> CHANGE MASTER TO -> MASTER_HOST='master_host_name', //主服务器的IP地址 -> MASTER_PORT=3306, //主服务器端口 -> MASTER_USER='replication_user_name', //同步数据库的用户 -> MASTER_PASSWORD='replication_password', //同步数据库的密码 -> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数) -> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
Das obige ist der detaillierte Inhalt vonMySQL – Datenbank-Dual-Machine-Hot-Standby-Konfigurationsmethode und Codebeispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!