码迷,mamicode.com
首页 > 数据库 > 详细

MySQL备份和还原

时间:2015-08-25 14:22:55      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:mysql 备份和还原

1.备份类型

根据备份时服务器是否能够向外继续提供服务分为:热备份、温备份、冷备份。

    热备份:在线,读、写不受影响;

    温备份:在线,但仅可以执行读操作;

    冷备份:离线,读、写操作均不能进行;

根据备份时是直接复制数据文件还是将数据导出进行备份分为:物理备份、逻辑备份。

    物理备份:直接复制数据文件;

    逻辑备份:将数据导出至文本文件当中;

根据备份内容不同分为:完全备份、增量备份、差异备份。

    完全备份:备份全部数据;

    增量备份:仅备份上次完全备份或增量备份以后变化的数据;

    差异备份:仅备份上次完全备份以来变化的数据;

2.使用mysqldump工具备份还原数据

    mysqldump是一个逻辑备份工具,对MyISAM引擎可以实现温备,对InnoDB引擎可以实现热备。速度比较慢,不适合对大数据库进行完全备份。数据还原时应该将二进制日志功能临时性关掉(sql_log_bin=OFF),还原后在启用。

mysqldump命令的用法及其常见选项:

mysqldump -uroot -p [db_name] [tb1] [tb2] > backfile    #备份单个数据库,或库中特定表
    --master-data={0|1|2}
        0: 不记录二进制日志文件及其位置;
        1:以CHNAGE MASTER TO的方式记录位置,可用于恢复后直接启动从服务器;
        2:以CHANGE MASTER TO的方式记录位置,但默认为被注释;
    --lock-all-tables:锁定所有表
    --flush-logs:执行日志滚动
    --all-databases:备份所有库
    --databases DB_NAME,DB_NAME,...:备份指定库
    --events:备份事件
    --routines:备份存储过程和存储函数
    --triggers:备份触发器
    --no-data:只备份表结构
    如果指定库中的表类型均为InnoDB,可使用--single-transaction启动热备;

mysqldump完全备份加二进制日志增量备份及还原实例:

备份:

mysqldump -uroot -p --master-data=2 --flush-logs --all-databases --lock-all-tables > /root/all.sql
    #完全备份
mysqlbinlog mysql-bin.000011 > /root/first-incremental.sql
    #第一次增量备份

删除数据文件模拟故障还原(假设故障时使用的二进制日志文件为mysql-bin.000012且二进制日志文件和数据文件分开存储):

killall mysqld
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data
    #初始化数据库
service mysqld start
mysql -uroot -p < /root/all.sql
    #还原完全备份
mysql -uroot -p < /root/first-incremental.sql
    #还原增量备份
mysqlbinlog mysql-bin.000012 > /tmp/tmp.sql
mysql -uroot -p < /tmp/tmp.sql
    #即时点恢复

3.通过select命令备份数据并还原

    select通常用来备份单个表,还原时表结构需要预先创建好。

备份:

mysql> SELECT * INTO OUTFILE ‘/path/to/somefile.txt‘ FROM tb_name [WHERE clause];

还原:

mysql> LOAD DATA INFILE ‘/path/to/somefile.txt‘ INTO TABLE tb_name;


MySQL备份和还原

标签:mysql 备份和还原

原文地址:http://wangyongbin.blog.51cto.com/8964308/1687994

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!