2021-03-20

MySQL主从架构
通过主从复制(master-slave)的方式来同步数据,再通过读写分离来提升数据库的并发负载能力这样的方案来进行部署与实施。
什么是MYSQL REPLICATION(mysql主从复制)
1、主从复制是指当master(主)库的数据发生变化的时候,变化会实时的同步到一个或多个slave(从)库。
2、默认情况下属于异步复制,无需维持长连接。
3、通过配置,可以复制所有的库或者几个库,甚至库中的一些表。
4、replication是MySQL内建的,本身自带。
MYSQL REPLICATION的原理
master将数据库的更新操作写入二进制日志,slave将二进制日志中的数据更新事件并写入中继日志文件中后读取relay日志,把二进制的日志解析成SQL语句,并执行这些SQL语句
注:
DML:SQL操作语句,update, insert,delete等数据更新操作语句。
Relay log :中继日志

MYSQL REPLICATION的作用
1、读写分离,提供查询服务
2、实时灾备,用于故障切换。
3、水平扩展数据库的负载能力
MYSQL REPLICATION支持的复制类型
Statement:即基于语句的复制,会将对数据库操作的sql语句写入到binlog中,效率比较高。
row:即基于行的复制,会将每一条数据的变化写入到binlog中。
mixed:即混合模型的复制,statement与row的混合
MYSQL REPLICATION如何工作
1、master将改变记录到二进制日志(binary log)中
2、 slave将master的binary log 拷贝到它的中继日志(relay log)
3、 slave根据中继日志中的事件,对salve数据库做相应的操作,使其与master中的数据一致

MYSQL REPLICATION常见方案:
1、一主一从
2、一主多从
3、级联复制(M-S-S)
4、双主互备 (互为主从)
5、多主一从
mysql主从复制原理
主节点 binary log dump 线程
从节点I/O线程
从节点SQL线程
注:对于每一个主从连接,都需要三个线程来完成。当主节点有多个从节点时,主节点会为每一个当前连接的从节点建一个binary log dump 线程,而每个从节点都有自己的I/O线程,SQL线程。
工作过程:
步骤一:主库上数据库的更新事件(update、insert、delete)被写到binlog
步骤二:从库启动之后,创建一个I/O线程,从库发起连接,连接到主库
步骤三:此时主库创建一个binlog dump thread线程,把binlog的内容发送到从库
步骤四:从库的I/O线程读取主库传过来的binlog内容并写入到relay log.
步骤五:从库还会创建一个SQL线程,从relay log里面读取内容,并执行读取到的更新事件,将更新内容写入到slave的数据库。
MySQL 主从复制模式
1、异步模式
MySQL主从复制默认是异步的模式
这种模式下,master事务的提交不需要经过slave的确认,slave是否接收到master的binlog,master并不关心。slave接收到master binlog后先写relay log,最后异步地去执行relay log中的sql应用到自身
由于master的提交不需要确保slave relay log是否被正确接受,当slave接受master binlog失败或者relay log应用失败,master无法感知
2、半同步模式
在master事务的commit之前,必须确保一个slave收到relay log并且响应给master以后,才能进行事务的commit

3、全同步模式
指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。
部署MYSQL主从同步(一主一从)
配置时间服务器
安装NTP
yum -y install ntp
vim /etc/ntp.conf
添加如下两行
server 127.127.1.0
fudge 127.127.1.0 stratum 8
重启NTPD服务
systemctl restart ntpd
开机自启
systemctl enable ntpd

在从节点上进行时间同步
yum -y install ntpdate
/usr/sbin/ntpdate 192.168.30.11
配置cron计划任务
*/10 * * * * /usr/sbin/ntpdate 192.168.19.2

测试:
配置主数据库服务器
create database HA;
use HA;
create table t1(id int,name varchar(20));
insert into t1 values(1,‘tom1’);
创建主从复制的授权用户:
grant replication slave on . to slave@192.168.19.4 identi
fied by “123456”;
配置my.cnf:
log-bin=/data/mysql/log/mysql-bin-master #启用二进制日志
server-id=1 #数据库服务器ID标识
binlog-do-db=HA #可以被从服务器复制的库, 即二进制需要同步的数据库名
重启
systemctl restart mysqld
查看master状态信息:
show master status;
查看二进制日志:
ls /data/mysql/log/
show binlog events\G
导出数据库
mysqldump -uroot -p123456 HA>HA.sql
将导出的数据库传给从服务器
scp HA.sql root@192.168.19.4:~
配置从数据库服务器cong12
两台数据库服务器mysql版本要一致
show variables like ‘%version%’;
测试连接到主服务器是否成功
mysql -uslave -p123456 -h 192.168.30.11
导入数据库,和主数据库服务器保持一致
mysql -uroot -p123456 -e “create database HA;”
mysql -uroot -p123456 HA<HA.sql
修改my.cnf配置文件
server-id=2
relay-log=/data/mysql/log/relay-log-bin //中继日志文件的路径名称
relay-log-index=/data/mysql/log/slave-relay-bin.index
重启
mysql数据库里从配置
stop slave;
change master to master_host=‘192.168.30.11’,master_user=‘slave’,master_password=‘123456’,master_log_file=‘mysql-bin-master.000001’,master_log_pos=154;
start slave; #启动slave
show slave status\G //查看slave的状态
主服务器插入数据测试同步:
use HA
insert into t1 values(1,‘tom2’);
select * from t1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
最新发布
02-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值