数据安全备份的意义

  1. 在出现意外的时候(硬盘损坏、断点、黑客攻击),以便数据的恢复
  2. 导出生产的数据以便研发人员或者测试人员测试学习
  3. 高权限的人员那操作失误导致数据丢失,以便恢复

备份类型

  • 完全备份:对整个数据库的备份
  • 部分备份:对数据进行部分备份(一张或多张表)
    • 增量备份:是以上一次备份为基础来备份变更数据
    • 差异备份:是以第一次完全备份为基础来备份变更数据

备份方式

  • 逻辑备份:直接生成sql语句,在恢复数据的时候执行sql语句
  • 物理备份:复制相关库文件,进行数据备份(my.cnf指向的数据存放目录)

区别

  1. 逻辑备份效率低,恢复数据效率低,节约空间
  2. 物理备份浪费空间,备份数据效率快

备份场景

  • 热备份:备份时,不影响数据库的读写操作
  • 温备份:备份时,可以读,不能写
  • 冷备份:备份时,关闭mysql服务,不能进行任何读写操作

Mysqldump备份(跨机器)

单库语法

备份基础语法:
mysqldump -u用户 -hip -p密码 数据库名 表名 | 压缩方式 > 绝对路径+文件名

跨机器备份

跨机器备份:

备份描述:mac本上安装了mysql数据库(172.20.10.2),使用自搭Linux(172.20.10.4)机器上的mysql备份mac本上的nba库,并使用压缩文件方式,备份至:/mysql_data_back下
来到linux的mysql安装目录(172.20.10.4):
创建目录:mkdir /mysql_data_back
切换:cd /usr/local/mysql/bin
备份:./mysqldump -uroot -proot -h172.20.10.2 nba | gzip > /mysql_data_back/nba.sql.gz

本机备份

本机备份:

备份描述:linux(自搭),备份本就上的db1库,并使用压缩方式,备份至:/mysql_data_back下
备份:./mysqldump -uroot -proot db1 | gzip > /mysql_data_back/db1.sql.gz

备份库中的某张表

语法:./mysqldump -uroot -proot -h172.20.10.2 nba | gzip > /mysql_data_back/nba.sql.gz

备份描述:在Linux(自搭,172.20.10.4)上,远程备份mac本(172.20.10.2)nba(库)的nba_player(表)
在原来的基础上,nba(库名) 在追加表名即可
./mysqldump -uroot -proot -h172.20.10.2 nba nba_player | gzip > /mysql_data_back/nba-nba_player.sql.gz

备份多库

语法:./mysqldump -u用户 -p密码 --databases 库1 库2 | gzip > 绝对路径+文件名
备份描述:备份本机的:db1、db2两个库
备份:./mysqldump -uroot -proot --databases db1 db2 | gzip > /mysql_data_back/db1-db2.sql.gz

注意

  只备份表结构,数据没备份!

备份全库

  描述:如果远程服务器上数据库较多的话,可以使用全库备份

语法:
./mysqldump -uroot -proot -all --databases | gzip > /mysql_data_back/all.sql.gz

Mysql数据的恢复

  备份的数据,不加--databases是没有创建库语句的!

先备份数据:
./mysqldump -uroot -proot --databases db1 | gzip > /mysql_data_back/db1.sql.gz 删除库:
drop database db1; 还原数据:
2、解压gz文件:gunzip -d db1.sql.gz
1、登录数据库:mysql -uroot -proot -h 127.0.0.1 < /mysql_data_back/db1.sql

也可以指定数据库后,在恢复数据

语法:
mysql -u用户 -p密码 -h ip地址 数据库 < 绝对路径+文件名
示例:mysql -uroot -proot -h 127.0.0.1 issdb_1 < /mysql_data_back/issdb_1.sql

查看Mysql数据库源文件

方式一

登录mysql:mysql -uroot -proot
查看:show variables like 'datadir%';
===========================
mysql> show variables like 'datadir%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| datadir | /usr/local/mysql/data/ |
+---------------+------------------------+
1 row in set (0.01 sec)

方式二

  直接查看my.cnf文件即可

Mysql数据安全备份的更多相关文章

  1. mysql数据安全之利用二进制日志mysqlbinlog备份数据

    mysql数据安全之利用二进制日志mysqlbinlog备份数据 简介:如何利用二进制日志来备份数据 什么是二进制日志: 二进制日志就是记录着mysql数据库中的一些写入性操作,比如一些增删改,但是, ...

  2. mysql数据安全一之数据恢复案例

    mysql数据安全一之数据恢复案例 --chenjianwen 应用场景:适宜开启binlog 日志功能,定时备份并使用--master-data参数备份,在某个时间点丢失数据,用于数据恢复 开篇总结 ...

  3. mysql数据安全之利用二进制日志mysqlbinlog恢复数据

    mysql数据安全之利用二进制日志mysqlbinlog恢复数据 简介:如何利用二进制日志来恢复数据 查看二进制日志文件的内容报错: [root@xdclass-public log_bin]# my ...

  4. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  5. TODO:MongoDB MySQL数据库备份

    TODO:MongoDB MySQL数据库备份 1. MongoDB使用命令备份 mongodump进行整个数据库备份,主要用到的命令参数: -d 要备份的数据库 -o 输出的路径 ./mongodu ...

  6. Java实现MySQL数据库备份(二)

    权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...

  7. Java实现MySQL数据库备份(一)

    下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份: import java.io.BufferedReader; import java.io.File; import jav ...

  8. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  9. MySQL 数据备份与还原

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

随机推荐

  1. centos8平台使用loginctl管理登录用户与session

    一,loginctl的用途: 控制 systemd 登录管理器 管理当前登录的用户和session 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/a ...

  2. Spring Boot 整合多点套路,少走点弯路~

    持续原创输出,点击上方蓝字关注我 个人原创博客+1,点击前往,查看更多 目录 前言 Spring Boot 版本 找到自动配置类 注意@Conditionalxxx注解 注意EnableConfigu ...

  3. solr之functionQuery(函数查询)【转】

    函数查询 让我们可以利用 numeric域的值 或者 与域相关的的某个特定的值的函数,来对文档进行评分. 怎样使用函数查询 这里主要有两种方法可以使用函数查询,这两种方法都是通过solr http 接 ...

  4. Dijkstra算法 python实现

    1.Dijkstra算法的基本实现 \(O(n^2)\) 简介: Dijkstra算法是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题.迪杰斯特拉算法主要特点是从起始点开始,采用贪 ...

  5. 51nod 最大M子段和系列(1052、1053、1115)

    51nod1052 数据量小,可使用O(N*M)的DPAC,递推公式: dp[i][j]=max(dp[i-1][j-1], dp[i][j-1])+a[j]; dp[i][j]表示前j个数取 i 段 ...

  6. kettle学习笔记(三)— 定时任务的脚本执行

    kettle-定时任务 Kettle 的定时任务可以用kettle中的job工作来定时转换(缺点窗口不可关闭),同时也可以使用bat脚本来启动kettle的 '.ktr'转换. 注:这里对定时任务的时 ...

  7. Dockerfile 笔记

    Dockerfile   ARGARG <name>[=<default value>]The ARG instruction defines a variable that ...

  8. js工厂函数

    经常会遇到工厂函数这个词,不过javascript不是严格的面向对象语言,不像java,C#拥有类,所以工厂函数会变得比较模糊. 简单来讲,就是创建一个可以用来创建实例的函数,这样每一个实例都是独立的 ...

  9. [String] intern()方法

    intern()方法设计的初衷,就是重用String对象,以节省内存消耗. JDK1.6以及以前版本中,常量池是放在 Perm 区(属于方法区)中的,熟悉JVM的话应该知道这是和堆区完全分开的. 使用 ...

  10. python机器学习使用PCA降维识别手写数字

    PCA降维识别手写数字 关注公众号"轻松学编程"了解更多. PCA 用于数据降维,减少运算时间,避免过拟合. PCA(n_components=150,whiten=True) n ...