首页 > 数据库 > MySQL > 正文

安全删除mysql主从复制二进制日志技巧

2024-07-24 12:37:37
字体:
来源:转载
供稿:网友

mysql主从复制日志如果我们不小心很可能导致mysql启动不了同时导致主从配置出问题,下面我来介绍安全的删除mysql主从二进制日志的方法.

删除日志之前,先检查主从服务器当前使用的日志文件,代码如下:

  1. //首先登录 要删除日志的服务器的 mysql 终端 
  2. #mysql -u root -pxxxxx 
  3.  
  4. //检查复制主服务器状态 
  5. Mysql>show master status 
  6.  
  7. +------------------+-----------+--------------+----------------------------------------+ 
  8. | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB                       | 
  9. +------------------+-----------+--------------+----------------------------------------+ 
  10. | mysql-bin.000097 | 541677824 | www      | test,mysql,information_schema | 
  11. +------------------+-----------+-------------+----------------------------------------+ 

复制主服务器当前正在使用的日志文件是:mysql-bin.000097,代码如下:

  1. //检查复制从服务器状态 
  2. Mysql>show slave statusG 
  3.  
  4. *************************** 1. row *************************** 
  5.                Slave_IO_State: Waiting for master to send event 
  6.                   Master_Host: 202.102.152.3 
  7.                   Master_User: replication 
  8.                   Master_Port: 3306 
  9.                 Connect_Retry: 60 
  10.               Master_Log_File: mysql-bin.000103 
  11.           Read_Master_Log_Pos: 675107897 
  12.                Relay_Log_File: www-relay-bin.000443 
  13.                 Relay_Log_Pos: 675097929 
  14.         Relay_Master_Log_File: mysql-bin.000103 
  15.              Slave_IO_Running: Yes 
  16.             Slave_SQL_Running: Yes 
  17.               Replicate_Do_DB: www 
  18.           Replicate_Ignore_DB: test,mysql,information_schema 
  19.            Replicate_Do_Table: 
  20.        Replicate_Ignore_Table: 
  21.       Replicate_Wild_Do_Table: 
  22.   Replicate_Wild_Ignore_Table: 
  23.                    Last_Errno: 0 
  24.                    Last_Error: 
  25.                  Skip_Counter: 0 
  26.           Exec_Master_Log_Pos: 675107897 
  27.               Relay_Log_Space: 675098125 
  28.               Until_Condition: None 
  29.                Until_Log_File: 
  30.                 Until_Log_Pos: 0 
  31.            Master_SSL_Allowed: No 
  32.            Master_SSL_CA_File: 
  33.            Master_SSL_CA_Path: 
  34.               Master_SSL_Cert: 
  35.             Master_SSL_Cipher: 
  36.                Master_SSL_Key: 
  37.         Seconds_Behind_Master: 0 
  38. Master_SSL_Verify_Server_Cert: No 
  39.                 Last_IO_Errno: 0  --Vevb.com 
  40.                 Last_IO_Error: 
  41.                Last_SQL_Errno: 0 
  42.                Last_SQL_Error: 

复制从服务器当前正在使用的复制主服务器日志文件是:mysql-bin.000103,当前正在使用的日志文件是000097,我需要做的是删除00095号之前的所有日志(预留出最近几天的日志),代码如下:

Mysql>purge master logs to ‘mysql-bin.000095;

#ll /usr/local/mysql/var/

从结果中发现,编号000097之前的所有日志都已经删除,如果还有其他服务器需要清理日志,重新按上面的顺序进行就可以.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表