SELECT INTO OUTFILE:
只能对单张表进行操作。恢复速度快,一般用作单个表的备份。
存放的是纯粹的数据,各个字段和值之间用制表符(tab)分隔,无其他额外信息。
备份:
mysql>SELECT * INTO OUTFILE 'FILE' FROM TBNAME [WHERE ...];
还原:
mysql>LOAD DATA INFILE 'FILE' INTO TABLE TBNAME;
注意:备份文件必须放在mysql用户有访问权限的目录。还原的表得提前创建表格式。
实例:
1.备份tutors表:
mysql>use jiaowu;
mysql>SELECT * INTO OUTFILE ‘/root/backup/selbackup/tutors.txt’ FROM tutors;
2.还原tutors表的内容到tut表中:
mysql>use jiaowu;
mysql>CREATE TABLE tut LIEK tutors;
或
mysql>CREATE TABLE tut (TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Tname CHAR(20) NOT NULL ,Gender enum('F','M'),Age TINYINT NOT NULL);
mysql>LOAD DATA INFILE '/root/backup/selbackup/tutors.txt’' INTO TABLE tut;
LVM快照:
前提:
1.数据要在逻辑卷上
2.逻辑卷所在卷组必须有足够的空间使用快照卷
3.事务日志和数据必须在同一个卷上。
备份思路:
锁表 --> 滚动日志 --> 记录二进制日志名称和位置信息 -->创建快照 --> 释放锁 -->挂载并备份快照卷中的数据 --> 删除快照卷 -->备份二进制日志文件
恢复:
实例:
1.备份jiaowu库:
mysql>FLUSH TABLES WITH READ LOCK;
mysql>FLUSH LOGS;
mysql>SHOW MASTER STATUS; 记录二进制日志名称和位置,为即时点还原提供依据。
或
在另一个终端上执行
#mysql -uroot -p -e `SHOW MASTER STATUS\G` > /root/backup/lvmbkup/master-`date +%F`.info
#lvcreate -L 50M -s -p r -n mydata-snap /dev/myvg/mydata
mysql>UNLOCK TABLES;
#mont /dev/myvg/mydata-snap /mnt -o ro
#cd /mnt
#cd jiaowu
#mkdir -p /root/backup/lvmbackup/fullbackup-`data+%F`
#cp -a ./* /root/backup/lvmbackup/fullbackup-xxxxx/
#cp -a ../ibdataX /root/backup/lvmbackup/fullbackup-xxxxx/
注意:默认InnoDB的表空间文件为共享,复制时需要一并复制。建议将innodb_file _per_table=1,使用单独表空间文件。这样直接复制文件夹即可。
#umount /mnt
#lvremove --force /dev/myvg/mdata-snap
#cd /root/backup/lvmbackup/fullbackup-xxxxx/
#rm -f mysql-bin.*
#cd /mydata/data
#cat /root/backup/lvmbkup/master-xxxxx.info
#mysqlbinlog --start-datetime='2015-07-25 07:01:04' mysql-bin.00000X mysql-bin.0000X+1 ... > /root/backup/lvmbackup/incremental-`date +%F-%H-%M-%S`.sql
2.还原:
#service mysqld stop
#cp -a /root/backup/lvmbackup/fullbackup-xxxx/* /mydata/data
#service msyqld start
#msyql -uroot -p
mysql>SET sql_log_bin=0;
mysql>SOURCE /root/backup/lvmbackup/incremental-xxxxx.sql;
mysql>SET sql_log_bin=1;
xtrabackup:
一般直接在服务器上使用此工具。
备份思路:
完全备份--> 增量备份--> 即时点备份
还原思路:
完全备份准备 --> 增量备份准备 --> 关闭服务器 --> 还原完全备份 --> 修改恢复数据的属主属组 --> 即时点还原 --> 重做一次完全备份(重要)
InnoDB:
full
incremental
HOT
MyISAM:
WRAM
full