暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL DBA的自我修养(十五)

记忆乘凉 2017-01-02
307

144:实现一个增量备份的恢复,全备、insert 数据、增量备份、insert 数据、增量备份、insert数据,使用全备+增量+binlog 进行恢复。

# innobackupex --user=root --password=123456/databackup/

#insert

# innobackupex --user=root --password=123456--incremental /databackup/ --incremental-basedir=/databackup/2015-09-29_08-40-23

#insert

# innobackupex --user=root --password=123456--incremental /databackup/--incremental-basedir=/databackup/2015-09-29_10-04-54/

#insert

# innobackupex --user=root --password=123456 --apply-log--redo-only /databackup/2015-09-29_08-40-23/

# innobackupex --apply-log --redo-only/databackup/2015-09-29_08-40-23/--incremental-dir=/databackup/2015-09-29_10-04-54/

# innobackupex --apply-log/databackup/2015-09-29_08-40-23/--incremental-dir=/databackup/2015-09-29_10-17-11/

# innobackupex --copy-back/databackup/2015-09-29_08-40-23/

 


145:分别使用并发、限流对数据库进行备份,体会两种策略的一些影响。

并发:适用于业务量小的时候,采用多线程进行并发同步备份,会消耗大量资源,但备份效率提升;

限流:适用于业务量大的时候,限制备份IO的带宽,减少备份所消耗的资源,但效率低;

 


146:深入理解备份期间 lock 的影响,使用 no-lock 来解决这个问题,注意使用no-lock 该注意的地方;

使用xtarbackup进行备份时,备份innodb存储引擎的表不会进行锁表,而MyISAM存储引擎的表会进行加锁,导致线程阻塞。

innobackupex --no-l

能有DDL或者DML操作。

 


147:注意理解 redo-only,掌握使用规律。

增备进行完备的时候需要加read-only,目的是增备的数据只需要redo进行前滚,不需要undo回滚,这是因为不确定前滚的事务是提交还是回滚,需要等下一个增备记录的数据。

 


148:使用从库,同时在备份期间停止从库的同步线程,加快备份速度。

在备份期间,会发生锁表的现象,就会和从库的复制线程互斥,如果停止从库的同步线程,就会提高备份的速度。



149:完整的设计一个备份方案

1、考虑对主库的压力

2、考虑恢复时间,做好恢复时间计算原则

3、考虑限流、并行

4、考虑锁的问题

5、考虑在主库和备库进行备份,分别对应不同的方案

6、考虑压缩、加密

7、考虑全备、增量、binlog 配合

8、注意完善备份恢复对应的命令,特别是增量备份时对应的 redo-only 选项



150:恢复时跑 binlog 的经典错误:ERROR 1032 (HY000) at line 33: Can't find record in 'new_orders',问题定位。

1032错误:无法找到数据记录,在主从结构中,从库的某条数据被误删,主库更新后也找不到了,导致主从不同步了,再跳过错误也没用,因为没有这条记录,再更新还是会导致报错。

解决方法:

临时:sql_slave_skip_counter跳过;

永久:end_log_pos根据pos值,做反向操作;

 


151:克隆 slave 数据库。

搭建常规的主从建构,为了数据安全和效率的考虑,建议第一台从库通过备份主库的方式,其他从库采用克隆从库的方式。



152:描述一下导数的几种方式。

select into outfile

mysqldump -T

load data

mysqlimport



153:掌握一下如何来处理纯文本文件里面的行数据

FIELDS TERMINATED BY ','

FIELDS LINES TERMINATED BY '\n'

FIELDS ENCLOSED BY '"'

FIELDS OPTIONALLY ENCLOSED BY '"'

FIELDS ESCAPED BY '\\'



154:做下面几个例子。

1、使用两种方式导出两个表,使用行模式导出,注意使用丰富的选项;

2、使用两种方式进行导入,测试一下性能,每秒导入的行数;

 


文章转载自记忆乘凉,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论