一、数据备份

  

  1. #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。
  2. #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
  3. #3. 导出表: 将表导入到文本文件中。
  1. #语法:
  2. # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 文件路径+备份文件.sql
  3.  
  4. #示例:
  5. #单库备份
  6. mysqldump -uroot -p123 db1 > db1.sql
  7. mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql
  8.  
  9. #多库备份
  10. mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql
  11.  
  12. #备份所有库
  13. mysqldump -uroot -p123 --all-databases > all.sql

cmd命令书写效果展示

二、恢复数据

  1. #方法一:
  2. [root@localhost backup]# mysql -uroot -p123 < /backup/all.sql
  3.  
  4. #方法二:
  5. mysql> use db1;
  6. mysql> SET SQL_LOG_BIN=0;
  7. mysql> source /root/db1.sql
  8.  
  9. #注:如果备份/恢复单个库时,可以修改sql文件
  10. DROP database if exists school;
  11. create database school;
  12. use school;

总结:

  基本语法:windows系统

  [cmd窗口]C:\WINDOWS\system32>  mysql -u 用户名 -p >  备份文件的路径+文件名(如c:/db1.sql)

                    mysql -u 用户名 -p <  需恢复文件的路径+文件名(如c:/db1.sql)

  基本语法:linux系统

  [shell窗口]C:\WINDOWS\system32>   mysql -u 用户名 -p >  备份文件的路径+文件名(如c:/db1.sql)

                   mysql -u 用户名 -p <  需恢复文件的路径+文件名(如c:/db1.sql)

  >     备份;

  <     恢复;

三、备份/恢复案例

  1. #数据库备份/恢复实验一:数据库损坏
  2. 备份:
  3. 1. # mysqldump -uroot -p123 --all-databases > /backup/`date +%F`_all.sql
  4. 2. # mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog
  5. 3. 插入数据 //模拟服务器正常运行
  6. 4. mysql> set sql_log_bin=0; //模拟服务器损坏
  7. mysql> drop database db;
  8.  
  9. 恢复:
  10. 1. # mysqlbinlog 最后一个binlog > /backup/last_bin.log
  11. 2. mysql> set sql_log_bin=0;
  12. mysql> source /backup/2014-02-13_all.sql //恢复最近一次完全备份
  13. mysql> source /backup/last_bin.log //恢复最后个binlog文件
  14.  
  15. #数据库备份/恢复实验二:如果有误删除
  16. 备份:
  17. 1. mysqldump -uroot -p123 --all-databases > /backup/`date +%F`_all.sql
  18. 2. mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog
  19. 3. 插入数据 //模拟服务器正常运行
  20. 4. drop table db1.t1 //模拟误删除
  21. 5. 插入数据 //模拟服务器正常运行
  22.  
  23. 恢复:
  24. 1. # mysqlbinlog 最后一个binlog --stop-position=260 > /tmp/1.sql
  25. # mysqlbinlog 最后一个binlog --start-position=900 > /tmp/2.sql
  26. 2. mysql> set sql_log_bin=0;
  27. mysql> source /backup/2014-02-13_all.sql //恢复最近一次完全备份
  28. mysql> source /tmp/1.log //恢复最后个binlog文件
  29. mysql> source /tmp/2.log //恢复最后个binlog文件
  30.  
  31. 注意事项:
  32. 1. 完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库)
  33. 2. 恢复期间所有SQL语句不应该记录到binlog

案例演示

四、实现自动化备份

  1. 备份计划:
  2. 1. 什么时间 2:00
  3. 2. 对哪些数据库备份
  4. 3. 备份文件放的位置
  5.  
  6. 备份脚本:
  7. [root@localhost~]# vim /mysql_back.sql
  8. #!/bin/bash
  9. back_dir=/backup
  10. back_file=`date +%F`_all.sql
  11. user=root
  12. pass=123
  13.  
  14. if [ ! -d /backup ];then
  15. mkdir -p /backup
  16. fi
  17.  
  18. # 备份并截断日志
  19. mysqldump -u${user} -p${pass} --events --all-databases > ${back_dir}/${back_file}
  20. mysql -u${user} -p${pass} -e 'flush logs'
  21.  
  22. # 只保留最近一周的备份
  23. cd $back_dir
  24. find . -mtime +7 -exec rm -rf {} \;
  25.  
  26. 手动测试:
  27. [root@localhost ~]# chmod a+x /mysql_back.sql
  28. [root@localhost ~]# chattr +i /mysql_back.sql
  29. [root@localhost ~]# /mysql_back.sql
  30.  
  31. 配置cron
  32. [root@localhost ~]# crontab -l
  33. 2 * * * /mysql_back.sql

备份计划实现

五、表的导入导出 (建议使用可视化软件(navicat)进行数据导入,比较方便)

  1. SELECT... INTO OUTFILE 导出文本文件
  2. 示例:
  3. mysql> SELECT * FROM school.student1
  4. INTO OUTFILE 'student1.txt'
  5. FIELDS TERMINATED BY ',' //定义字段分隔符
  6. OPTIONALLY ENCLOSED BY '”' //定义字符串使用什么符号括起来
  7. LINES TERMINATED BY '\n' ; //定义换行符
  8.  
  9. mysql 命令导出文本文件
  10. 示例:
  11. # mysql -u root -p123 -e 'select * from student1.school' > /tmp/student1.txt
  12. # mysql -u root -p123 --xml -e 'select * from student1.school' > /tmp/student1.xml
  13. # mysql -u root -p123 --html -e 'select * from student1.school' > /tmp/student1.html
  14.  
  15. LOAD DATA INFILE 导入文本文件
  16. mysql> DELETE FROM student1;
  17. mysql> LOAD DATA INFILE '/tmp/student1.txt'
  18. INTO TABLE school.student1
  19. FIELDS TERMINATED BY ','
  20. OPTIONALLY ENCLOSED BY '”'
  21. LINES TERMINATED BY '\n';

表单导入导出

六:数据迁移(版本相同)

  1. 务必保证在相同版本之间迁移
  2. # mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456

mysql 数据备份与数据导入到出的更多相关文章

  1. c# Process cmd 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据

    c# Process 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据 直接贴代码 前提:mysql5.7 vs2017 ...

  2. mysql 数据备份及数据迁移

    一.使用mysql数据导出进行备份时,会备份整个表的数据,有时候只想备份一部分数据,这个时候可以使用如下方法: 1. 使用insert into 和 select结合: insert into tal ...

  3. HBase数据备份及恢复(导入导出)的常用方法

    一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...

  4. Redis数据持久化、数据备份、数据的故障恢复

    1.redis持久化的意义----redis故障恢复 在实际的生产环境中,很可能会遇到redis突然挂掉的情况,比如redis的进程死掉了.电缆被施工队挖了(支付宝例子)等等,总之一定会遇到各种奇葩的 ...

  5. 实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原

    文/朱季谦 目录 一.Elasticdump工具介绍 二.Elasticdump工具安装 三.Elasticdump工具使用 最近在开发当中做了一些涉及到Elasticsearch映射结构及数据导出导 ...

  6. linux下mysql定时备份,数据保存周期一周

    以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...

  7. linux数据误删后,灾难性数据备份与数据还原

    一 准备工作 #rm –rf  误删重要数据怎么办? 1. 要冷静,通知停止该服务器一切操作 2. 查看被删除文件所在分区 #mount 3. 将该分区设置为只读 #mount -r -n -o re ...

  8. MySQL(十四)之数据备份与还原

    前言 上一篇分享了关于MySQL事务的知识,在我们数据库中最重要的就是数据了,所以数据的备份就显的特别的重要! 为什么要备份数据? 在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大 ...

  9. hbase数据备份或者容灾方案

    HBase的数据备份或者容灾方案有这几种:Distcp,CopyTable,Export/Import,Snapshot,Replication,以下分别介绍(以下描述的内容均是基于0.94.20版本 ...

随机推荐

  1. [转]centos6.5修改yum安装的mysql默认目录

    本文转自:https://www.cnblogs.com/fefjay/p/6044444.html 0.说明 Linux下更改yum默认安装的mysql路径datadir.linux下,MySQL默 ...

  2. eclipse使用svn

    主干(trunk).分支(branch ).标记(tag) 用法示例 + 图解   以svn为例,git的master相当于trunk,dev分支相当于branches --------------- ...

  3. for循环与forEach性能思考

    今日看到一句话: 基于循环的迭代比基于函数的迭代法快8倍,因此有了该篇验证博客. 验证代码如图: 验证结果:在数量比较少的时候,无明显差别,当数量级达到10的4次方时候,for循环的效率优势明显:如图 ...

  4. JS中数组重排序方法

    在数组中有两个可以用来直接排序的方法,分别是reverse()和sort().下面通过本文给大家详细介绍,对js数组重排序相关知识感兴趣的朋友一起看看吧 1.数组中已存在两个可直接用来重排序的方法:r ...

  5. C#Thread的方法、Start()、Sleep(int)、Abort()、Suspend()、Resume()

    Thread类有几个至关重要的方法 Start():启动线程: Sleep(int):静态方法,暂停当前线程指定的毫秒数: Abort():通常使用该方法来终止一个线程: Suspend():该方法并 ...

  6. 【代码笔记】Web-Javascript-Javascript typeof

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  7. windows10系统关闭自动更新服务

    一.关闭Windows10系统的自动更新服务 1:使用快捷键Win+R,打开运行 2:输入命令:services.msc,打开系统服务界面 找到Windows Update双击 将启动类型改为[禁用] ...

  8. Android为TV端助力 双缓存机制

    废话不多说,直接贴代码! 所谓的双缓存,第一就是缓存在内存里面,第二就是缓存在SD卡里面,当你需要加载数据时,先去内存缓存中查找,如果没有再去SD卡中查找,并且用户可以自选使用哪种缓存! 缓存内存和缓 ...

  9. Android-启动页“android:windowBackground”变型?

    <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android=" ...

  10. mysql之系统默认数据库

    相关内容: 系统默认数据库information_schema,performance_schema,mysql,test  的意义 首发时间:2018-02-23 17:10 安装mysql完成后, ...