热备份:服务开启状态下进行备份,

冷备份:服务关闭状态进行备份,

冷备份

数据库原有内容如下:

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 学员名单 |
| auth |
| mydb |
| mysql |
| performance_schema |
| shuifei |
| test |
| yg |
+--------------------+
9 rows in set (0.00 sec)

要求备份数据库目录并删除shuifei数据库最后完成还原shuifei

1:直接打包数据库文件夹

[root@localhost ~]# systemctl stop mariadb                       #关闭mysql服务进行备份

[root@localhost ~]# mkdir backup 
tar: 从成员名中删除开头的“/”

[root@localhost ~]# tar Jcf backup/mysql_all-$(date +%F).tar.xz /var/lib/mysql/
tar: /var/lib/mysql/mysql.sock: 忽略套接字(socket)
[root@localhost ~]# ls backup/
mysql_all-2019-10-14.tar.xz

2:删除shuifei数据并开启mariadb服务

[root@localhost ~]# rm -rf /var/lib/mysql/shuifei/

[root@localhost ~]# systemctl start mariadb

MariaDB [(none)]> show databases;                     #查看所有数据库此时shuifei数据库已经消失
+--------------------+
| Database |
+--------------------+
| information_schema |
| 学员名单 |
| auth |
| mydb |
| mysql |
| performance_schema |
| test |
| yg |
+--------------------+
8 rows in set (0.00 sec)

2:进行备份shuifei到数据库目录下

[root@localhost ~]# mkdir restore
[root@localhost ~]# tar xf backup/mysql_all-2019-10-14.tar.xz -C restore/

[root@localhost mysql]# mv shuifei/ /var/lib/mysql/

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| shuifei |
| yg |
+--------------------+
9 rows in set (0.00 sec)

 热备份

第二种:使用专用备份工具mysqldump

对单个库进行完全备份:

格式:mysqldump -u 用户名 -p密码 --databases 库名 > /备份路径/备份文件名

[root@localhost ~]# mysqldump -uroot -p123123 --databases shuifei > backup/shuifei-$(date +%Y%m%d).sql

[root@localhost backup]# ls
mysql_all-2019-10-14.tar.xz    shuifei-20191014.sql

对多个库进行完全备份:

格式:mysqldump -u 用户名 -p密码 --databases 库名1 库名2 > /备份路径/备份文件名

[root@localhost ~]# mysqldump -uroot -p123123 --databases shuifei mydb > backup/shuifei+mydb-$(date +%Y%m%d).sql
[root@localhost ~]# cd backup/
[root@localhost backup]# ls
mysql_all-2019-10-14.tar.xz      shuifei-20191014.sql       shuifei+mydb-20191014.sql
[root@localhost backup]#

第三种:对所有库进行完全备份:

格式:mysqldump -u用户名 -p密码 --event --opt --all-databases > /备份路径/备份文件名

[root@localhost backup]# mysqldump -uroot -p123123 --event --opt --all-databases > backup/mysql_all.$(date +%Y%m%d).sql

[root@localhost backup]# ls
mysql_all.20191014.sql   mysql_all-2019-10-14.tar.xz    shuifei-20191014.sql     shuifei+mydb-20191014.sql

第四种:对表进行备份:

格式:mysqldump -u用户名 -p密码  -d 数据库名 表名> /备份路径/备份文件名

[root@localhost ~]# mysqldump -uroot -p123123 -d shuifei shuifei_info > backup/desc-$(date +%Y%m%d).sql
[root@localhost ~]# cd backup/
[root@localhost backup]# ls
desc-20191014.sql            mysql_all-2019-10-14.tar.xz     shuifei+mydb-20191014.sql
mysql_all.20191014.sql     shuifei-20191014.sql

使用mysqldump备份后,恢复数据库:

方法1:source命令

登入到MYSQL数据库后,执行source备份脚本路径

删除yg和shuifei两个数据库

MariaDB [yg]> drop database yg;

MariaDB [yg]> drop database shuifei;

恢复yg和shuifei两个数据库:

MariaDB [yg]> source backup/shuifei-20191014.sql 

MariaDB [mysql]> source  backup/yg-20191014.sql 

第二种方法:mysql命令:

格式:mysql -u 用户名 -p密码 < 库备份脚本路径

MariaDB [shuifei]> drop database yg;
Query OK, 1 row affected (0.00 sec)

[root@localhost ~]# mysql -uroot -p123123 < backup/yg-20191014.sql 

[root@localhost ~]# mysql -uroot -p123123 -e 'show databases'         #-e表示可以在外部执行mysql语句
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| shuifei |
| yg |
+--------------------+

数据库单,多,全库、冷热备份思路及备份与还原(mysqldump)的更多相关文章

  1. 通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复

    在实际的生产环境中,为了管理方便,我们一般是通过 Xtrabackup实现实例的全库备份,即将实例上的所有数据库备份. 但是,考虑到快速恢复 我们常常面临的需求是快速还原单个数据库.针对初学者来说,网 ...

  2. Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

    原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...

  3. MySQL 採用Xtrabackup对数据库进行全库备份

    1,xtrabackup简单介绍 关于数据库备份以及备份工具.參考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已 ...

  4. MySQL用全库备份数据恢复单表数据

    备份数据库时,采用了全库备份,但是因为某些原因需要回滚一个表的数据到备份数据库上,如果回滚整个库就比较费时间,因为可能这个表只有几十M,但是其它表可能有十几上百G,这时候就需要将需要恢复的表提取出来了 ...

  5. Percona备份mysql全库及指定数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份) Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对I ...

  6. MySQL 采用Xtrabackup对数据库进行全库备份

    1,xtrabackup简介 关于数据库备份以及备份工具,参考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已经如 ...

  7. LINUX学习笔记——LINUX下EXP命令全库备份数据库文件

    LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup  --创建backup文件夹 cd  /   --进入cd语句 ls  -l ...

  8. Mysql数据库定时全库备份

    如下脚本用于mysql全库定时备份 mysql_dump_script.sh #!/bin/bash #保存备份个数,最多保留4个文件 number=4 #备份保存路径 backup_dir=/db/ ...

  9. 使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库

    mysql数据库提供了一个很好用的工具mysqldump用以备份数据库,下面将使用mysqldump命令进行备份所有数据库以及指定数据库 一.mysqldump一次性备份所有数据库数据 /usr/lo ...

随机推荐

  1. ajax中的参数

    function login() { $.ajax({ //几个参数需要注意一下 type: "POST",//方法类型 dataType: "json",// ...

  2. tomcat8.5和redis实现session共享

    1. 问题 ​ 由于之前看其他资料配置的session共享没注意自己tomcat的版本所以出现了诸多问题,tomcat8.5和之前版本的配置是不一样的. 2. 配置 ​ ①将如图所示三个jar包放入t ...

  3. BigInteger和BigDecimal的基本用法

    整型大数 BigInteger: import java.math.BigInteger; import java.util.Scanner; public class Main { public s ...

  4. 抽象语法树 Abstract syntax tree

    什么是抽象语法树? 在计算机科学中,抽象语法和抽象语法树其实是源代码的抽象语法结构的树状表现形式 在线编辑器 我们常用的浏览器就是通过将js代码转化为抽象语法树来进行下一步的分析等其他操作.所以将js ...

  5. 问题 B: 奇怪的电梯

    问题 B: 奇怪的电梯 时间限制: 1 Sec  内存限制: 128 MB[命题人:admin] 题目描述 大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0& ...

  6. Linux - cron - 基础

    概述 cron 相关的理解与使用 背景 最近实在没啥写的了 我写东西, 一般是是这些 看了书过后, 做一些系统的整理 比如之前的 docker 和 git 系列 遇到了实际问题, 解决过程也不是那么顺 ...

  7. (c#)奇数值单元格的数量

    题目 解

  8. 每天进步一点点------Allegro使用脚本记录文件设置工作环境的颜色

    script脚本文件在Allegro PCB DESIGN中能完成很多参数设定,功能很强大.使用script脚本我们能够快速定制自己的Allegro workbench environment. 案例 ...

  9. PAT-链表-A1032 Sharing

    题意:给出两条链表的首地址以及若干个节点的的地址.数据.下一个节点的地址,求两条链表的首个共用节点的地址.如果两条链表没有共用节点,则输出-1. 思路:使用静态链表,首先遍历一遍第一个链表并进行标记. ...

  10. 可以使用的一些API(转存)

    聚合数据 juhe.com 转存的格式不如原文的好看,可以直接访问原文 https://www.jianshu.com/p/9a0acf69b789 api接口应该会越来越火,上个全的,楼主自己找找吧 ...