您的位置:首页 > 博客中心 > 数据库 >

【转载】Mysql binlog relaylog 日志迁移

时间:2022-03-14 04:03

背景:

 默认情况下,mysql的数据、binlog、relaylog都是保存在同一个磁盘上,路径根据每个人的设置不一。
当mysql数据库中数据或日志增长很快时,磁盘可能面临空间不够或者IO性能跟不上,所以把日志迁移到其他磁盘是首先想到的工作。
但日志迁移的文档并不多,本文根据实践记录,希望对大家有点参考作用。 假设迁移前的路径如下:binlog:    /data/mysql_data/
mysql数据: /data/mysql_data/
mysql relay log :/data/mysql_data/
 计划迁移的目标路径是:binlog: /data2/mysql_binlog/
relaylog :/data2/mysql_relaylog/
 

一、迁移binlog

 1、首先停止mysql2、复制所有binlog到其他磁盘,假设是:/data2/mysql_binlog/mysql-bin.*
同时要复制mysql-bin.index到新路径 3、修改my.cnf配置文件log-bin=/data2/mysql_binlog/mysql-bin
 4、编辑 mysql-bin.index把内容修改为绝对路径:/data2/mysql_binlog/mysql-bin.000001
/data2/mysql_binlog/mysql-bin.000002
/data2/mysql_binlog/mysql-bin.000003
/data2/mysql_binlog/mysql-bin.000004
 如果出现如下错误,则可能是没有修改:/usr/local/mysql/bin/mysqld: File ‘./mysql-bin.000003‘ not found (Errcode: 2)
120301 22:51:06 [ERROR] Failed to open log (file ‘./mysql-bin.000003‘, errno 2)
120301 22:51:06 [ERROR] Could not open log file
120301 22:51:06 [ERROR] Can‘t init tc log
120301 22:51:06 [ERROR] Aborting
 5、启动mysql/ett/init.d/mysql start
  

二、迁移relay log


relaylog的迁移稍微有点不一样,不知您发现没有,my.cnf默认没有relaylog的配置,其实是有的。 1、首先停止mysql2、把relaylog复制到目标路径,假设是:/data2/mysql_relaylog/ubuntu-relay-bin.*
同时复制 ubuntu-relay-bin.index 3、同时在my.cnf中增加一条relay_log=/data2/mysql_relaylog/ubuntu-relay-bin.log
 4、然后编辑  ubuntu-relay-bin.index   把路径改为新的绝对路径/data2/mysql_relaylog/ubuntu-relay-bin.*
 5、编辑 relay-log.info文件sudo vim /data1/mysqldata/relay-log.info
也是改为新的绝对路径 6、启动mysql/ett/init.d/mysql start
来源: <> 



热门排行

今日推荐

热门手游