1.数据库备份的重要性
(1)提高系统的高可用性和灾难可恢复性,在系统数据库奔溃时,没有数据库备份就无法找到数据
(2)使用数据库备份还原数据库,时数据库奔溃时提供数据恢复最小代价的最优方案
(3)没有数据就没有一切,数据备份是一种灾难防范的强力手段
2.数据库的备份分类
(1)物理备份:对数据库进行物理文件(数据文件、日志文件等)的备份
(2)逻辑备份:对数据逻辑组件(表、库等数据库对象)的备份
(3)完全备份:每次对数据库进行完整的备份
优点:备份与恢复操作简单
缺点:数据大量重复,占空间大和耗时间长
(4)差异备份:备份从上次完全备份后被修改过的文件
(5)增量备份:备份从上次完全备份或增量备份后被修改的文件
3.常见的备份方法
(1)物理冷备:
备份时数据库处于关闭状态,直接打包数据库文件备份速度快,恢复也简单
tar命令即可
(2)专用备份工具mydump,mydump是mysql自带的常用逻辑备份工具
####mysqldump备份与恢复###
将指定的库、表、或全部的库导出为SQL脚本
#####备份操作#####
mysqldump备份需要和mysql进行数据交互,如果关闭mysql 则无法备份和恢复
mysqldump [选项] 库名 [表名1] [表名2] … > /备份路径/备份文件名 #对表进行备份
mysqldump [选项] --databases 库名1 [库名2] … > /备份路径/备份文件名 #对单库或多库进行备份
mysqldump [选项] --all-databases > /备份路径/备份文件名 #对全部库进行备份
我们可以看看脚本内的内容
mysqldump -u root -p --databases auth > /opt/auth.sql ####备份auth数据库文件到/opt/auth.sql
cat /opt/auth.sql | grep -v “^–” | grep -v “^/” | grep -v “^$”
CREATE DATABASE /!32312 IF NOT EXISTS/ auth
/*!40100 DEFAULT CHARACTER SET utf8 */; #如每有库auth则创建库auth
USE auth
; #选择auth库
DROP TABLE IF EXISTS users
; #如存在则删除表users
CREATE TABLE users
( #创建新表users
user_name
char(16) NOT NULL,
user_passwd
char(48) DEFAULT ‘’,
PRIMARY KEY (user_name
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOCK TABLES users
WRITE; #锁表
INSERT INTO users
VALUES (‘lisi’,’*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9’), #插入数据(‘zhangsan’,’*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9’);
UNLOCK TABLES; #解锁表
这样我们对如何恢复表的过程就很清楚了
恢复命令
mysql -u root -p < /opt/auth.sql #也可以在mysql里mysql> source /opt/auth.sql; 进行恢复
(3)启用二进制日志进行增量备份
1.