MySQL数据库主从服务器文档的部署与切换详解


  本文标签:MySQL数据库 主从服务器 文档切换

  MySQL数据库中如何实现主从服务器文档的部署呢?主从服务器之间怎样进行文档切换呢?本文我们主要就介绍了这一部分的内容,接下来我们就开始介绍  。

  一、部署文档

  1.确保在主服务器和从服务器上安装的MySQL版本一致.

  2.在主服务器上为从服务器设置一个连接账户

  mysql GRANT REPLICATION SLAVE, SUPER, RELOAD ON *.* TO username@10.1.1.4 IDENTIFIED BY use  。

  主服务器IP: 10.1.1.3

  从服务器IP: 10.1.1.4

  1.确保在主服务器和从服务器上安装的MySQL版本一致.

  2.在主服务器上为从服务器设置一个连接账户

  

  1. mysql> GRANT REPLICATION SLAVE, SUPER, RELOAD ON *.* TO IDENTIF  
  2.  
  3. IED BY userpassword; 

  

  3. 执行FLUSH TABLES WITH READ LOCK 进行锁表

  

  1. mysql> FLUSH TABLES WITH READ LOCK; 

  

  4. 让客户程序保持运行,发出FLUSH TABLES语句让读锁定保持有效  。(如果退出客户程序,锁被释放)  。进入主服务器的数据目录,然后执行命令:

  

  1. shell> tar -cvf /tmp/mysql-snapshot.tar .   
  2.  
  3. shell> tar -xvf /tmp/mysql-snapshot.tar 

  

  读取主服务器上当前的二进制日志名(File)和偏移量值(Position),并记录下来:

  mysql > SHOW MASTER STATUS; | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | | mysql-bin.003 | 73 | test | manual,mysql | 取得快照并记录日志名和偏移量后,可以在主服务器上重新启用写活动:

  mysql> UNLOCK TABLES;

  5. 确保主服务器主机上my.cnf文件的[mysqld]部分包括一个log_bin选项

  

  1. [mysqld]  
  2.  
  3. Log_bin=mysql-bin  
  4.  
  5. server-id=1 

  

  6. 停止用于从服务器的服务器并在其my.cnf文件中添加下面的行:

  

  1. [mysqld]  
  2.  
  3. server-id=2 

  

  7.如果对主服务器的数据进行二进制备份,启动从服务器之前将它复制到从服务器的数据目录中  。

  确保对这些文件和目录的权限正确  。服务器 MySQL运行的用户必须能够读写文件,如同在主服务器上一样  。

  

  8. 用--skip-slave-start选项启动从服务器,以便它不立即尝试连接主服务器  。

  9. 在从服务器上执行下面的语句:

  

  1. mysql> CHANGE MASTER TO MASTER_HOST=10.1.1.3,MASTER_USER=username,MASTER_PASSWORD=userpassword,  
  2.  
  3. MASTER_LOG_FILE=recorded_log_file_name,MASTER_LOG_POS=recorded_log_position

  

  9. 启动从服务器线程:

  mysql> START SLAVE;

  10.验证部署是否成功

  

  1. mysql> show slave status\G  
  2.  
  3. *************************** 1. row ***************************  
  4.  
  5. Slave_IO_State: Waiting for master to send event  
  6.  
  7. Master_Host: 10.1.1.3  
  8.  
  9. Master_User: rep_slave  
  10.  
  11. Master_Port: 3306  
  12.  
  13. Connect_Retry: 60  
  14.  
  15. Master_Log_File: mysql-bin.000058  
  16.  
  17. Read_Master_Log_Pos: 27324573  
  18.  
  19. Relay_Log_File: cacti-11-111-relay-bin.000008  
  20.  
  21. Relay_Log_Pos: 27324718  
  22.  
  23. Relay_Master_Log_File: mysql-bin.000058  
  24.  
  25. Slave_IO_Running: Yes  
  26.  
  27. Slave_SQL_Running: Yes  
  28.  
  29. Replicate_Do_DB:  
  30.  
  31. Replicate_Ignore_DB: mysql  
  32.  
  33. Replicate_Do_Table:  
  34.  
  35. Replicate_Ignore_Table:  
  36.  
  37. Replicate_Wild_Do_Table:  
  38.  
  39. Replicate_Wild_Ignore_Table:  
  40.  
  41. Last_Errno: 0  
  42.  
  43. Last_Error:  
  44.  
  45. Skip_Counter: 0  
  46.  
  47. Exec_Master_Log_Pos: 27324573  
  48.  
  49. Relay_Log_Space: 27325025  
  50.  
  51. Until_Condition: None  
  52.  
  53. Until_Log_File:  
  54.  
  55. Until_Log_Pos: 0  
  56.  
  57. Master_SSL_Allowed: No  
  58.  
  59. Master_SSL_CA_File:  
  60.  
  61. Master_SSL_CA_Path:  
  62.  
  63. Master_SSL_Cert:  
  64.  
  65. Master_SSL_Cipher:  
  66.  
  67. Master_SSL_Key:  
  68.  
  69. Seconds_Behind_Master: 0  
  70.  
  71. Master_SSL_Verify_Server_Cert: No  
  72.  
  73. 1 row in set (0.00 sec) 

  当Slave_IO_Running和Slave_SQL_Running都显示Yes的时候,表示同步成功  。

  二、切换文档

  1. 确保从服务器已经处理了中继日志中的所有语句  。 mysql> STOP SLAVE IO_THREAD  。

  2.然后检查SHOW PROCESSLIST语句的输出,直到你看到Has read all relay log  。

  3.当从服务器都执行完这些,它们可以被重新配置为一个新的设置  。

  4.在被提升为主服务器的从服务器上,发出 STOP SLAVE和RESET MASTER和RESET SLAVE操作  。

  5. 然后重启mysql服务  。

  6.在主服务器上RESET MASTER  。然后CHANGE MASTER TO MASTER_HOST=10.1.1.4,MASTER_USER=rep_slave,MASTER_PASSWORD=userpassword;切换完成  。

  关于MySQL数据库主从服务器文档的部署及主从文档切换的知识就介绍到这里了,希望本次的介绍能够对您有所收获  。