增量备份都要利用log-bin的二进制文件来恢复数据  但先要让mysql数据库停止向当前的二进制文件写入 并创建新的二进制文件 以便能够拷贝走二进制文件  
公司要求mysql的二进制文件更新不能人为操作  我跟领导说 
1.在配置文件中设置log-bin文件的大小 二进制文件到达指定大小会自动生成新的二进制文件
2. 把mysqladmin flush-logs -uroot -p ***命令写入脚本里 但是我有几点不清楚的地方 希望各位朋友能指点一下1.用设置log-bin文件大小的方法  如果sql语句太大了  会不会产生回滚现象 如果回滚了 用二进制文件恢复时是否有影响2.用脚本的方法 如果一个较大的sql语句正在执行 二进制文件正在写入更新  此时执行脚本中的mysqladmin flush-logs 命令来更新二进制文件 那此时的sql语句是否受到影响  以后用二进制文件恢复时 是否有影响3.公司打算利用NFS把mysq生成的二进制文件的保存目录设置在其他的服务器上  这样如果出现问题 可以最大限度的恢复到出错前的状态  但是我担心如果利用NFS来传输二进制文件 当网络状况不好时 NFS受到影响 不能传送二进制文件(操作记录不会记录到二进制中)  mysql是否也会因此而停止运行下来  (貌似oracle是这样的)谢谢各位了

解决方案 »

  1.   

    1.用设置log-bin文件大小的方法 如果sql语句太大了 会不会产生回滚现象 如果回滚了 用二进制文件恢复时是否有影响sql提交以后才写binlog  不存在回滚问题2.用脚本的方法 如果一个较大的sql语句正在执行 二进制文件正在写入更新 此时执行脚本中的mysqladmin flush-logs 命令来更新二进制文件 那此时的sql语句是否受到影响 以后用二进制文件恢复时 是否有影响同问题一
    3.公司打算利用NFS把mysq生成的二进制文件的保存目录设置在其他的服务器上 这样如果出现问题 可以最大限度的恢复到出错前的状态 但是我担心如果利用NFS来传输二进制文件 当网络状况不好时 NFS受到影响 不能传送二进制文件(操作记录不会记录到二进制中) mysql是否也会因此而停止运行下来 (貌似oracle是这样的)那还不如在另外的服务器做一个slave
      

  2.   


    前两个问题中SQL提交后才写binlog 那如果sql提交后 binlog正在写入更新 这时执行flush-logs命令停止向当前二进制文件写入 并产生新的二进制文件 会不会对binlog文件有影响  (binlog中的sql语句不完整 恢复时出错)那第三个问题 用NFS把二进制文件保存在其他服务上  像我说的那种情况 如果网络不好 影响NFS mysql不能更新log-bin文件  mysql是否会因此而停下来  
    (主从的话对从服务器还是有要求的 这样用NFS传log-bin文件 远程服务器只要求能保证保存当天的log-bin文件就好了 更新后会把二进制文件cp走 而删除之前的)
      

  3.   

    MYSQL只能通过BINLOG来实现增量备份。并无其它方法。