您的位置 首页 数据库

mysql 逻辑备份实战(mysqldump)初级 (常用)

mysql 逻辑备份实战(mysqldump)

在进行数据库数据逻辑备份操作过程中,主要会运用mysqldump逻辑备份工具,可以实现本地或远程的数据备份;

利用mysqldump进行逻辑备份数据时,主要的备份逻辑是将建库、建表、数据插入语句信息导出,实现数据的备份操作;

基于mysqldump备份数据的逻辑原理,对于数据量比较小的场景(单表数据行百万以内),mysqldump备份工具做备份会更适合些;

在跨平台或跨版本进行数据库数据信息迁移时,mysqldump备份工具做备份也会比较适合,可以避免物理备份的兼容性问题;

说明:在一般情况下,对数据库进行数据恢复的时间耗费,大约是数据库进行数据备份的时间耗费的3~5倍。

 

[root@xiaoQ ~]# mysqldump -u数据库用户 -p数据库密码 [备份参数] > /路径信息/数据库备份文件.sql
-- 在执行mysqldump命令时,也会用到数据库连接登录的基础参数:-u -p -S -h -P

 

 

mysqldump 工具命令实践操作:

数据库备份恢复练习环境准备:

mkdir -p /database_backup

01 数据库全库备份操作练习实践命令:

将数据库中所有数据库全部备份(-A)

[root@xiaoQ ~]# mysqldump -uroot -p123456 -A >/database_backup/all_database.sql
[root@xiaoQ ~]# ll -h /database_backup/all_database.sql
-rw-r--r--. 1 root root 744K 6月  23 23:13 /database_backup/all_database.sql
-- 利用mysqldump命令备份的数据文件是纯文本文件,是可以进行查看或过滤的;***
说明:利用-A创建数据库备份数据时,在备份数据中会含有 create建库语句和use切换库语句,可以直接进行恢复操作即可;

02 数据库部分备份操作练习实践命令:

将数据库中单个数据库进行备份(-B)

# 进行数据库单库备份操作
[root@xiaoQ ~]# mysqldump -uroot -p123456 -B baimei >/database_backup/baimei.sql
[root@xiaoQ ~]# ll -h /databases_backup/baimei.sql
-rw-r--r--. 1 root root 2.0K 6月  23 23:21 /database_backup/baimei.sql

# 过滤部分内容后查看备份数据库文件信息:
[root@xiaoQ ~]# egrep -vi '^-|^/\*|^$|lock' /databases_backup/baimei.sql
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `baimei` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `baimei`;
DROP TABLE IF EXISTS `stu2`;
CREATE TABLE `stu2` (
  `id` int(10) NOT NULL,
  `name` varchar(20) NOT NULL,
  `age` tinyint(2) NOT NULL DEFAULT '0',
  `dept` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `stu2` VALUES (1,'baimei',35,'net sec'),(2,'dashu',25,'linux');

 

以上指定数据库备份完毕后,可以模拟删除相应数据,利用备份的数据库文件进行数据库恢复操作:

mysql> use baimei
mysql> show tables;
+------------------------+
| Tables_in_baimei   |
+------------------------+
| stu2                          |
+------------------------+
1 row in set (0.00 sec)

mysql> drop table stu2;
mysql> show tables;
Empty set (0.00 sec)
-- 模拟删除数据库中数据表信息,造成数据库中数据损坏

# 进行数据库数据复原恢复操作:
# 方式一:在数据库系统中加载数据库备份文件
mysql> source /database_backup/baimei.sql;

# 方式二:在操作系统命令行执行数据恢复命令
[root@xiaoQ ~]# mysql -uroot -p123456 baimei </database_backup/baimei.sql

# 数据信息恢复完毕后检查数据库情况
mysql> show tables;
+------------------------+
| Tables_in_baimei   |
+------------------------+
| stu2                          |
+------------------------+
1 row in set (0.00 sec)

mysql> select * from stu2;
+----+---------+-----+-----------+
| id | name    | age  | dept      |
+----+---------+-----+-----------+
|  1 | baimei  |  35   | net sec |
|  2 | dashu  |  25   | linux     |
+----+---------+-----+-----------+
2 rows in set (0.00 sec)

 

将数据库中多个数据库进行备份(-B)

[root@xiaoQ ~]# mysqldump -uroot -p123456 -B baimei world >/database_backup/baimei_world.sql

# 过滤部分内容后查看备份数据库文件信息:
[root@xiaoQ ~]# egrep -vi '^-|^/\*|^$|lock' /database_backup/baimei_world.sql

说明:利用-B创建数据库备份数据时,在备份数据中会含有 create建库语句和use切换库语句,可以直接进行恢复操作即可;

03 数据表部分备份操作练习实践命令:

将数据库中单个数据表进行备份

# 备份指定数据库中的单个数据表:
[root@xiaoQ ~]# mysqldump -uroot -pbaimei123 baimei stu1  >/databases_backup/baimei_tables_stu1.sql

# 恢复指定数据库中的单个数据表:
[root@xiaoQ ~]# mysql -uroot -pbaimei123  baimei </databases_backup/baimei_tables_stu1.sql

 

将数据库中多个数据表进行备份

# 备份指定数据库中的多个数据表:
[root@xiaoQ ~]# mysqldump -uroot -p123456 world city country >/database_backup/world_tables_city_country.sql

# 恢复指定数据库中的多个数据表:
[root@xiaoQ ~]# mysql -uroot -pbaimei123  world </database_backup/world_tables_city_country.sql

 

说明:数据库单表或多表进行数据备份时,在备份数据中不含有create建库语句和use切换库语句,需要建库并指定库再恢复数据;

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章