背景:

 
默认情况下,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、首先停止mysql
2、复制所有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、首先停止mysql
2、把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

【转载】Mysql binlog relaylog 日志迁移的更多相关文章

  1. Mysql binlog二进制日志

    Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的实际原sql语句都会被记录在binlog中. 优点:不需要记录每一 ...

  2. 转载-MySQL binlog三种模式及设置方法

    原文地址:http://www.cnblogs.com/yangliheng/p/6187327.html 1.1 Row Level  行模式 日志中会记录每一行数据被修改的形式,然后在slave端 ...

  3. 带你了解 MySQL Binlog 不为人知的秘密

    MySQL 的 Binlog 日志是一种二进制格式的日志,Binlog 记录所有的 DDL 和 DML 语句(除了数据查询语句SELECT.SHOW等),以 Event 的形式记录,同时记录语句执行时 ...

  4. 【转载】mysql binlog日志自动清理及手动删除

    说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...

  5. [转载]mysql的binlog安全删除

    [转载]mysql的binlog安全删除  理论上,应该在配置文件/etc/my.cnf中加上binlog过期时间的配置项,expire_logs_days = 10 但是如果没有加这一项,随着产生越 ...

  6. 删除MySQL binlog日志的方法

    对于比较繁忙的OLTP(在线事务处理)系统,由于每天生成日志量大,这些日志如果长时间不清除,将会对磁盘空间带来很大的浪费.因此,定期删除日志是DBA维护MySQL数据库的一个重要工作内容.下面跟大家分 ...

  7. MySQL - binlog日志简介及设置

    基本概念 binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志:其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句, ...

  8. mysql binlog日志优化及思路

    在数据库安装完毕,对于binlog日志参数设置,有一些参数的调整,来满足业务需求或使性能最大化.Mysql日志主要对io性能产生影响,本次主要关注binlog 日志. 查一下二进制日志相关的参数    ...

  9. MySQL bin-log 日志清理方式

    MySQL bin-log 作用   1.数据恢复:如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失. 2.主从服务器之间同步数据:主 ...

随机推荐

  1. js返回上一页报网页过期问题解决

    1.detail详细页面加上返回按钮,返回到list列表页 <input type="button" value=" 返回 " onclick=" ...

  2. 超快的 FastText

    Word2Vec 作者.脸书科学家 Mikolov 文本分类新作 fastText:方法简单,号称并不需要深度学习那样几小时或者几天的训练时间,在普通 CPU 上最快几十秒就可以训练模型,得到不错的结 ...

  3. 【QT】找茬外挂制作

    找茬外挂制作 找茬游戏大家肯定都很熟悉吧,两张类似的图片,找里面的不同.在下眼神不大好,经常瞪图片半天也找不到区别.于是乎决定做个辅助工具来解放一下自己的双眼. 一.使用工具 Qt:主要是用来做界面的 ...

  4. [C++]不能被继承的类

    前面讲到,派生类的构造函数和析构函数会自动调用基类的构造函数和析构函数,那么要让一个类不能被继承,那么就将它的构造函数和析构函数私有函数(派生类可以访问保护函数).那么怎样才能得到该类的实例呢? 这倒 ...

  5. 正则表达式(RegExp)

    正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...

  6. 浏览器的CSS各种hack,大汇总

    对着IE久了也有感觉了,在win10出新浏览器以及中国的IE6+用户没有普及新的浏览器前IE还是个坑,所以hack这东西还是要掌握一点的.不废话直接贴图 记得之前在项目里面针对IE6的hack是这样写 ...

  7. C# Task的使用---Task的启动

    .NET 4.0包含的新名称空间System.Threading.Tasks,它包含的类抽象出了线程功能.任务表示应完成的某个单元的工作.这个单元的工作可以在单独的线程中运行,也可以以同步的方式启动一 ...

  8. ssh超时断开的解决方法

    当用SSH Secure Shell连接Linux时,如果几分钟没有任何操作,连接就会断开,必须重新登陆才行,每次都重复相同的操作,很是烦人,本文总结了两种解决的方法. 方法1:更改ssh服务器的配置 ...

  9. Android笔记——四大组件详解与总结

     android四大组件分别为activity.service.content provider.broadcast receiver. ------------------------------- ...

  10. sdk manager更新超时 time out

    sdk manager选择菜单tools->options,勾选下面的force https......重启sdk manager