MySQL之备份和恢复(msyqldump、LVM、xtrabackup)(3)

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e625e449a7fd39c619fdce28de2b182a.html