zoukankan      html  css  js  c++  java
  • Mysql数据库日志,备份及回滚操作

    一、打开二进制日志配置 :

    在Windows系统下,对mysql的my.ini的log-bin等进行配置目录位置时,假设要将log-bin的日志配置到D盘的mysqllog的文件为binlog。则可以如下配置 :

    [mysqld]

    log-bin="D:mysqllog/binlog"  注意:在这里的最后一个路径采用的是"/"而不是Windows文件系统的“"

    二、二进制日志处理:

    1、查看

    采用Mysqlbinlog.exe。可以在安装目录的Server里的Bin目录下找到。

    查看: cmd> mysqlbinlog.exe filename (添加 --database [databasename] 可以查看某个特定的数据库的sql日志)

    2、暂停日志记录

    mysql> SET SQL_LOG_BIN=0/1  设置为0:表示暂停记录;否则为1;

    3、删除二进制日志

    mysql> RESETMASTER;  (注意,将删除全部,要小心!!!!)

    mysql> PURGE MASTER LOGS TO filename.number: 删除编号小于number的日志;

    mysql> PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh:MM:ss' : 删除日志前的日志;

    4、刷新日志,使得当前的日志编号增加一

    采用MysqlAdmin.exe. 可以在安装目录的Server里的Bin目录下找到。

    如当前的服务器的日志文件为: binlog.000002

    则执行: cmd> mysqladmin -u root -p flush-logs    :输入密码

    执行之后,在二进制日志目录下会增加一个新的日志文件: binlog.000003。此后,服务器的新日志将会写到binlog.000003。

    此做法很适合于增量备份时使用。

    三、数据库备份与还原

    采用mysqldump.exe. 可以在安装目录的Server里的Bin目录下找到。

    1、完全备份:

    cmd> mysqldump -u root -p test > test.sql   :输入密码  将会备份数据库名为test的数据库到mysqldump.exe所在的目录的test.sql文件。

    2、完全备份整个服务器的数据库,并刷新日志文件:

    刷新日志文件的目的:告诉服务器将日志写到新的日志文件,为此,将来进行的备份就不用再进行完全备份了,只需要备份新的日志文件。实现”增量备份“

    cmd> mysqldump -u root -p --flush-logs   执行之后将会生成更多的新的日志文件。如备份3个数据库时,会再生成3个日志文件。因为3个数据库的备份是被看成3个不同的事务执行的。因此,加上:--single-transaction 标记之后,将作为一个事务。因此,只会增加一个日志文件。

    3、还原操作:

    注意:由于一般情况下,系统的二进制日志是打开的,因此,执行还原时,会将还原的sql代码同样写入到日志。当显然,这些代码并不一定是需要存在的。因此,可以用暂停二进制日志的方式进行避免,但是,我在测试时,发现采用:SET SQL_LOG_BIN=0并不能做到。因此,可以采用以下的做法:

        1)、刷新一个日志文件: cmd> mysqladmin -u root -p flush-logs. (这个文件用于存放还原时产生的日志,而不会影响原来的日志)

        2)、执行还原一个数据库:test:cmd> mysql  -u -root -p < test.sql; 

        3)、再将”增量“的日志执行到数据库test(要小心,不要执行其他数据库的二进制日志):

            cmd>  mysqlbinlog log.number | mysql -u root -p test 。

            可以加入--database [name]的参数,指定只选择增量还原某个数据库的sql。如针对 test数据库: 

            cmd> mysqlbinlog log.number --database test | mysql -u root -p test

        4)、在此过程生成的日志文件可以考虑删除。因为是原来的数据。

  • 相关阅读:
    HTML5中的FileSystem API的一个问题(或者是BUG)
    TSQL入门(二)——创建表
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
    VS2010操作SQL SERVER CE 4.0数据库
    TSQL入门(三)——增删改(INSERT、DELETE、UPDATE)
    IE6警告框
    TSQL入门(二)——创建表
    TSQL入门(一)——创建数据库
    TSQL入门(一)——创建数据库
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4207495.html
Copyright © 2011-2022 走看看