一、数据库备份的分类
1、从物理与逻辑的角度,备份可以分为物理备份和逻辑备份。
(1)物理备份:对数据库的物理文件(如数据文件、日志文件等)的备份。
物理备份又可分为:
①冷备份:是在关闭数据库的时候进行的
②热备份:数据库处于运行状态,这种备份方法依赖于数据库的日志文件
③温备份:数据库锁定表格(不可写入但可读)的状态下进行的
(2)逻辑备份:对数据库逻辑组件(如表等数据库对象)的备份
①完全备份:每次对数据进行完整的备份
②差异备份:备份那些自从上次完全备份之后被修改过的所有文件
③增量备份:只有上次完全备份或者增量备份后被修改的文件才会被备份
二、备份的操作:
二、备份命令mysqldump 和 恢复
mysqldump可以将制定的库、表或全部的库导出格式为.sql的脚本,需要时可进行数据恢复。
1、对单个库进行完全备份
语法:mysqldump -u 用户名 -p[密码] [选项] [数据库名] > /路径/备份文件名
[mysql 01]:备份
show databases;
mysqldump -uroot -p0 yunjisuan > /tmp/yun.sql 此步须在~目录下,即非交互模式下执行
drop databases yunjisuan;
show databases;
create database yunjisuan;
show databases;
[mysql 01-1]:恢复
mysql -uroot -p0 yunjisuan < /tmp/yun.sql;
[mysql 01]:查看
show databases;
use yunjisuan;
show tables;
select * from yunjisuan.users; 查到此表下含‘李天一’ ‘666’格式内容,备份成功
-----------------------------------------------------
2、对多个库进行完全备份
语法:mysqldump -u 用户名 -p[密码] [选项] --databases 库1 库2 > /备份路径/备份文件名
[mysql 01]:备份:mysqldump -uroot -p0 --databases yunjisuan aaa > /tmp/1.sql
[mysql 01-1]恢复:mysql -uroot -p0 < /tmp/1.sql
-----------------------------------------------------------------------------------------------------------
3、对所有库进行完全备份
语法:mysqldump -u 用户名 -p[密码] [选项] --all-databases > /备份路径/备份文件名
选项:--opt 加快备份速度,当备份数据量大时使用
[mysql 01]:备份
mysqldump -uroot -p0 --opt --all-databases > /tmp/mysql_all.sql
(mysqldump -uroot -p0 yunjisuan > /tmp/yun.sql 此步须在~目录下,即非交互模式下执行)
drop database yunjisuan; 测试:把yunjisuan库删掉
show databases; 发现yunjisuan库
[mysql 01-1]:恢复:mysql -uroot -p0 < /tmp/mysql_all.sql
[mysql 01]:查看
show databases;
use yunjisuan;
show tables;
select * from yunjisuan.users; 查到此表下包含‘李天一’ ‘666’格式内容,备份成功
---------------------------------------------------------------------------------------------
4、对表进行完全备份
语法:mysqldump -u 用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
[mysql 01]:备份:mysqldump -uroot -p0 yunjisuan users > /tmp/2.sql
[mysql 01-1]:恢复:mysql -uroot -p0 < /tmp/2.sql
-------------------------------------------------------------------------------------------
5、对表结构的备份
语法:mysqldump -u 用户名 -p [密码] -d 数据库名 表名 > /备份路径/备份文件名
[mysql 01]:备份:mysqldump -uroot -p0 -d yunjisuan users > /tmp/3.sql
[mysql 01-1]:恢复:mysql -uroot -p0 < /tmp/3.sql