MySQL 备份恢复

1:备份常用工具:

mysqldump, xtrabackup

mysqldump: 原生数据导出工具,以sql的形式导出保存

xtrabackup: percona团队提供的备份工具,基于文件系统的备份

2:备份全库:

mysqldump -h10.6.29.1 -uroot -p --all-databases > 20140925_all_db_10.6.29.1.sql
mysqldump是直接屏幕输出,所以重定向后即可得到对应的备份文件。
存在问题:
1:会锁全库,影响业务
2:有可能缺失常规表以外的内容,如存储过程
3:未记录binlog同步点,不能用于主从同步以及利用binlog增量恢复
4:对于数据集较大的表,可能会吃掉server端大量内存

  

mysqldump -h10.6.29.1 -uroot -p --all-databases --master-data=2 --routines --events --quick --single-transaction > 10.6.29.129.sql
--master-data=2 表示需要记录导出数据当时主库的binlog位置
--routines 表示导出存储过程(可视实际库表决定是否使用)
--events 表示导出事件(可根据实际库表决定是否使用)
--quick 表示让服务端不将结果集一次发送,而是分批发送,可减轻压力
另外,加上--master-data后默认是锁库的,可确保数据一致性,即导出数据和binlog位置的一致。
--single-transaction 取消锁库并利用Innodb事务特性确保数据一致,但对MyISAM引擎不能确保一致性(即备份期间的写入,仍有可能被导出到备份文件中)

  

3:备份部分库

mysqldump -h10.6.29.129 -uroot -p --master-data=2 --routines –events --quick --single-transaction --databases db1 db2 db3 > 20140925_all_db_10.6.29.1.sql
(将需要导出的库名,依次填写在databases参数后)

备份指定database的部分表——

mysqldump -h10.6.29.129 -uroot –p --master-data=2 --routines –events --quick --single-transaction mydb table1 table2 >20140925_all_db_10.6.29.129.sql (先写明指定的database,然后紧跟需要备份的表名)

  

4:数据恢复

Mysql -h10.6.29.129 -uroot -p < 20140925_all_db_10.6.29.129.sql

(简单易行,但要确保导入的库表,不会同时有业务在写入)

5:mysqlbinlog对日志进行解析

mysqlbinlog mysql.000002 > binlog_new.000002

  

mysqlbinlog mysql.000002 --start-position=549212174 --stop-datetime=‘2014-9-10 10:00‘ > binlog_new.000002.sql
--start-position 表示从binlog的那个位置开始解析,而这个起始点可以通过备份时的master-data参数得到
--stop-datetime 表示只解析到哪个时间点的语句为止,可用于回档到某个指定时间点
--start-datetime 从那个时间点开始,但通常还是尽量使用start-position,更为准确
--verbose, -v 使用方式:-vv, -vvv,常用于ROW模式的详细输出

  

mysqlbinlog mysql.000005 > 5.sql

mysqlbinlog mysql.000005 -vv > 5-vv.sql

  

6:恢复单个表

1:拥有对应单表备份文件,直接导入
2:使用mysqlbinlog解析binlog文件,再从得到的完整文件中获取对应表的语句,redo应用到数据库

  

如何过滤仅得到想要的语句?
由于binlog里得到的语句数量通常相当庞大,可以借助最简单的grep的方式。

grep -B3 -w tbl1 binlog.xxx.sql | egrep -v ‘^--$‘ > tbl1.sql

  

时间: 2024-10-17 00:56:00

MySQL 备份恢复的相关文章

Mysql备份恢复

五.Mysql备份恢复 1.备份方式: ■直接phpmyadmin导出备份.我们用root管理权限进入phpmyadmin,然后把需要备份网站的mysql数据库导出备份,建议用gzip压缩格式 ■ mysqldump命令.我们用登陆SSH,然后用命令备份 ■ LVS快照备份  2.备份策略: ■ 完整备份 ■ 增量备份 ■ 差异备份 3.备份类型: ■ 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行: ■ 温备(warm backup): 服务在线,但仅支持读请

Mysql 备份恢复的简单实践

一.备份: 进行mysql的安装目录: 使用./mysqldump -u root -h 127.0.0.1 -P 3306 -p mysql>trymysql.sql 输入密码,备份成功. 二.恢复 进行mysql. 创建数据库 create database trymysql; 进入数据库 use trymysql ; 恢复 source trymysql.sql Mysql 备份恢复的简单实践

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

MySQL备份恢复基础知识及MySQLdump讲解

数据库备份恢复知识要点: 时间轴备份类型分类: 完全备份:备份整个数据集 增量备份:上一次完全备份,或上一次增量备份以后变化的数据的备份(还原麻烦,节省空间) 差异备份:仅备份最近一次完全备份以来变化的数据(还原简单,空间消耗大) 什么是物理备份.逻辑备份: 物理备份:直接复制数据文件进行备份(有可能占用更多的空间,备份速度快,做热备较难) 逻辑备份:从数据库中导出数据"另存为"而进行的备份(从二进制转化为文本格式,有可能丢失精度,需要专门的协议客户端才能进行,和数据存储引擎无关.备份

【mysql 备份/恢复】

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; min-height: 17.0px } 备份库:mysqldump -uroot -p123456 mysql(需要备份的数据库名) > /tem/mysql.sql 恢复库:mysql

(转)解锁MySQL备份恢复的4种正确姿势

本文根据DBAplus社群第104期线上分享整理而成. 原文:http://dbaplus.cn/news-11-1267-1.html 讲师介绍   冯帅 点融网高级DBA 分享大纲: 备份高于一切,今天汇总一下常用的几种备份方法,以及恢复的步骤. 一.mysqldump 在日常工作中,我们会使用mysqldump命令创建SQL格式的转储文件来备份数据库.或者我们把数据导出后做数据迁移,主备搭建等操作.mysqldump是一个逻辑备份工具,复制原始的数据库对象定义和表数据产生一组可执行的SQL

07 : mysql备份恢复(1) - mysqldump命令使用

注意: mysql不同引擎备份方法不同.我们先来回忆一下和备份有关的知识点. 1.存储引擎(1)InnoDB(默认使用引擎,也是企业常用的) 热备 独立表空间(每个表一个表空间) redo:重做日志,用来前滚 undo:回滚日志,用来回滚(未提交的事务) 行级别锁,基于索引来实现的,GAP锁 支持事务.(2)MyISAM 温备 三个文件构成 表级锁 2.二进制日志(1)记录的是什么? DDL.DCL这些种类语句,记录的就是操作语句 DML:他记录的已提交的事务日志,并支持多种格式记录(row.s

Mysql 备份恢复与 xtrabackup备份

1.1 备份的原因 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间. 1.1.1 备份的目录 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到改变以前 测试:测试新功能是否可用 1.1.2 备份中需要考虑的问题 可以容忍丢失多长时间的数据: 恢复

mysql备份恢复常用命令

Linux下MySQL的备份与还原  备份 [[email protected] ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [[email protected] mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可.还原法一:[[email protected] ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>"

Linux下mysql备份 恢复

转载自http://blog.chinaunix.net/uid-20577907-id-161611.html 比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump 命令格式如下: [[email protected] root]# mysqldump -u root -p linux > /root/linux.sql Enter password:在这里输入数据库的密码 通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份:其次: