数据库备份的分类
从物理与逻辑的角度,备份可以分为物理备份与逻辑备份
(1)物理备份:对数据库操作系统的物理文件(如数据文件,日志文件)的备份。物理备份又可以分为冷备份与热备份。
冷备份:在关闭数据库多大时候进行。
热备份:数据库正处于运行状态,这种备份以来与数据库的日志文件。
温备份:数据库锁定表格(不可写入但可读)的状态下进行。
(2)逻辑备份:对数据库逻辑组件的备份
从数据库的文件备份策略上可以分为:完全备份、差异备份、增量备份
(1)完全备份:对数据库进行的完整备份
优点:备份和恢复操作简单方便
缺点:数据存在重复,占用空间,备份和恢复时间长
(2)差异备份:备份那些自从上次的完全备份之后修改的文件
(3)增量备份:只有那些在上次完全备份或差异备份后别修改的文件
MySQL完全备份操作
直接打包数据库文件夹/usr/local/mysql/data/ 或 /var/lib/mysql
关闭MySQL
tar jcf mysql_all-$(date +%F).tar.xz /usr/local/mysql/data
mkdir bak
模拟数据丢失
mv /usr/local/mysql/data/*bak
恢复数据
tar xf mysql_all.....
cd /usr/local/mysql/data
mv * /usr/local/mysql/data
启动MySQL查看表,应该已经可以查见了。
使用备份工具mysqldump。
这是MySQL自带的备份工具,对MySQL进行备份相当方便。通过该命令工具可以将制定的库、表或全部的库导出为sql脚本,在需要恢复时进行数据恢复。
(1)对单个库进行完全备份
格式:mysqldump -u用户名 -p密码 【选项】【数据库名】>/备份路径/备份文件名
mkdir /backup
mysqldump -uroot -p123 auth > /backup/auth-$(date +%Y%m%d).sql
echo $?
cat /backup/auth-...sql
(2)对多个库进行完全备份
格式:mysqldump -u用户名 -p密码 【选项】--databases【数据库名】>/备份路径/备份文件名
mysqldump -uroot -p123 --databases mysql auth > /backup/msyql+auth-$(date +%Y%m%d).sql
(3)对所有库进行完全备份
格式:mysqldump -u用户名 -p密码 【选项】--opt --all-databases【数据库名】>/备份路径/备份文件名
# --opt加快备份呢速度,当备份数据大时使用
(4)对表进行完全备份
格式:mysqldump -u用户名 -p密码 【选项】数据库名 表名>/备份路径/备份文件名
(5)对表结构进行备份
格式:mysqldump -u用户名 -p密码 【选项】-d 数据库名 表名>/备份路径/备份文件名
使用mysqldump备份后,恢复数据库
1.source 命令
登录到mysql数据库
执行source命令
source /backup/mysql_all....sql
2.mysql命令
格式:mysql -u用户名 -p密码 < 库备份脚本的路径
mysql -u用户名 -p密码 库名 < 库备份脚本的路径
MySQL备份思路
1.定期实施备份,指定备份计划或策略,并严格遵守
2.除了进行完全备份,开启MySQL服务器的日志功能是很重要的
3.使用统一和易理解的备份名称,推荐使用库名或者表名加上时间的命名规则,不要使用back1之类没有意义的名字
就先这样吧,下次在写数据库的增量备份。是机会还要写下备份脚本,这样以后每次备份都会方便的多。