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

第一次增量备份准备:
                #innobackupex --apply-log --redo-only /root/backup/xtrabackup/full/xxxxx/ --incremental-dir=/root/backup/xtrabackup/incr/xxxxx1/

注意:有些在完全备份中未能提交的事务在后续增量备份中已经提交过。如果不指定--redo-only选项则有可能这些时间会被undo,造成恢复后无法提交。


            第二次增量备份准备:
                #innobackupex --apply-log --redo-only /root/backup/xtrabackup/full/xxxxx/ --incremental-dir=/root/backup/xtrabackup/incr/xxxxx2/

注意:所有备份的准备完成后后,所有的数据都将合并到完全备份中,恢复时只恢复完全备份即可。


        7.恢复:
            备份二进制日志以便即时点恢复:
                mysql>FLUSH LOGS
                #service mysqld stop

#cd /mdata/data
                #cp mysql-bin.0000* /root/backup/binlogfile

还原完全备份:
                #innobackupex --copy-back /root/backup/xtrabackup/full/xxxxx/

修改恢复完成数据的属主属组:
                #cd /mdata/data
                #chown -R mysql:mysql ./*

启动服务
                #service  mysqld start

即时点还原
                #cd /root/backup/binlogfile
                #mysqlbinlog mysql-bin-000001 > bin0001.sql
                ...

mysql>SET sql_bin_log=0
                mysql>SOURCE /root/backup/binlogfile/bin0001.sql
                ...

9.导入导出单张表:
            注意:要进行此操作,必须保证导出操作所在数据库的innodb__file_per_table在创建要导出的表之前是启用的。同时要保证导入操作所在的数据库innodb_file_per_table和innodb_expand_import也是要启用的。

导出:
                导出操作是在完全备份的准备阶段进行。会为每个innodb表的表空间创建以.exp结尾的文件。

#innobackupex --apply-log --export /root/backup/xtrabackup/full/xxxxx/

复制.exp和.ibd文件

导入:
                创建innodb表:
                    mysql>CREATE TABLES TBNAME (...) ENGINE=InnoDB;

删除表空间:
                    mysql>ALTER TABLE DBNAME.TBNAME DISCARD TABLESPACE;

导入.exp文件和.ibd文件:
                    复制.exp和.ibd文件到数据目录下:
                    mysql>ALTER TABLE DBNAME.TBNAME IMPORT TABLESPACE;

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

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