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

mysql 备份与恢复

时间:2017-08-10 20:55:39      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:细节   bash   文件   number   需要   round   导入数据   适用于   sql   

系统运行中 增量备份 与整体备份

例:每周日整体备份一次,周一到周六备份当天

如果周五出了问题 可以使用周日的整体加上 周一周二周三周四来恢复

备份工具

第三方的收费备份工作

目前我们所学的是系统自带的备份功能

1导出一个库下面的某些表

mysqldump -u用户名 -p密码 库名 表1 表2 表3 >地址/备份文件名称

导出的是 建表语句以及  insert语句

2 导出一个库下面的所有表

mysqldump -u用户名 -p密码 库名 > 地址/备份文件名称

3.如何 以库  为单位导出

mysqldump -u用户名  -p密码 -B  库1 库2 库3 > 地址/备份文件名称 (相比于2多了建库的操作)

4.如何导出所有库

mysqldump -u用户名 -p密码 -A >地址/备份文件名称

恢复:

1.登录到mysql命令行

对于库级别的备份文件

MYSQL>source 备份文件地址

对于表级别的备份文件

Mysql> use 库名

Mysql> source 备份文件地址

2.不登录到mysql命令行

库级别的恢复

mysql -u用户名 -p密码 < 备份文件地址

表级别的恢复

mysql -u用户名 -p密码 库名 <备份文件地址

 

---------------------------------------------------------------------------------------------------------

线上环境  

每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份.

详细说明

1.mysqldump 增量备份配置

执行增量备份的前提条件是MYSQL 打开binlog 日志功能,在my.cnf 中加入

log-bin=/opt/Data/Mysql-bin   (打开并且记录binlog日志的位置) 一般建议放在不同于MYSQL数据目录的磁盘上

mysqldump > 导出数据

mysql    <  导入或者恢复数据  (或者使用source 命令导入数据,导入前要先切换到对应库下)

注意一个细节:

若是mysqldump导出一个库的数据,导出文件为a.sql,然后mysql导入这个数据到新的空库下。
如果新库名和老库名不一致,那么需要将a.sql文件里的老库名改为新库名,
这样才能顺利使用mysql命令导入数据(如果使用source命令导入就不需要修改a.sql文件了)。

     

2.mysqldump 增量备份

假定星期日下午1点执行全量备份,适用于MyISAM 存储引擎

mysqldump --lock-all-tables --flush-logs --master-data=2 -uroot -p test > backup.sql

INNODB 存储引擎将 --lock-all-tables 替换为 --single-transaction

--flush-logs 为结束当前日志,生成新日志文件

--master-data=2 选项将会在输出sql中记录下完全备份后新日志文件的名称

用于日后恢复时参考,例如输出的备份SQL文件中含有

CHANGE MASTER TO MASTER_LOG_FILE=’MySQL-bin.000002′, MASTER_LOG_POS=106;

 

3.mysqldump 增量备份其他说明

如果mysqldump加上 --delete-master-logs 

 

mysql 备份与恢复

标签:细节   bash   文件   number   需要   round   导入数据   适用于   sql   

原文地址:http://www.cnblogs.com/yingdiblog/p/7340991.html

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