1 主从复制
mysql怎么读英语1.1 概述
主从复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。
MySQL 复制的有点主要包含以下三个方面:
1.主库出现问题,可以快速切换到从库提供服务。
2.实现读写分离,降低主库的访问压力。
3.可以在从库中执行备份,以避免备份期间影响主库服务。
1.2 原理
从上图来看,复制分成三步:
1.Master 主库在事务提交时,会把数据变更记录在二进制日志文件 Binlog 中。
2.从库读取主库的二进制日志文件 Binlog ,写入到从库的中继日志 Relay Log 。
3.slave重做中继日志中的事件,将改变反映它自己的数据。
1.3 搭建
1.3.1 服务器准备
1.两台服务器安装MySQL,并完成基础的初始化工作;
2.放行MySQL数据库端口(3306),或者关闭防火墙
#放行3306端口
firewall-cmd --zone=public --add-port=3306/tcp -permanent
#关闭防火墙
systemctl disable firewalld --now
1.3.2 主库配置
1.修改配置文件/f
#mysql服务ID,保证整个集环境中唯一,取值范围:1-2^32-1,默认为1
server-id=1
#是否只读,1代表只读,0代表读写
read-only=0
#忽略的数据,指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01
2.重启数据库
cdata传媒频道systemctl restart mysqld
3.创建远程连接的账号,并授予主从复制的权限
-- 创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
bootstrap css手册CREATE USER'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
-- 为'itcast'@'%'用户分配主从复制权限
GRANT REPLICATION SLAVE ON*.*TO'itcast'@'%';
4.通过命令,查看二进制坐标
show master status;
字段含义说明:
file : 从哪个日志文件开始推送日志文件
position :从哪个位置开始推送日志
binlog_ignore_db : 指定不需要同步的数据库
4.开启同步操作
start relica; -- 8.0.22之后
2.CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。
分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。浏览器调用webservice接口
2.1 拆分策略
2.1.1 垂直拆分negotiation怎么记住
垂直分库:以表为依据,根据业务将不同表拆分到不同库中。特点:
1.每个库的表结构都不一样。
2.每个库的数据也不一样。
3.所有库的并集是全量数据。
垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。特点:
1.每个表的结构都不一样。
2.每个表的数据也不一样,一般通过一列(主键/外键)关联。
3.所有表的并集是全量数据。hook键盘钩子
2.1.2 水平拆分
水平分库:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中。特点:
1.每个库的表结构都一样。
2.每个库的数据都不一样。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论