Welcome 微信登录

首页 / 数据库 / MySQL / MySQL高性能详细数据库备份

本文通过使用mysql自带的mysqldump和最有名开源工具Xtrabackup进行对数据库进行备份,保证数据的安全性。使用Mysqldump 温备份单个数据库:1.在mysql交互式模式下施加读锁,以免写入数据有差错;
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)2.新建一个存放的文件夹,存放备份文件
[ root@yulong ~]# mkdir -pv /backup/data3 .备份单个数据库中的表
[root@yulong backup]# mysqldump -uroot -pRedHat --master-data=2 --databases hellodb --lock-all-tables > /backup/`date +%F`
--master-data=2          记录备份的时候二进制文件
--databases hellodb      备份的数据库
--lock-all-tables        锁定所有表
[root@yulong backup]# mysqldump --help 使用--help显示更多mysqldump选项4.然后查看下这个文件,里面可以看到bak的详细信息[root@yulong backup]# cat bak.2013-09-065.备份完成后释放读锁mysql> unlock tables;
Query OK, 0 rows affected (0.06 sec)6.然后删除这个hellodb这个库mysql> drop database hellodb;
Query OK, 7 rows affected (0.01 sec)7.让后再用刚才的备份进行恢复;mysql -uroot -predhat < /backup/bak.2013-09-068.查看删除的是否恢复mysql> show databases;
+--------------------+
| Database          |
+--------------------+
| information_schema |
| hellodb            |
| mysql              |
| performance_schema |
| test              |
| yulong            |使用mysqldump热备InnoDB引擎整个数据库1.热备份数据库
[root@yulong backup]# mysqldump -uroot -predhat --single-transaction --events --routines  --master-data=2 --all-databases > /backup/full.`date +%F`.sql
--single-transaction    基于此选项能实现热备InnoDB表
--events                备份事件调度器代码;
--routines              备份存储过程和存储函数;2. 然后在创建一个增量备份的数据库mysql> create databases yulong;
Query OK, 1 row affected (0.04 sec)
mysql> use yulong;
Database changed
mysql> create table nihao (beijing char(30) primary key, diqu varchar(50) not null);3.在到刚才完全备份的文件里查看--master-data记录的值[root@yulong backup]# head -30 full.2013-09-06.sql
-- CHANGE MASTER TO MASTER_LOG_FILE="mysql-bin.000019", MASTER_LOG_POS=676;
4. 然后查看二进制文件事件的position值mysql> show master status;
+------------------+----------+--------------+------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000019 |    1320 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
5.把他们这段二进制值给保存到一个目录下
[root@yulong backup]# mysqlbinlog  --start-position=676  --stop-position=1320  /mybinlog/mysql-bin.000019 > /backup/zl.sql6.暂时关闭二进制log文件,恢复的二进制日志我们不需要记录
mysql> set sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)7.然后删除数据库mysql> drop database yulong;
Query OK, 1 row affected (0.06 sec)
mysql> drop database hellodb;
Query OK, 7 rows affected (0.00 sec)
8.恢复刚才备份的数据
[root@yulong backup]# mysql -uroot -predhat  </backup/full.2013-09-06.sql      恢复全部备份
[root@yulong backup]# mysql -uroot -predhat  </backup/zl.sql 恢复增量备份9.验证数据,删除的数据库是否恢复,我这里OK没有题
mysql> show databases;
+--------------------+
| Database          |
+--------------------+
| information_schema |
| hellodb            |
| mysql              |
| performance_schema |
| test              |
| yulong            |
+--------------------+相关阅读:Linux下通过mysqldump备份MySQL数据库成sql文件 http://www.linuxidc.com/Linux/2013-02/79793.htmLinux中使用mysqldump对MySQL数据库进行定时备份 http://www.linuxidc.com/Linux/2012-03/56063.htm使用mysqldump 对数据库进行备份的乱码问题 http://www.linuxidc.com/Linux/2013-06/86654.htm使用MySQLDumper备份与恢复数据 http://www.linuxidc.com/Linux/2012-08/68549.htm更多Xtrabackup详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-09/89877p2.htm
  • 1
  • 2
  • 3
  • 下一页
【内容导航】
第1页:Mysqldump第2页:Xtrabackup
第3页:使用innobackupex进行增量备份
CentOS 5.9安装Oracle 11gMySQL自动备份策略的方案相关资讯      MYSQL备份  MySQL数据库备份 
  • MySQL生产库之Xtrabackup物理备份  (今 08:17)
  • 线上MySQL备份脚本  (07月28日)
  • MySQL备份的三种方法  (07月05日)
  • MySQL备份之mydumper入门学习  (08月22日)
  • MySQL备份之分库分表备份脚本  (07月28日)
  • MySQL之备份和恢复(msyqldump、  (06月20日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数