一 MySQL数据备份

#1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。

#2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。

#3. 导出表: 将表导入到文本文件中。

一、使用mysqldump实现逻辑备份

#语法:

# mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql-表名 备份一张表

#示例:

#单库备份

mysqldump -uroot -p123 db1 > db1.sql

mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql

#多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql

#备份所有库 mysqldump -uroot -p123 --all-databases > all.sql

二、恢复逻辑备份

#方法一:

[root@egon backup]# mysql -uroot -p123 < /backup/all.sql

#方法二:

mysql> use db1;

mysql> SET SQL_LOG_BIN=0;

mysql> source /root/db1.sql

#注:如果备份/恢复单个库时,可以修改sql文件

DROP database if exists school;

create database school;

use school;

三、备份/恢复案例

复制代码

#数据库备份/恢复实验一:数据库损坏

备份:

1. # mysqldump -uroot -p123 --all-databases > /backup/`date +%F`_all.sql

2. # mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog

3. 插入数据 //模拟服务器正常运行

4. mysql> set sql_log_bin=0; //模拟服务器损坏

mysql> drop database db;

恢复:

1. # mysqlbinlog 最后一个binlog > /backup/last_bin.log

2. mysql> set sql_log_bin=0;

mysql> source /backup/2014-02-13_all.sql //恢复最近一次完全备份

mysql> source /backup/last_bin.log //恢复最后个binlog文件

#数据库备份/恢复实验二:如果有误删除

备份:

1. mysqldump -uroot -p123 --all-databases > /backup/`date +%F`_all.sql

2. mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog

3. 插入数据 //模拟服务器正常运行

4. drop table db1.t1 //模拟误删除

5. 插入数据 //模拟服务器正常运行

恢复:

1. # mysqlbinlog 最后一个binlog --stop-position=260 > /tmp/1.sql

# mysqlbinlog 最后一个binlog --start-position=900 > /tmp/2.sql

2. mysql> set sql_log_bin=0;

mysql> source /backup/2014-02-13_all.sql //恢复最近一次完全备份

mysql> source /tmp/1.log //恢复最后个binlog文件

mysql> source /tmp/2.log //恢复最后个binlog文件

注意事项:

1. 完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库)

2. 恢复期间所有SQL语句不应该记录到binlog中

四、实现自动化备份

备份计划:

1. 什么时间 2:00

2. 对哪些数据库备份

3. 备份文件放的位置

备份脚本:

[root@egon ~]# vim /mysql_back.sql

#!/bin/bash

back_dir=/backup

back_file=`date +%F`_all.sql

user=root

pass=123

if [ ! -d /backup ];then

mkdir -p /backup

fi

# 备份并截断日志

mysqldump -u${user} -p${pass} --events --all-databases > ${back_dir}/${back_file}

mysql -u${user} -p${pass} -e 'flush logs'

# 只保留最近一周的备份

cd $back_dir

find . -mtime +7 -exec rm -rf {} \;

手动测试:

[root@egon ~]# chmod a+x /mysql_back.sql

[root@egon ~]# chattr +i /mysql_back.sql

[root@egon ~]# /mysql_back.sql

配置cron:

[root@egon ~]# crontab -l

0 2 * * * /mysql_back.sql

五、表的导出和导入

SELECT... INTO OUTFILE 导出文本文件

示例:

mysql> SELECT * FROM school.student1

INTO OUTFILE 'student1.txt'

FIELDS TERMINATED BY ',' //定义字段分隔符

OPTIONALLY ENCLOSED BY '”' //定义字符串使用什么符号括起来

LINES TERMINATED BY '\n' ; //定义换行符

mysql 命令导出文本文件

示例:

# mysql -u root -p123 -e 'select * from student1.school' > /tmp/student1.txt

# mysql -u root -p123 --xml -e 'select * from student1.school' > /tmp/student1.xml

# mysql -u root -p123 --html -e 'select * from student1.school' > /tmp/student1.html

在mysql配置文件中添加

[mysql]

secure_file_priv='指定目录'

LOAD DATA INFILE 导入文本文件

mysql> DELETE FROM student1;

mysql> LOAD DATA INFILE '/tmp/student1.txt'

INTO TABLE school.student1

FIELDS TERMINATED BY ','

OPTIONALLY ENCLOSED BY '”'

LINES TERMINATED BY '\n';

六、数据库迁移

# mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456

mysql备份操作_mysql-数据备份操作相关推荐

  1. mysql数据库的在线数据备份与数据恢复

    MySQL是一种常用的关系型数据库管理系统,它支持在线备份和恢复数据.在线备份指的是在MySQL数据库运行时备份数据,而不会中断或影响现有的数据库服务.在本文中,我们将介绍MySQL数据库的在线数据备 ...

  2. 用多备份将网站数据备份到百度云,七牛云存储,阿里云OSS,亚马逊S3,金山云等云存储服务上

    真正运营过网站的人都知道,数据对一个网站来说至关重要,因此,网站数据备份也是日常必做工作.因为误操作,网站被攻击等种种原因都会导致数据丢失,这时,你才会明白"有备无患"的道理.备份 ...

  3. 文件服务器文件多备份方案,FileYee数据备份四种备份方案详解

    原标题:FileYee数据备份四种备份方案详解 其实有很多用户对FileYee数据备份软件不是特别熟悉,今天小编带大家了解一下FileYee的四种备份方案,一定会让大家对于数据备份有一个新的了解. 之 ...

  4. 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案

    前言 阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以 ...

  5. MySQL操作之数据备份与还原

    序号 类型 地址 1 MySQL MySQL操作之概念.SQL约束(一) 2 MySQL MySQL操作之数据定义语言(DDL)(二) 3 MySQL MySQL操作之数据操作语言(DML)(三) 4 ...

  6. php mysql数据备份命令_MySQL数据备份与恢复的相关操作命令

    将mysql安装目录设置到系统环境变量中, 方便在命令行终端直接执行.linux下mysql安装后, root默认密码为空, 可直接执行mysql 登录 将mysql安装目录设置到系统环境变量中, 方 ...

  7. mysql 每日数据备份方案_mysql数据库备份方案

    方案 以一天一次的频率,在每天凌晨2:00备份生产环境数据库至文件服务器.为保证备份文件不过多占用文件服务器空间,备份文件以tgz压缩包格式保存且只保存7天的备份文件.另外每次备份都保存备份日志,一旦 ...

  8. mysql数据库的冷热备份_MySQL数据备份方式,及热备与冷备的优缺点

    一.按照数据库的运行状态分类: (1) 热备:在数据库运行时,直接进行备份,对运行的数据库没有影响 (2) 冷备:在数据库停止运行的时候进行备份,这种备份方式最为简单,只需要拷贝数据库物理文件即可. ...

  9. mysql备份到带库_MySQL数据备份

    MySQL数据备份 一. MySQL数据损坏类型 1.1.物理损坏 磁盘损坏: 硬件,磁道坏,dd,格式化 文件损坏: 数据文件损坏,redo损坏 1.2.逻辑损坏 drop delete trunc ...

  10. mysql 表丢失_Mysql数据库备份 部分数据表丢失 Mysql table doesn't exist 解决

    问题: 直接拷贝data下的数据库数据进行备份,重装升级了数据库,直接复制备份数据到新的数据库data目录下,发现部分数据表不见了. 原因分析: 以表"Table"为例: 如类型是 ...

最新文章

  1. 消除UITableView下面的额外分隔符
  2. 事物运动的状态和方式是谁提出的_金属材料在电磁场中的行为方式及其与光电效应的关系分析...
  3. 科大星云诗社动态20210903
  4. JSR-308和Checker框架为jOOQ 3.9添加了更多类型安全性
  5. 年轻讨厌而又美丽可爱的城市
  6. 工厂支持多数据库开发的三层结构模式随笔(一)
  7. cvSaveImage用法
  8. 高仿精仿快播应用android源码下载
  9. 多层RNN的定义与理解
  10. c语言编程下雪,C语言怎么 实现 下雪效果
  11. 虚拟板式混响插件:Fuse Audio Labs VREV-140 Mac
  12. 字节实习成功提前转正啦!
  13. oracle_查询sql执行剩余时间
  14. wei.getA()
  15. 5.11 按照文字的笔划进行数据的排序 [原创Excel教程]
  16. 【springboot】SMS短信通实现手机验证码
  17. 解决BMap is not defined?
  18. 电话都免费了 移动IM这么牛X 运营商知道么?
  19. 【中级软考—软件设计师】2操作系统2.7磁盘管理【**】:2.7.1磁盘管理01
  20. Day 。 9 我来个初级的文字游戏《魔兽世界。巫妖王之怒》

热门文章

  1. 极客时间VIP年卡,任意专栏免费看,谁要?
  2. 51.1AP!单阶段检测器的新纪录,TOOD:即插即用的检测器换头术,显著提升性能
  3. Python 读取 YUV(NV12) 视频文件-优化
  4. mxnet makeloss
  5. task ':app:compileDebugJavaWithJavac'.错误
  6. onedrive下载
  7. Layout of the output array img is incompatible with cv::Mat (step[ndims-1] !
  8. torch多维取数据
  9. python 排序 sorted 如果第一个条件 相同 则按第二个条件排序
  10. win10 安装pydot