mysql备份与还原-mysqldump备份、mysql与source还原
以下都以在linux操作系统上的mysql为例
mysqldump备份
mysqldump实际就是将数据库中的数据转化为建库、建表和插入记录的sql语句
1.备份一个数据库 [或其中几个表],不指定表表示备份整个数据库,指定表表示备份指定的表
在系统命令下:mysqldump -u用户 -p密码 库 [表1 表2 表3 …] > /opt/backname.sql
[root@oldboy opt]# mysqldump -uroot -poldboy oldboy student >/opt/studentbak.sql
备份一个库或其中的表时,备份语句中不包含建库语句,因此还原时需要指定数据库
如果备份整个库时加上-B参数,备份语句中会包含建库和切库语句如mysqldump -uroot -poldboy -B oldboy,-B参数不适用于备份表
2.备份多个数据库
在系统命令下:mysqldump -u用户 -p密码 --databases 库1 库2 库3 … > /opt/backname.sql
mysqldump -u用户 -p密码 --B 库1 库2 库3 … > /opt/backname.sql
[root@oldboy opt]# mysqldump -uroot -poldboy --databases oldboy oldboy_utf8 >/opt/multidbback.sql
3.备份所有数据库
在系统命令下:mysqldump -u用户 -p密码 --all-databases > /opt/backname.sql
[root@oldboy opt]# mysqldump -uroot -poldboy --all-databases >/opt/alldbback.sql
参考视频 http://edu.51cto.com/course/808.html
备份时可同时对备份的结果通过gzip压缩
mysqldump -uroot -poldboy oldboy student | gzip > /opt/studentbak.sql
mysql备份时常用参数
备份时加--compact参数,会在备份结果中省去一些无用信息,简化输出 ,一般在调试时使用,生产上不使用
[root@oldboy opt]# mysqldump -uroot -poldboy --compact oldboy > /opt/dbak.sql
备份时加-d参数,只备份表结构,即--no-data
[root@oldboy opt]# mysqldump -uroot -poldboy -d oldboy student > /opt/dbak.sql
备份时加-t参数,只备份数据
[root@oldboy opt]# mysqldump -uroot -poldboy -t oldboy student > /opt/tbak.sql
备份时加-B参数,备份多个数据库,即--databases
[root@oldboy opt]# mysqldump -uroot -poldboy -B --events |gzip > /opt/Abak.sql
备份时加-A参数,备份所有数据库,即--all-databases
[root@oldboy opt]# mysqldump -uroot -poldboy -A -B --events |gzip > /opt/Abak.sql
备份时加-F参数,切割bin log,即--flush-logs
[root@oldboy opt]# mysqldump -uroot -poldboy -B -F oldboy|gzip > /opt/Abak.sql
备份时加--maste-date=1(或2,1指定logbin日志及位置时不注释,2注释)参数,会在备份结果中指出从哪个binlog开始恢复
[root@oldboy opt]# mysqldump -uroot -poldboy --compact --master-data=1 oldboy > /opt/masterbak.sql
备份时加-x参数,锁表
备份时加-l参数,只读锁表
备份时加--events参数,备份数据库事件
备份时加--single-transaction参数适合innoDB事务数据库备份,原理是将本次会话的隔离级别设定为repeatable read,以确保本次会话dump时,不会看到其他会话已经提交了的数据
mysql备份还原
1.还原一个数据库,需指定数据库(如果备份时加了-B参数,则不需要指定数据库)
在linux系统下:mysql -u用户 -p密码 库 < /opt/backname.sql
[root@oldboy opt]# mysql -uroot -poldboy oldboy < /opt/testback.sql
2.还原多个数据库:mysql -u用户 -p密码 < /opt/backname.sql
mysql -uroot -poldboy < /opt/twodbback.sql
source还原
在数据库下:source 备份路径及文件名
Mysql>source /opt/oldboyB.sql
如果备份文件中不包含建库语句,则需先通过use切换到对应的库,再source还原
生产场景备份参数使用
myisam:mysqldump -uroot -poldboy -A -B -x --master-data=1 --events|gzip > /opt/all.sql.gz(混合引擎备份,以myisam为主)
innodb:mysqldump -uroot -poldboy -A -B --master-data=1 --single-transaction --events|gzip > /opt/all.sql.gz
5.5.35以前默认是myisam引擎,5.5.35以后默认是innodb,现在推荐使用innodb方式备份
mysql的mysqldump备份合何时派上用场
1.迁移或者升级数据库时
2.增加从库的时候
3.人为的DDL、DML误操作语句,主库和从库都会误操作,因此需要备份
4.跨机房灾备,需要备份到异地
(因为硬件或特殊异常情况导致主库和从库宕机,主从可以互相切换,无需备份)
mysql增量恢复的必备条件:开启binlog日志,存在一份全备和全备之后到出现问题时间点的所有增量binlog
通过将修改变量sql_log_bin为OFF,可临时不记录binlog,在用binlog进行恢复时不将执行的操作记录到binlog
全量备份:备份数据库中所有的数据
增量备份:上次全量备份之后、到下次备份时间点之间更新的数据。对于mysql来说,binlog就是增量数据。
一般由于人为或者程序逻辑的方式在数据库执行了误操作
按天备份:
每天的24:00:00全量备份,每天的数据增量备份即binlog
优点:恢复时间短,维护成本低
缺点:占用空间大,占用资源多,经常锁表影响用户体验
按周备份
每周日24:00:00全量备份,每天的数据增量备份binlog
缺点:占用空间小,占用资源少,无需锁表,用户体验好
缺点:恢复时间长,维护麻烦,成本高
企业场景:
1.中小公司,全量一般是每天一次,在业务流量低估时执行全备,备份时锁会表
2.单台数据库,用rsync(配合定时任务,或者inotify,主从辅助),把所有binog备份到远程服务器,尽量做主从复制
3.大公司周备,本周到下次周备之前都是增量备份,节省备份时间,减小备份压力,但是增量binlog文件副本太多,还原麻烦
4.一般一主多从,会有一个从库做备份,延迟同步
mysql备份与还原-mysqldump备份、mysql与source还原的更多相关文章
- mysql cp复制和mysqldump备份测试
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 备份策略 针对不同的场景下, 我们应该制定不同的备份策略对数据库进行 ...
- MySQL运维之---mysqldump备份、select...into outfile、mysql -e 等工具的使用
1.mysqldump备份一个数据库 mysqldump命令备份一个数据库的基本语法: mysqldump -u user -p pwd dbname > Backup.sql 我们来讲解一下备 ...
- MySQL入门篇之mysqldump备份和恢复
一.备份单个数据库 1.备份命令:mysqldump MySQL数据库自带的一个很好用的备份命令.是逻辑备份,导出 的是SQL语句.也就是把数据从MySQL库中以逻辑的SQL语句的形式直接输出或生成备 ...
- MySql(十三):MySql架构设计——可扩展性设计之 MySQL Replication
一.前言 MySQL Replication能够将一个 MySQL Server 的 Instance 中的数据完整的复制到另外一个 MySQL Server 的 Instance 中.虽然复制过程并 ...
- 使用mysqldump进行mysql数据库备份还原
mysqldump是mysql自带的备份还原工具,默认在安装目录的bin下 可通过cmd命令行启动,然后运行: 还原一个数据库: mysql -h 主机 -u 用户名 -p密码 数据库名 < 指 ...
- mysqldump备份还原mysql
本文实现在mysql 5.7 解压版为例子 1.在window上简单试下一个例子 1.使用管理员权限打开cmd命名行,并切换到mysqldump执行程序下
- mysql的日志及利用mysqldump备份及还原
日志文件:6类 一般查询日志:log,general_log,log_output 慢查询日志: 错误日志 二进制日志 中继日志 ...
- MySQL使用mysqldump备份及还原
MySQL可以使用mysqldump进行数据的逻辑备份,配合开启bin log日志可以实现数据的全量恢复及增量恢复 MySQL版本查看 修改配置文件记录bin log日志 [mysqld] #bin ...
- MySQL数据备份与还原(mysqldump)
一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Database Administrator,简称DBA),是从事管理 ...
随机推荐
- sublime使用经验汇总
1. source insight 会对某个修改频繁的文件做多次备份.我们用sublime进行多个文件搜索时,需要把备份的文件排除在外. e:\work\code\sourcev, *.h, *.cp ...
- JS引擎的执行机制
深入理解JS引擎的执行机制 1.灵魂三问 : JS为什么是单线程的? 为什么需要异步? 单线程又是如何实现异步的呢? 2.JS中的event loop(1) 3.JS中的event loop(2) 4 ...
- jQuery-文本框事件应用-判断邮箱地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Struts上传文件
Struts上传文件分为两个步骤: 1). 首先将客户端上传的文件保存到Struts.multipart.saveDir键所指定的目录中,如果该键所对应的目录不存在,那么就保存到javax.servl ...
- Rstudio 01 连接MySQL
> install.packages("RMySQL") also installing the dependency ‘DBI’ trying URL 'https://c ...
- Unity shader学习之Grab Pass实现玻璃效果
GrabPass可将当前屏幕的图像绘制在一张纹理中,可用来实现玻璃效果. 转载请注明出处:http://www.cnblogs.com/jietian331/p/7201324.html shader ...
- arm-cache coherency
提高一个系统的performance,有两种办法: 1) 不断提高一个core的performance,手段就是不断提高freq,减小Vt,这样都会在增加power(dynamic,leakage) ...
- 如何修改Xampp服务器上的mysql密码(图解)
https://www.jb51.net/article/111289.htm https://www.cnblogs.com/Leequik/p/5323795.html 1.点击MySQL的adm ...
- 【Alpha版本】冲刺阶段——Day5
[Alpha版本]冲刺阶段--Day5 阅读目录 今日进展 问题困难 明日任务 今日贡献量 站立式会议 TODOlist [今日进展] 完成登录类代码 public void LOGIN() { co ...
- 高性能NIO框架Netty入门篇
http://cxytiandi.com/blog/detail/17345 Netty介绍 Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具 ...