mysql的备份和还原

备份:副本

RAID1,RAID10:保证硬件损坏而不会业务终止,不能保证逻辑上的破坏

备份类型:

热备份,温备份和冷备份

热备份:读,写都不受影像

温备份:仅可以执行读操作

冷备份:离线备份;读写操作均中止

物理备份和逻辑备份

物理备份:复制数据文件;

逻辑备份:将数据导出至文本文件中;

完全备份,增量备份和差异备份:

完全备份:备份全部数据;

增量备份:仅备份上次完全备份或增量备份后变化的数据:

差异备份:仅备份上次完全备份以来变化的数据

在线:物理完全备份

还原:

备份什么:

数据

配置文件

二进制日志

事务日志

热备份:

MyISAM:温备份

Innodb:可以直接进行热备份 xtrabackp,mysqldump

物理备份:速度块,

逻辑备份:速度慢,丢失浮点数精度;方便使用文本处理工具进行处理,可移植性强;

备份策略:完全+增量;完全+差异

MySQL备份工具

mysqldump 逻辑备份工具,MyISAM温备份,InnoDB热备份

mysqlhotcopy 物理备份工具,温备份

文件系统工具:

cp:冷备份

lv:逻辑卷的快功能,几乎热备;

mysql> flush tables;

mysql> lock tables;

创建快照:释放锁,而后复制数据

InnoDB:

第三组工具:

ibbackup 商业工具

xtrabackup 开源工具

mysqldump:逻辑备份

mysqldump(完全备份)+二进制日志

完全+增量:

mysqldump db_NAME [tb1][tb2]

--master-data=n   (n={0|1|2})

0:不记录二进制日志文件及路径位置

1:以chnage master to 的方式记录位置,可用于恢复后直接启动从服务器;

2:以chnage master to 的方式记录位置,但默认为被注释;

--lock-all-tables:锁定所有表

--flush-logs:执行日志flush;

如果指定库中的表类型均为InoDB,可使用(不要和--lock-all-tables同时使用)

--single-transaction启动热备份

备份多个数据库:

--all-databases;备份所有库

--databases DB_NAME,DB_NAME,...:备份指定库

--events

--routines

--triggers

备份多个数据库:

[[email protected] ~]# mysqldump -uroot -p --lock-all-tables --flush-logs  --all-databases --master-data=2 > /root/all.sql

[[email protected] ~]# less all.sql 可以查看备份到第几个二进制日志了

mysql> purge binary logs to ‘mysql-bin.000011‘; 删除备份之前的二进制日志

mysql> show binary logs;

增量备份:

mysql> flush logs;

cp mysql-bin.000011 /root/

或者

mysql> mysqlbinlog mysql-bin.000011 > /root/mon-incremental.sql;

使用二进制日志还原数据库

先初始化数据库

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

service mysqld start

mysql -uroot -p < all.sql 导入数据库

mysql -uroot -p < mon-incremental.sql 导入增量备份

mysqlbinlog mysql-bin.000012 > temp.sql

mysql -uroot -p < temp.sql

备份单个数据库或表:

mysql> flush tables with read lock;先刷新表,并且以读的方式锁表

mysql> flush logs;刷新日志

mysql> show binary logs; 查看是从第几个二进制日志开始备份的

[[email protected] ~]# mysqldump -uroot -p students >/root/students.sql 开始备份

可以用vim查看备份文件

mysql> unlock tables; 释放锁

还原单个数据库或表:

mysql> create database studb;还原时需要先创建数据库,再导入数据

[[email protected] ~]# mysql studb< studenst.sql

备份策略:周完成+每日增量

完全备份:mysqldump

增量备份:备份二进制日志文件(flush logs)

时间: 2024-10-06 04:44:11

mysql的备份和还原的相关文章

MySQL的备份与还原

MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Win32下MySQL的备份与还原 1.1 备份 开 始菜单 | 运行 | cmd |利用"cd /Program Files/MySQL/MySQL Server 5.0/bin"命令进入bin文件夹 | 利用"mysqldump  -u 用户名 -p databasename >exportfilename"导出数据库到文件,如mysqldump -u root

java实现的MySQL自动备份和还原(struts2+Hibernate)---兼容 window+Linux

相信很多朋友都经历过数据库出问题的情况,我也同样(见我的上一篇博文:phpmyadmin误删表后的恢复过程(心惊胆跳啊)   ).如果数据很大或者很重要,那么恢复起来是相当困难的,所以我们在做一个相对完善的系统时,数据库的备份/还原功能是必不可少的.本文将在javaEE环境下实现MySQL的自动备份/还原,使用了struts2和hibernate框架,MySQL版本是5.1.16. 下图展示的是web application的执行流程, Timer是在一个随着application启动而启动的s

Mysql数据库备份和还原常用的命令

Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的常用命令. 一.备份命令 1.备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename>backupfile.sql 2.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有

MySQL数据库备份与还原

备份数据库 1.使用mysqldump命令备份 备份一个数据库:mysqldump -u 用户名 -p密码 数据库名 [表名1,表名2...]>备份文件路径及名字.sql 如果没有表名,则备份整个数据库 eg: mysql -u root -p test studentinfo >D:\test.sql 备份多个数据库:mysqldump -u 用户名 -p --databases 数据库1,数据库2...  >  备份文件路径及名字.sql 备份所有数据库:mysqldump -u 用

[转]MySQL数据库备份和还原的常用命令小结

MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库. mysqldump ---add-drop-table -uusername -ppassword databasena

MySQL数据库备份和还原的常用命令小结

MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库. mysqldump ---add-drop-table -uusername -ppassword databasena

MySQL数据备份与还原

在文本文档中添加100万条数据,每条数据有8个字段,分别是: Id    int(11)      not null  primary key auto_increment Name varchar(40) Age  int(11) Sex  char(5) Salary  int(11) Phone  varchar(13) Email  varchar(64) not null Address  varchar(64) 1.MySQL 文本文件的导入导出数据的方法 导入数据:(在MySQL控

转 MySQL 数据备份与还原

MySQL 数据备份与还原 原贴:http://www.cnblogs.com/kissdodog/p/4174421.html 一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句.然后,将表中的所有记录转换成一条INSERT语句.然后通过这些语句,就能够创建表并插入数据. 1.备份一个

mysql数据库备份与还原(转)

MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Linux下MySQL的备份与还原 1.1 备份 [[email protected] ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [[email protected] mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可. 1.2 还原 法一: [[email protected] ~

mysql数据备份和还原命令

mysql数据库备份和还原 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库. mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql直接将MyS