备份类型可以分为物理备份和逻辑备份两种
物理备份是指通过拷贝数据库文件的方式完成备份,这种备份方式适用于数据库很大,数据重要且需要快速恢复的数据库
逻辑备份是指通过备份数据库的逻辑结构(create database/table语句)和数据内容(insert语句或者文本文件)的方式完成备份。这种备份方式适用于数据库不是很大,或者你
需要对导出的文件做一定的修改,又或者是希望在另外的不同类型服务器上重新建立此数据库的情况
物理备份通常要求在数据库关闭的情况下执行,但如果是在数据库运行情况下执行,则要求备份期间数据库不能修改
逻辑备份的速度要慢于物理备份,是因为逻辑备份需要访问数据库并将内容转化成逻辑备份需要的格式;通常输出的备份文件大小也要比物理备份大;另外逻辑备份也不包含数据库的
配置文件和日志文件内容;备份和恢复的粒度可以是所有数据库,也可以是单个数据库,也可以是单个表;逻辑备份需要再数据库运行的状态下执行;它的执行工具可以是MySQLdump或者是select … into outfile两种方式
备份又可以分为在线备份和离线备份两种
在线备份是指在数据库运行的状态下执行的备份
而离线备份是指在数据库关闭情况下执行的备份
备份还可以分为本地备份和远程备份两种
本地备份是指备份是在和当前MySQL运行的相同主机上发起和执行
而离线备份是指在数据库关闭情况下执行的备份
备份还可以分为本地备份和远程备份两种
本地备份是指备份是在和当前MySQL运行的相同主机上发起和执行
远程备份是指备份是在和当前MySQL运行的不同主机上发起和执行
比如mysqldump命令可以连接本机MySQL,也可以连接远程MySQL;在比如select …into outfile命令可以通过本地或者远程的MySQL客户端执行,但生成的文件则会存放在MySQL实例运行的主机上
对物理备份来说启动备份的过程是MySQL实例主机,但备份的地址有可能是远程的某个
存储
备份还可以分为全量备份和增量备份两种
全量备份是指备份中包含所有的数据,而增量备份是指备份中仅包含在某个指定时间段内的变化情况
全量备份的方法正如之前说到的物理备份和逻辑备份方式
而增量备份的方法在MySQL中需要借助二进制日志完成
1. mysqldump命令执行备份
2. 通过拷贝物理表文件生成备份:当前存储引擎下每个表都有自己独立的数据文件时就可以使用拷贝物理表文件的方式。如果当前数据库是运行状态,则需要下对此表加上一个只读锁,防止备份期间的修改操作FLUSH TABLES tbl_list WITH READ LOCK;这种表级的备份方式对MyISAM存储引擎支持很好,因为MyISAM的表天生就分成了三个独立的数据文件(.frm, .MYD, and *.MYI),但对InnoDB存储引擎的表就不太支持
3. 通过select … into outfile方式生成文本文件:第一种方式是通过SELECT * INTO OUTFILE ‘file_name’ FROM tbl_name命令生成在服务器上的文本文件,另一种方式是通过mysqldump命令加–tab参数生成文本文件; 但这种方式只会生成表数据,不会生成表结构
4. MySQL增量备份:将MySQL实例设置为开启log-bin参数,备份增量生成的二进制日志到指定的备份地
5. Xtrabackup工具执行全量备份或增量备份
MySQL 物理拷贝文件对MyISAM表来说:如果当前此表在拷贝过程中没有任何写操作时,可以直接拷贝
10.0.0.201 master01
10.0.0.204 master02
没有主从关系
创建一个myisam表插入数据进行模拟测试:
1 2 3 4 5 6 7 8 9 10 11 12
CREATE TABLE `students_myisam` ( `sid` int(11) NOT NULL, `sname` varchar(64) DEFAULT NULL, `gender` int(11) DEFAULT NULL, `dept_id` int(11) DEFAULT NULL, PRIMARY KEY (`sid`), KEY `idx_sname` (`sname`), KEY `idx_gender` (`gender`), KEY `dept_id` (`dept_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; insert into students_myisam values(1,'a',1,1),(2,'b',2,2),(3,'c',3,3);