数据库
首页 > 数据库> > Mysql-备份与恢复

Mysql-备份与恢复

作者:互联网

Mysql-备份与恢复

1.备份的分类

1.1物理备份

物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份

1.2逻辑备份

逻辑备份:对数据库逻辑组件(如: 表等数据库对象)的备份

2. 备份方法

2.1 物理冷备

备份时数据库处于关闭状态,直接打包数据库文件

备份速度快,恢复时也是最简单的

2.2 使用工具备份

mysqldump常用的逻辑备份工具
mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表

2.3 二进制日志进行增量备份

进行增量备份,需要刷新二进制日志

3.恢复实验

3.1 物理冷备

1.现有数据库如下

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

2.关闭数据库软件,并备份数据文件

[root@mysql_master ~]# systemctl stop mysqld.service
[root@mysql_master ~]# mkdir /backup
##/usr/local/mysql/data/  根据自己的数据库数据位置变换
[root@mysql_master ~]# tar zcf /backup/mysql all$(date +%F ).tar.gz /usr/local/mysql/data/   

3.启动数据库,删除bbs表

mysql> drop database bbs;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

4.使用物理冷备文件恢复数据

##先备份现有的数据
[root@mysql_master backup]# mkdir bak
[root@mysql_master backup]#  mv /usr/local/mysql/data/ ./bak/
##创建恢复目录
[root@mysql_master backup]# mkdir restore
[root@mysql_master backup]# tar zxf /backup/mysql
mysql                       mysql_all2022-06-05.tar.gz  
[root@mysql_master backup]# tar zxf /backup/mysql_all2022-06-05.tar.gz -C restore/
##将恢复文件恢复到mysql数据目录中
[root@mysql_master backup]# mv restore/usr/local/mysql/data/ /usr/local/mysql/
[root@mysql_master backup]# systemctl restart mysql

5.查看bbs库是否恢复

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

3.2mysqldump备份

1.现有数据

mysql> use bbs;
Database changed
mysql> grant all privileges on *.* to root@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> select * from test;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
+----+----------+
2 rows in set (0.00 sec)

2.使用mysqldump备份数据

[root@mysql_master backup]# mysqldump -uroot -p密码 --databases bbs > ./bbs.sql
[root@mysql_master backup]# ls
bbs.sql

3.删除bbs库

mysql> drop database bbs;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

4.使用sql文件恢复

[root@mysql_master backup]# mysql -uroot -p密码 < ./bbs.sql

5.查看恢复效果(完成恢复)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> select * from bbs.test;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
+----+----------+
2 rows in set (0.00 sec)

标签:+--------------------+,backup,恢复,备份,Mysql,mysql,root,数据库
来源: https://www.cnblogs.com/Canyun-blogs/p/16345380.html