- 浏览: 84011 次
- 性别:
- 来自: 上海
文章分类
最新评论
Mysql 备份方案
Mysql 的四种备份方案参考:
http://www.cnblogs.com/SQL888/p/5751631.html
这里使用的是增量加全备方案
参考:http://blog.csdn.net/hijiankang/article/details/10999501
全备命令:
非压缩备份
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --events --ignore-table=mysql.events --all-databases --delete-master-logs >/data/mysql/backup/full_bk.sql;
压缩备份
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --events --ignore-table=mysql.events --all-databases --delete-master-logs |gzip >/data/mysql/backup/db/full_bk_$(date +%Y%m%d%H%M%S).tar.gz;
注:
--flush-logs 切割binlog,这样不用担心如何去区分在备份过程中新进来的数据。
--delete-master-logs 在备份完成后删除已备份的binlog文件
如果是远程备份,请加上以下项:
-e --max_allowed_packet=4194304 --net_buffer_length=16384
max_allowed_packet和net_buffer_length要和服务器上的参数一致,服务器上查看方法:
mysql> show variables like 'max_allowed_packet';
mysql> show variables like 'net_buffer_length';
增量备份:
mysqladmin -uroot -p flush-logs;
建一个backup用户
grant ALL on *.* to `backup`@`localhost` identified by '111111';
脚本
full_bk.sh
#! /bin/bash
/bin/su -s /bin/sh - mysql -c "mysqldump -ubackup -p111111 --single-transaction --flush-logs --master-data=2 --events --ignore-table=mysql.events --all-databases --delete-master-logs |gzip >/data/mysql/backup/db/full_bk_$(date +%Y%m%d%H%M%S).tar.gz" >> log_$(date +%Y-%m-%d_%H:%M:%S).log 2>&1
increase_bk.sh
#! /bin/sh
/bin/su -s /bin/sh - mysql -c "mysqladmin -ubackup -p111111 flush-logs" >> increaseLog_$(date +%Y-%m-%d_%H:%M:%S).log
设置定时任务
crontab -e
#每周六的3点执行全库备份
00 3 * * 6 /home/mysql/full_bk.sh
#每天12点执行增量备份
00 12 * * * /home/mysql/full_bk.sh
数据库恢复
1. service mysql stop
下面两步非常重要
2. 拷贝/data/mysql/data/下日期大于最后一次全库备份文件日期的binlog文件到其它地方
3. 把其它相关DB机器上的slave停掉,以防数据重写
4. 删除/data/mysql/data/下所有文件
5. mysql_install_db
6. 开始还原数据
service mysql start
mysql> SHOW DATABASES; #查看数据库, 数据丢失!
mysql> SET sql_log_bin=OFF; #暂时先将二进制日志关闭
非压缩还原
mysql -uroot -p < full_bk_20170824001553.sql
压缩还原
gunzip < db/full_bk_20170831071221.tar.gz | mysql -uroot -padmin
mysql> SHOW DATABASES; #数据库恢复
还原日期大于最后一次全库备份文件日期的binlog文件中的数据
恢复binlog-file二进制日志文件:
mysqlbinlog --no-defaults /data/backup/mysql-bin.000007 /data/backup/mysql-bin.000008 /data/backup/mysql-bin.000009 | mysql -uroot -p123456
从某一(367)点开始恢复:
mysqlbinlog --no-defaults --stop-position="367" mysql-bin.000001| mysql -uroot -p123456 test
先查好那一点(用more来查看)
[root@localhost mysql]# /usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --start-position="794" --stop-position="1055" | more
然后恢复:
[root@localhost mysql]# /usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --start-position="794" --stop-position="1055" | /usr/bin/mysql -uroot -p123456 test
mysql> SET sql_log_bin=ON; 开启二进制日志
查看master状态
mysql> show master status;
更新slave机器上的master信息.
遇见问题:
slave启动报这个错误:Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
解决方案:
stop slave;
reset slave;
start slave;
Mysql 的四种备份方案参考:
http://www.cnblogs.com/SQL888/p/5751631.html
这里使用的是增量加全备方案
参考:http://blog.csdn.net/hijiankang/article/details/10999501
全备命令:
非压缩备份
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --events --ignore-table=mysql.events --all-databases --delete-master-logs >/data/mysql/backup/full_bk.sql;
压缩备份
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --events --ignore-table=mysql.events --all-databases --delete-master-logs |gzip >/data/mysql/backup/db/full_bk_$(date +%Y%m%d%H%M%S).tar.gz;
注:
--flush-logs 切割binlog,这样不用担心如何去区分在备份过程中新进来的数据。
--delete-master-logs 在备份完成后删除已备份的binlog文件
如果是远程备份,请加上以下项:
-e --max_allowed_packet=4194304 --net_buffer_length=16384
max_allowed_packet和net_buffer_length要和服务器上的参数一致,服务器上查看方法:
mysql> show variables like 'max_allowed_packet';
mysql> show variables like 'net_buffer_length';
增量备份:
mysqladmin -uroot -p flush-logs;
建一个backup用户
grant ALL on *.* to `backup`@`localhost` identified by '111111';
脚本
full_bk.sh
#! /bin/bash
/bin/su -s /bin/sh - mysql -c "mysqldump -ubackup -p111111 --single-transaction --flush-logs --master-data=2 --events --ignore-table=mysql.events --all-databases --delete-master-logs |gzip >/data/mysql/backup/db/full_bk_$(date +%Y%m%d%H%M%S).tar.gz" >> log_$(date +%Y-%m-%d_%H:%M:%S).log 2>&1
increase_bk.sh
#! /bin/sh
/bin/su -s /bin/sh - mysql -c "mysqladmin -ubackup -p111111 flush-logs" >> increaseLog_$(date +%Y-%m-%d_%H:%M:%S).log
设置定时任务
crontab -e
#每周六的3点执行全库备份
00 3 * * 6 /home/mysql/full_bk.sh
#每天12点执行增量备份
00 12 * * * /home/mysql/full_bk.sh
数据库恢复
1. service mysql stop
下面两步非常重要
2. 拷贝/data/mysql/data/下日期大于最后一次全库备份文件日期的binlog文件到其它地方
3. 把其它相关DB机器上的slave停掉,以防数据重写
4. 删除/data/mysql/data/下所有文件
5. mysql_install_db
6. 开始还原数据
service mysql start
mysql> SHOW DATABASES; #查看数据库, 数据丢失!
mysql> SET sql_log_bin=OFF; #暂时先将二进制日志关闭
非压缩还原
mysql -uroot -p < full_bk_20170824001553.sql
压缩还原
gunzip < db/full_bk_20170831071221.tar.gz | mysql -uroot -padmin
mysql> SHOW DATABASES; #数据库恢复
还原日期大于最后一次全库备份文件日期的binlog文件中的数据
恢复binlog-file二进制日志文件:
mysqlbinlog --no-defaults /data/backup/mysql-bin.000007 /data/backup/mysql-bin.000008 /data/backup/mysql-bin.000009 | mysql -uroot -p123456
从某一(367)点开始恢复:
mysqlbinlog --no-defaults --stop-position="367" mysql-bin.000001| mysql -uroot -p123456 test
先查好那一点(用more来查看)
[root@localhost mysql]# /usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --start-position="794" --stop-position="1055" | more
然后恢复:
[root@localhost mysql]# /usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --start-position="794" --stop-position="1055" | /usr/bin/mysql -uroot -p123456 test
mysql> SET sql_log_bin=ON; 开启二进制日志
查看master状态
mysql> show master status;
更新slave机器上的master信息.
遇见问题:
slave启动报这个错误:Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
解决方案:
stop slave;
reset slave;
start slave;
发表评论
-
MySQL索引原理以及查询优化
2019-02-26 16:39 366转:https://www.cnblogs.com/bypp/ ... -
mysql 常见运维操作
2018-01-21 10:44 0查看I0线程 select a.thd_id,b.THREAD ... -
mysql binlog详解及常用操作
2018-01-21 10:10 345转http://blog.csdn.net/wyzxg/art ... -
Mysql半同步复制
2018-01-18 17:24 323转:https://www.cnblogs.com/ivict ... -
Mysql 导出命令mysqldump
2017-10-13 17:52 301转:http://www.cnblogs.com/chenmh ... -
Mysql 备份方案
2017-08-23 17:33 13转:http://blog.csdn.net/hiji ... -
SQL 优化步骤
2016-08-20 13:49 336当一个SQL慢的时候,我们第一步是先看执行计划 explai ... -
: Mysql 监控优化之---MYSQLReport
2016-08-12 16:11 300http://hackmysql.com/ 软件下载: htt ... -
Mysql 监控优化之---MySQLTuner
2016-08-12 16:08 381MySQLTuner 会帮助我们检查mysql当前的系统配置是 ... -
Mysql emoji字符
2016-05-25 11:43 349权声明:本文为博主原创文章,未经博主允许不得转载。 以前在创 ... -
Mysql 表分区
2016-05-17 16:00 327Mysql 表分区操作及相关操作 将ID设为自增长ID a ... -
修改timestamp 默认值
2015-05-13 19:58 489case1: ALTER TABLE `mydb`.`cd ... -
mysql主从复制跳过错误
2015-04-19 19:54 539mysql主从复制,经常会遇到错误而导致slave端复制中断, ... -
mysql双主同步
2015-04-19 19:33 336Mysql 5.6.23 CENTOS 6.4 X86 ... -
查看LOGBIN日志
2015-04-19 17:17 2781 在my.ini(window)配置文件里面 [mysql ...
相关推荐
MySQL数据库备份与还原是一项至关重要的技能,它确保了当数据损坏或丢失时,我们能够从备份...理论知识和实际操作相结合,旨在帮助运维人员和数据库管理员(DBA)制定出高效可靠的MySQL备份与还原方案,确保数据安全。
NBU&MySQL备份恢复 NBU(NetBackup)是一款功能强大的备份恢复软件,而MySQL是一款流行的关系型数据库管理系统。本文将详细介绍如何使用NBU来备份和恢复MySQL数据库。 NBU备份mysql的优势 使用NBU备份mysql数据库...
总的来说,"Mysql数据库备份还原工具"是一个方便的解决方案,它降低了对MySQL数据库进行备份和还原的技术门槛。对于那些希望简化数据库管理流程的用户,特别是小型企业和个人开发者,这是一个非常实用的工具。通过它...
#### MySQL备份的重要性 备份是数据管理中最基础也是最重要的一环。它不仅能够防止数据丢失,还能在数据库遭遇故障时迅速恢复服务,避免业务中断造成的损失。此外,定期的数据库备份还能帮助组织满足合规性要求,...
《易语言MYSQL数据库备份还原器》是一款专为易语言编程环境设计的实用工具,它能够帮助用户方便地对MYSQL数据库进行备份与恢复操作。这款软件的核心功能包括数据库的备份和还原,以及目录复制,旨在提高数据库管理的...
巡云轻论坛系统包含论坛、问答模块。...后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有强大的模板管理功能,布局版块支持设置输出条件,让前端页面展示方便快捷
在IT行业中,数据库管理是至关重要的任务之一,其中包括定期备份和恢复操作。本文将深入探讨如何使用Java语言来实现MySQL数据库...通过分析和理解这些代码,你将能够更好地掌握Java实现MySQL备份与还原的具体实现细节。
本文将详细讲解如何通过Data文件夹备份和还原实现MySQL数据库的备份及恢复,这是一种简单直接的方法,尤其适合小型数据库或者开发测试环境。 首先,我们需要理解MySQL的数据存储结构。MySQL数据库的数据文件主要...
三、MySQL备份工具 1. mysqldump:命令行工具,生成可执行的SQL语句,用于创建数据库结构、数据及权限设置。 2. xtrabackup:InnoDB存储引擎的理想选择,提供热备份功能,可在不锁定数据库的情况下进行备份。 3. ...
一、MySQL备份的重要性 数据库备份是防止数据丢失的关键步骤。无论是系统故障、硬件损坏、恶意攻击还是人为错误,都有可能导致数据丢失。定期备份可以确保在灾难发生时,能够快速恢复到正常状态,降低业务中断的影响...
在实际应用中,对于更复杂、更安全的数据库备份和恢复策略,可以考虑使用MySQL自带的mysqldump工具进行全库备份,或者使用更高级的备份解决方案,如MySQL Enterprise Backup、Percona Xtrabackup等。这些工具提供了...
阿里MySQL备份恢复指南是针对使用阿里云数据库服务的用户,特别是那些依赖MySQL数据库的企业或开发者设计的一份详尽的操作手册。这份指南旨在提供一个简单易懂的流程,帮助用户有效地进行数据库备份和恢复,以确保...
总的来说,"C# 备份还原mysql数据库示例工具"结合了C# Winform的图形化能力与MySQL数据库的强大功能,提供了一个实用的解决方案,对于学习数据库管理和C#编程的初学者来说,这是一个很好的实践项目。通过深入理解并...
### MySQL备份脚本知识点解析 #### 一、脚本概述 该脚本主要实现了MySQL数据库的备份功能,并根据当前日期创建对应的备份文件夹与备份文件,同时对备份文件进行了压缩处理。此脚本适用于Windows环境。 #### 二、...
这个“基于ThinkPHP的MySQL数据库的备份与还原类”为开发者提供了一个便捷的解决方案,允许他们在项目中轻松地实现这两个功能,确保数据的安全性和可恢复性。 首先,我们来理解一下MySQL数据库备份的重要性。数据库...
了解并熟练掌握`mysqldump`进行MySQL备份和还原是数据库管理的重要技能。编写合理的shell脚本可以实现自动化备份,降低因数据丢失带来的风险。在实际操作中,需密切关注可能出现的问题,并采取相应措施以确保备份和...
6. Mysql备份和还原:Mysql备份可以使用mysqldump命令来实现,而Mysql还原可以使用mysql命令来实现。 7. MongoDB备份和还原:MongoDB备份可以使用mongodump命令来实现,而MongoDB还原可以使用mongorestore命令来...
总的来说,这个C#编写的MYSQL数据库备份恢复工具结合了C#的GUI编程能力与MySQL的数据管理功能,为用户提供了一种便捷的数据库维护方案。理解并掌握其工作原理,有助于提升对C#编程和数据库管理的理解,对于开发者来...