澳门金沙vip 1

MySQL master热备份 开启主从复制

 

1 ) mysql 主从复制 (实时与异步,一主多从,一主一从)

MySQL复制消除了哪些难题?

1 开启binlog

备考:单向战术;主从自个儿正是一种备份,一般从就用来备份;

1、落成在分化服务器上的数据布满 2、利用二进制日志增量进行3、没有须求太多的带宽
4、可是利用基于行的复制在拓展大批量的更换时会对带宽带来一定的下压力,非常是跨IDC情形下展开复制
5、实现在不一致服务上的数据分布6、达成多少读取的负荷均衡、要求任何组件同盟形成、使用DNS轮流培训的点子把程序的读连接到分裂的备份数据库
7、使用LVS,Haproxy那样的代理格局 8、完毕了数码读取的负荷均衡
9、巩固了数额安全性 10、达成数据库高可用和故障切换
11、完毕数据库在线进级
MySQL二进制日志

mysql

澳门金沙vip 1

根据段的格式binlog_format=STATMENT 优点:
日志记录量绝对极小,节约了磁盘及I/O网络 只对一条记下修改大概插入
row格式所发出的日品质小于段发生的日志量 缺点: 必要求记录上下文音信保障语句在从服务器上推行结果和在主服务器上同一
基于行的日志格式binlog_format=ROW 优点: 使用MySQL主从复制尤其安全
对每一行输几局的退换比基于段的复制高效 缺点: 记录日志量非常大binlog_row_image=[FULL]MINIMAL|NOBLOG
混合日志格式binlog_format=MIXED 特点:
1、依据SQL语句由系统决策在依赖段和依照行的日志格式中实行精选
2、数据量的分寸由所进行的SQL语句决定 怎样抉择二进制日志的格式?! 提议Binlog_format=mixed Binlog_fromat=row
(假使是在同二个机房间里,同三个IDC机房间里思索复制数据的安全性,提议选取此选项)
假如使用该格式,建议设置Binlog_row_image=minimal
(能够减小互联网、磁盘I/O的载重)
MySQL二进制日志格式对复制的影响

server-id                       = 151

主从分歧,化解办法(非常支付项目):

        1) 出难题之间的主节点中 bin-log,恢复生机到备份节点上。

        2) 双写主

        3) 程序写log的1分钟在内部存款和储蓄器,主一但宕机

        4) 异步改实时

a. 有利于数据库健壮性,升高访问速度,易于管理

b. 能够基本服务器互为备份

c. 读写分离(程序达成,测试蒙受mysql-proxy,amoeba, 分布式dbproxy)

一起的时候有一个线程完结(IO线程,SQL线程),主从复制正视binlog

主节点:IO线程

从节点:IO线程,SQL线程(实时监察和控制relay-log)写到数据文件,master_info
(bin-log信息)

1)  slave节点实践start slave,开启主从按键;

2)此时,slave节点的IO线程会通过在master上授权的复制用户权限请求连接master节点,并请求从钦点binlog日志文件的钦赐地点(日志文件名和地点正是在陈设主从复制节点
时试行change master命令时钦命的)之后发送binlog日志内容

3)
master在承受从节点IO线程请求后,负载读取从节点请求中binlog相关音讯,将钦赐binlog日志发送给从节点;然后从节点更新masterinfo消息,记录binlog地点。

4)slave节点IO线程获取到master的IO发送的日记,将写到relay-log(中继日志),然后从节点sql线程将relay-log写到从节点的数据文件。

主节点/etc/my.cnf配置,从节点log-bin打不打开都得以,最终把server-id分开不要相同就可以

log-bin=/data/mysqldb/mysql-bin

server-id      = 1

主库

GRANT REPLICATION SLAVE,FILE,RELOAD,SUPER ON *.* TO
‘per’@’10.150.100.143’ IDENTIFIED BY ‘123456’;

#新建用户给业务应用

grant all privileges on MOVIE_REPORT.* to ‘MOVIE_REPORT’@’%’ 
identified by ‘MOVIE_REPORT_2o1o’;

flush privileges;

#锁表(主节点)

flush tables with read lock;(unlock tables)

#主节点备份

mysqldump -uroot -p123456 -S /usr/local/mysql/mysql.sock -A  -B
–events|gzip >/opt/rep.sql.gz

#从节点导入

mysql -uroot -p123456 -S /usr/local/mysql/mysql.sock

CHANGE MASTER TO

MASTER_HOST = ‘10.150.100.144’,

MASTER_USER = ‘per’,

MASTER_PASSWORD = ‘123456’,

MASTER_PORT = 3306,

MASTER_澳门金沙vip,LOG_FILE=’mysql-bin.000009′,

MASTER_LOG_POS=106;

#起步复制

mysql> start slave;

change master to master_log_file=’mysql-bin.000011′,
master_log_pos=1;

借使从节点那二线程为yes,则为平常(10.150.100.143 从节点)

sql > show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

#查看 bin-log信息

show master status;

凭借SQL语句的复制(STATMENT)
主库会记录实行修改的SQL语句,备库会读取回放SQL语句 优点:
1、生成的日质量少,节省互连网传输的I/O
2、并不强制供给基本数据库的表定义完全相同3、比较基于行的复制的章程更是的灵敏 缺点:
1、对于非明确性的轩然大波,无法担保基本数据赋值数据的一致性
2、对于仓储进程,触发器,自定义函数进行改造也恐怕引致数据分裂等
3、相比与基于行的复制格局在从上推行时索要越来越多的行锁 基于行的复制:
优点: 1、能够使用在任何SQL的复制包罗非显明函数,存款和储蓄进度等
2、能够缩短数据库锁的利用 缺点:
1、供给中央数据库的表结构一样,不然也许会搁浅复制
2、不可能在从上单独施行触发器
MySQL复制工作措施

log-bin                         =/opt/soft/mysql/binlog/mysql-bin

先是来个图来评释

binlog_format                    = MIXED

上海教室的干活流程批注

2 得到基础备份

1、主将更动写入到二进制
2、从库读取主的二进制日志退换并写入到relay_log中
3、在从上海重机厂放relay_log中的日志
基于SQL段(statment)的日记是在从库上再次实践记录的SQL语句
基于行(row)日志则是在从库上向来利用对数据库行的修改
配置MySQL复制