MySQL数据备份与恢复

**无论备份还是恢复,都要验证用户及权限**


一、数据备份

1、数据备份的备份方式

  物理备份:cp、tar、tar+gzip  —> 兼容性差,目标地址空间大,耗时

系统自带物理备份工具mysqlhotcopy --> 备份时锁表

逻辑备份:备份产生数据的SQL语句  —> 兼容性好,占用空间小

系统自带完整备份工具Mysqldump(MySQL-client包产生) --> 备份时锁表


2、数据备份的备份策略

  完整备份: 完全备份,把数据库服务器上的所有库所有表全部备份

  差异备份: 自‘完整备份’之后,叠加备份所有产生的新数据。

优缺点:备份数据有冗余,占用空间,恢复时方便

例如:第1天做了完整备份,第2天产生3条记录,差异备份时需备份3条记录,第3天产生2条            记录,差异备份时则需备份5条记录

完整备份  1条记录    1day     备份1条记录

差异备份  3条记录    2day     备份3条记录

2条记录    3day     备份5条记录

……… ……………


  增量备份:‘自上一次备份’之后,备份产生的新数据。

  优缺点:备份节省空间,恢复时调用的文件多

完整备份  1条记录    1day    1

增量备份  3        2day    3

2        3day    2

……… …………


3、工作中通常备份策略用法:

  完整备份+差异备份

  完整备份+增量备份

     

4、备份工具

1)完整备份工具mysqldump

**由mysql包提供,数据量不太大时用,

**备份的时候锁表,备份期间别人不能对备份数据进行操作

格式:mysqldump [–h数据库IP/主机名] -u登录用户名 -p密码 数据库名 > 路径/备份文件名.sql                                                         

不写路径时,默认备份到当前命令所在的目录下

若写路径,需事先创建好

若数据库管理员从本机登录且没有密码:mysqldump 数据库名 >路径/xxx.sql

用来连接数据库的用户要对相应的数据库有权限


数据库名的表示格式:

所有库               --all-databases

指定单个库下的所有表    数据库名

某个库下的某个表      数据库名 表名

备份某几个库           -B 数据库名1  数据库名2  数据库名N

例:mysqldump -uroot -p --all-databases > /mysqlbak/alldb.sql //备份数据库服务器上的所有库


解决:将备份写入计划任务后,因备份名一样,会复盖前天的备份,可以用“时间”做备份文件名。


获取时间命令:#date +%F   →2014-07-21

    #date +%T  →17:30:17

mysqldump webdb > webdb-`date +%F`.sql

mysqldump -h192.168.10.20 -uroot -ptarena webdb > /mysqllog/webdb-`date+%F`.sql //远程备份

二、数据恢复

格式:mysql –h服务器IP/主机名  -u登录用户名 –p密码 数据库名 < 备份文件名  

   mysql 数据库名 < 备份文件名  //若登录数据库不需要用户名密码


注意:恢复数据时候“<”必须写对千万注意不要写反,要是恢复的时候写成“>”那么会自动清除备份文件内容

备份库的时候,前面加-B备份出的文件里面带“创建库”的SQL语句,恢复的时候不用在数据库里在创建库

数据库名是可选项,恢复数据时候必须查看一下备份文件里面的SQL语句,当恢复时使用的备份文件里有建库SQL语句时,数据库名可以省略,反之没有建库SQL语句的时候必须“进数据库里面手动建一个库(库名可以随便写)”然后在恢复的时候写上新建的数据库名

例:

mysql webdb < webdb-2014-01-06.sql

mysql -h192.168.10.20 -uroot -ptarena webdb < /mysqllog/webdb-2014-01-06.sql

时间: 2024-08-01 22:41:57

MySQL数据备份与恢复的相关文章

DBA成长之路---mysql数据备份与恢复

数据备份与恢复 备份方式: 物理备份:直接拷贝备份库和表对应的文件 cp -r /var/lib/mysql/mysql  /mysql.bak tar -zcvf /mysql.tar.gz  /varlib/mysql/mysql/* 逻辑备份:执行备份时,根据已有的库和表生成对应的sql命令,把生成的sql命令存储到指定的备份文件里 备份策略: 完全备份: 备份所有数据(表,库,服务器) 差异备份:备份自完全备份后所新产生(备份新产生的数据) 增量备份:备份自上一次备份后,所有新产生(备份

MySQL 数据备份与恢复

mysqldump 数据备份与恢复 mysqlbinlog 数据增量恢复

十三、MySQL数据备份与恢复

13.1.数据备份 数据备份:目的用于恢复:必须对备份数据做恢复测试. 备份类型: 热备份:在线备份,读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 物理备份和逻辑备份: 物理备份:复制数据文件:速度快 逻辑备份:将数据导出至文本文件中:速度慢.丢失浮点数精度,需要重建索引:方便使用文本处理工具直接对其处理.可移植能力强. 完全备份.增量备份和差异备份: 完全备份:备份全部数据: 差异备份:仅备份上次完全备份以来变化的数据: 增量备份:仅备份上次完全备份或增量

Mysql数据备份与恢复命令

转载:原文地址 一.备份常用操作基本命令 1.备份命令mysqldump格式 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 2.备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库. mysqldump --add-drop-table -uusername -ppassword -database databasename > backupfi

CentOS 6.5 MySQL/MariaDB数据备份与恢复备份详解

MySQL/MariaDB数据备份与恢复备份 数据对我们来说再重要不过了,那我们如何做到对数据尽可能的安全呢,当我们的数据丢失了那又该怎么做呢,所以说数据备份对我们的数据安全性来说太重要了. 数据对我们来说再熟悉不过了,也最平常不过了,我们每天都在接触各色各样的数据,数据记录了我们平常相关的业务信息,所以数据对于我们来说是很重要的,这么重要的数据如果我们的数据丢失了那我们是不是相关的业务都没法进行了呢,这应该是个很麻烦的问题,那我们怎么保护我们的数据的安全呢,这就要用到我们的数据备份了. 如何执

mysql数据的备份与恢复 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;

在科技迅速发展的今天,我们每个人都生活在大数据时代,谁掌握的数据越多,就越能了解消费者的需求,也就更能拥有更好的发展前景,因此数据变得很重要.这时数据的备份就不可缺少了.今天我们就来谈一下mysql数据的备份与恢复. 数据备份按业务划分可分为:完全备份,增量备份,差异备份. 1. 完全备份(Full Backup) 所谓全备份就是对整个数据库的数据和数据结构进行备份.这种备份方式的好处就是很直观,容易被人理解.而且当发生数据丢失的灾难时,只要用灾难之前的备份文件,就可以恢复丢失的数据.然而它也有

MySQL/MariaDB的数据备份与恢复

1. 什么是数据备份与数据恢复? 1) 数据备份:已有数据的副本: 2) 数据恢复:将副本和二进制日志的内容重新应用到线上系统: 2. 为什么要进行数据备份与恢复? 主要用于防止灾害的发生,可进行灾难恢复,有多种灾难可能对数据造成破坏:如:自然灾害, hacker attack,计算机本身硬件老化,软件故障(如:BUG,恶意代码等),操作人员误操作(如:误删除): 3. 备份有哪些类型? 按照是否备份整个数据集分类: 1)全局备份  :备份从起始到执行备份操作时的所有数据内容: 2)增量备份 

MySQL的备份与恢复具体解释

MySQL数据备份 在mySQL里面,有逻辑备份和物理备份.逻辑备份最大长处是对于各种存储引擎,都能够使用相同的方法来备份. 而物理备份则不同.不同的存储引擎有着不同的备份方法. 逻辑备份与恢复 备份 在MySQL中逻辑备份是使用mysqldump将数据库中的数据备份为一个文本文件,备份的文件能够被查看和编辑.依照备份范围,能够将备份分为下面三种备份. 备份指定的一个数据库或者该数据库中的某些表 mysqldump [options] 数据库名 [表名] > data.sql 备份指定的多个数据

利用mysqlbump实现MySQL逻辑备份与恢复

mysqldump作为重要的MySQL备份工具,功能相当强大.备份参数.恢复策略,需要仔细研究. (1)基本语法 备份单个数据库或单个数据库中的指定表: mysqldump [OPTIONS] database [tables] 示例: 1.备份单个数据库mysql:mysqldump -uroot -p mysql > mysql.sql 2.备份单个数据库mysql的指定表user:mysqldump -uroot -p mysql user > mysql.user.sql 备份多个数据