MySQL主从复制与读写分离实验

精读204页华为的流程管理(文末附下载链接) 链接:https://pan.baidu.com/s/1eEwdBR5c0PIxkOrNhDZcGg?pwd=wha2 提取码:wha2 复制这段内容后打开百度网盘手机App,操作更方便哦。,以提升企业运营效率和竞争力,同时解决了诸多业务痛点,为华为的全球化发展提供了有力支撑。华为的流程管理对其发展起着关键作用,通过构建完善的流程体系,提升了企业运营效率与竞争力。华为的流程管理在企业发展中至关重要,其围绕。,并通过流程变革不断优化。在流程管理过程中,强调。构建了全面的流程体系。 阅读详情

目录

实验一、MySQL主从服务器搭建

实验前准备

主服务器准备

从服务器准备

主服务器的mysql配置

从服务器的mysql配置

验证

实验一点五、MySQL读写分离实验

实验前准备

安装Java环境

安装amoeba

配置amoeba读写分离

测试读写分离


实验一、MySQL主从服务器搭建

实验前准备

Master服务器:192.168.188.14   mysql5.7
Slave服务器1:192.168.188.15   mysql5.7
Slave服务器2:192.168.188.16   mysql5.7
关闭虚拟机防火墙
systemctl stop firewalld
setenforce 0

主服务器准备

  1. 安装相关软件
    yum -y install ntp
  2. 修改ntp配置
    vim /etc/ntp.conf
    在末尾添加以下内容:
    server 127.127.1.0
    fudge 127.127.1.0 stratum 8


    启动服务
    service ntpd start

从服务器准备

  1. 安装相关软件
    yum -y install ntp ntpdate -y
  2. 进行时间同步
    /usr/sbin/ntpdate 192.168.188.14
    设置定时任务,每30分钟同步一次时间
    crontab -e
    */30 * * * * /usr/sbin/ntpdate 192.168.188.14

主服务器的mysql配置

  1. 修改mysql配置文件
    vim /etc/my.cnf
    添加以下内容:
    server-id = 11
    log-bin=master-bin
    binlog_format = MIXED
    log-slave-updates=true

    重启mysql服务
    systemctl restart mysqld
  2. 给myslave用户赋权,从节点可以通过myslave用户获取需要复制的数据
    mysql -uroot -p
     
    grant replication slave on *.* to 'myslave'@'192.168.188.%' identified by ‘123456’;
    flush privileges;

    查看节点状态
    show master status;
    File显示日志名,Position显示偏移量

从服务器的mysql配置

  1. 修改mysql配置文件
    vim /etc/my.cnf
    server-id = 22   # 服务器id,各不相同
    relay-log=relay-log-bin  # 开启中继日志
    relay-log-index=slave-relay-bin.index   # 定义中继日志的位置和名称
    relay_log_recovery = 1  # slave宕机后,如果relay-log损坏,会放弃所有还未执行的relay-log,重新从master上获取

    另一台从服务器的配置,只有id改了

    重启mysql服务
    systemctl restart mysqld
  2. 进入数据库配置同步
    mysql -uroot -p
    change master to
    master_host='192.168.188.14',
    master_user='myslave',master_password='123456',
    master_log_file='master-bin.000001',
    master_log_pos=604;

  3. 启动slave节点
    start slave;
    查看状态,如果能看到Slave_IO_Running: Yes和Slave_SQL_Running: Yes,说明没问题
    show slave status\G

验证

  1. 在主MySQL服务器上创建一个数据库
    create database db_test;
    在从服务器上能看到就说明没问题
    show databases;

实验一点五、MySQL读写分离实验

实验前准备

该实验建立在实验一基础上,使用Amoeba对数据库的操作进行读写分离,读操作将会分发到两个从MySQL服务器上,写操作则会分发到主MySQL服务器上
Master服务器:192.168.188.14     mysql5.7
Slave服务器1:192.168.188.15     mysql5.7
Slave服务器2:192.168.188.16     mysql5.7
Amoeba服务器:192.168.188.13    jdk1.6、Amoeba(jdk不建议版本太高)
客户端:192.168.188.12

安装Java环境

  1. cd /opt/
    cp jdk-6u14-linux-x64.bin /usr/local/
    cd /usr/local/
    我用的是编译好的文件,所以直接赋权执行
    chmod +x jdk-6u14-linux-x64
    ./jdk-6u14-linux-x64.bin
  2. 优化Java环境
    mv jdk1.6.0_14/ /usr/local/jdk1.6
    vim /etc/profile
    在最后添加路径
    export JAVA_HOME=/usr/local/jdk1.6
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
    export AMOEBA_HOME=/usr/local/amoeba
    export PATH=$PATH:$AMOEBA_HOME/bin

    source /etc/profile
    看一下Java版本,三个java说明没问题
    java -version

安装amoeba

  1. mkdir /usr/local/amoeba
    tar zxvf /opt/amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
    chmod -R 755 /usr/local/amoeba/
    /usr/local/amoeba/bin/amoeba
    如果显示amoeba start|stop 说明没问题

配置amoeba读写分离

  1. 首先需要在三台服务器的MySQL上开放权限给amoeba
    grant all on *.* to 'amo'@'192.168.188.%' identified by '123456';
  2. 修改amoeba配置文件
    cd /usr/local/amoeba/conf/
    做个备份
    cp amoeba.xml amoeba.xml.bak
    修改配置文件
    vim amoeba.xml
    主要需要修改以下内容

  3. 修改数据库配置文件
    先备份
    cp dbServers.xml dbServers.xml.bak
    修改文件
    vim dbServers.xml
    主要改以下内容


    后台运行
    /usr/local/amoeba/bin/amoeba start&
    ctrl+c返回
    查看一下端口是否正常使用,主要是8066是否开启
    netstat -anpt | grep java

测试读写分离

  1. 客户端上安装mariadb
    yum -y install mariadb-server mariadb
    启动
    systemctl start mariadb
    通过amoeba代理服务器访问mysql
    mysql -uamoeba -p123456 -h192.168.188.13 -P8066(端口号前面是大写P!千万别写错)
  2. 在主服务器上新建表
    use db_test;
    create table test (id int(10),name varchar(10),address varchar(20));
    两台从服务器上先关闭同步
    stop slave;
    在从服务器1上往新表中插入数据
    use db_test;
    insert into test values('1','zhangsan','this_is_slave1');
    在从服务器2上往新表中插入数据
    use db_test;
    insert into test values('2','lisi','this_is_slave2');
    在主服务器上往新表中插入数据
    use db_test;
    insert into test values('3','wangwu','this_is_master');
  3. 在客户端上查询新表
    use db_test;
    select * from test;
    为什么是这样的结果?首先因为我们关闭了同步,所以主服务器写入的数据无法同步到从服务器,同时因为我们设定从服务器用来读,所以当我们查询时就会去找两台从服务器,所以就能看到这两台服务器上的数据,而且是独立分开的,因为我们是直接往从服务器上插入数据,从服务器上的数据本身就无法同步,在工作中是因为他们同时复制主服务器的数据才能保持一致。
  4. 如果我们在上一步基础上,在客户端上往数据库插入新数据
    use db_test;
    insert into test values('4','qianqi','this_is_client');
    在主服务器上查询的结果如下

    两台从服务器上查询结果如下


    设定上主服务器用来写,所以我们在客户端上写入的数据会直接保存在主服务器上,因为没开同步的原因,从服务器无法复制主服务器上的数据,所以从服务器上的数据没变。
    那么我们在从服务器上打开同步
    start slave;
    再查询,立马就有了主服务器上的数据

用长tree方式做等长线 1)写一个sdc,把等长线的起点设置成clock source,用于创建create_clock,至于period和waveform等参数随便写即可。然后clock_opt -from build_clock -to route_clock即可。3)在正式cts之前或之后,给自己创建的scenario长tree并don't touch。前面讲过了如何用set_data_check做等长线,这里再讲一下如何用cts的方式做。2)为该clock创建一个新mode,并创建对应的scenario。 阅读详情

相关推荐

半导体制造中的通孔缺陷与冗余通孔技术解析

通孔(Via)是半导体制造中连接不同金属层的关键结构,其可靠性直接影响芯片良率。随着工艺节点演进至28nm及更先进制程,通孔缺陷导致的良率损失日益显著,主要表现为完全开路和高阻态两种失效模式。冗余通孔技术通过在关键位置增加备用连接,可有效提升芯片可靠性,其实现涉及物理冗余与电气冗余两种方案。该技术在7nm/5nm工艺中已证明可将通孔相关缺陷率降低10-100倍,但面临设计规则复杂性、规模处理效率和动态合规验证等工业化挑战。智能双切通孔插入流程通过动态DRC规则解析、奇偶层级并行处理和增量式验证等创新方法,显

weixin_35982453的博客 383

理论+实验·MySQL主从复制与读写分离

理论+实验·MySQL主从复制与读写分离 知识点 MySQL主从复制原理 MySQL的复制类型 基于语句的复制 基于行的复制 混合类型的复制【日志】 MySQL主从复制的工作过程 Binary log:主数据库的二进制日志。 Relay log:从服务器的中继日志。 **第一步:**master在每个事务更新数据完成之前,将该操作记录串行地写入到binlog文件中。 **第二步:**salve开启一个I/O Thread,该线程在master打开一个普通连接,主要工作是binlog dump pr

weixin_47153668的博客 211

因果表示学习 (Causal Representation Learning, CRL)

传统的机器学习,尤其是深度学习,非常擅长学习数据中的相关性 (Correlation)。但它常常会走“捷径”,学到一些虚假的、不稳定的“表面联系”。一个AI模型在学习识别“牛”时,如果训练数据里所有的牛都在绿色的草地上,模型很可能会学到一个错误的规则:“牛 = 四条腿的生物 + 绿色背景”。你给它一张牛在海滩上的照片,它就可能不认识了。因果表示学习的目标,就是让模型超越这种表面相关性,去学习数据背后。

Xuxiansir的博客 1181

MySQL主从复制与读写分离(实验分享)

让主数据库服务器处理事务性查询,即对数库据修改的查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。读写分离的目的:缓解主数据库服务器压力。

m0_62081777的博客 794

3D Slicer中安装MedSAM插件

大家应该都读过这篇论文:《Segment Anything in Medical Images》这个插件便是该论文团队推出的在3D Slicer上使用的插件,可以分割医学图像的任何感兴趣区域。

m0_73719342的博客 2331

利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryu+mininet+sflow+postman)

1、知识概述 (1)软件定义网络: (2)mininet: Mininet是一个强大的网络仿真平台,通过这个平台,我们可以很方便的模拟真实环境中的网络操作与架构。特别是SDN,在真实网络中进行相关的网络实验有一定难度,自然需要一个仿真平台可以学习这种新型的网络架构,而Mininet就应运而生,承担了这个光荣而艰巨的使命。Mininet自带交换机(switchs)、主机(hosts)、控制器(controllers),同时,在mininet上可以安装OpenvSwitch、多种控制器(NOX\POX

北风 1万+

MySQL主从复制与读写分离原理和实验

文章目录MySQL主从复制原理:主从复制实验实验环境推荐步骤MySQL读写分离:读写分离原理开设3个账户读写分离实验实验环境推荐步骤 MySQL主从复制原理: ●基于语句的复制 ●MySQL的复制类型 基于语句的复制 基于行的复制:会读取表的信息;复制到另一个表中 混合类型的复制,会结合日志去复制 MySQL主从复制的工作过程 ●1.主服务器需要开启二进制日志功能(Binary log);数据更新,以时间和位置的形式写到二进制日志文件当中。 ●2.利用I/O线程(输入输出流),利用这个线程从二进制日志

Cpureman的博客 978

Unity简单操作:PostProcessing的使用

Postprocessing是一个unity2018版本的集成后期插件,有了这个插件,之后用unity开发时,后期调整颜色、光晕等会很方便。 目录 新建一个postprocessing profile(配置文件)。​ 参数说明: 新建一个postprocessing profile(配置文件)。 在主相机下加一个组件PostProcess Layer。 注意:需要将相机的Layer层设置与Post Process Layer 下的Volume blending(体积混合)...

weixin_39114763的博客 7369

Mysql 实验(主从复制,读写分离)

Mysql 综合实验-主从复制,读写分离,MHA高可用故障切换实验环境实验需求开始实验主从复制验证读写分离验证搭建 MHA 实验环境 主机 主机名 IP 客户端 hbh6 192.168.88.20 mysql主服务器 hbh3 192.168.88.5 mysql主备服务器 hbh4 192.168.88.6 mysql从服务器 hbh5 192.168.88.9 amoeba及mha服务器 hbh2 192.168.88.4 实验需求 配置MySQL主从复制,通过Am

weixin_55611415的博客 227

Blender点云渲染实战:用Geometry Nodes快速搞定论文配图(附Cycles渲染技巧)

本文详细介绍了如何利用Blender的Geometry Nodes系统,高效地将三维点云数据转化为高质量的科研论文配图。通过实战步骤,从数据导入、节点化几何处理、材质赋予到Cycles渲染引擎的优化设置,手把手教你制作出专业、美观的可视化图像,助力科研成果展示。

hp777的博客 265

QGraphicsView通过鼠标操作来绘制图元

在Visio和MindManager等类似的图元操作软件中,很多时候我们会通过鼠标操作来添加自定义的图元。这里就介绍一下如何在QT的图形视图框架中通过鼠标绘制来添加图元。

yang1fei2的博客 3576

MySQL主从复制与读写分离原理和实验(转载)

文章目录 MySQL主从复制原理: 主从复制实验 实验环境 推荐步骤 MySQL读写分离: 读写分离原理 开设3个账户 读写分离实验 实验环境 推荐步骤 MySQL主从复制原理: ●基于语句的复制 ●MySQL的复制类型 基于语句的复制 基于行的复制:会读取表的信息;复制到另一个表中 混合类型的复制,会结合日志去复制 MySQL主从复制的工作过程 在这里插入图片描述 ●1.主服务器需要开启二进制日志功能(Binary log);数据更新,以时间和位置的形式写到二进制日志文件当中。 ●2.利用I/O线程(输入

blingblingb__的博客 123

【Python爬虫(1)】专栏开篇:夯实Python基础

要想熟练掌握 Python 爬虫技术,扎实的 Python 基础是必不可少的。这就好比建造高楼大厦,Python 基础就是那稳固的基石。只有打好了这个基础,我们才能在爬虫的学习道路上稳步前行,理解并运用各种爬虫技术和框架。

邓邓子的博客 2026

MySQL主从复制与读写分离(服务搭建实验)

文章目录为什么要做主从复制、读写分离一、主从复制1.1 MySQL主从复制原理1.2 MySQL的复制类型1.3 MySQL复制的基本原则二、读写分离2.1 MySQL读写分离原理2.2 读写分离方案三、主从复制、读写分离实验3.1 实验准备3.2 MySQL主从复制 为什么要做主从复制、读写分离 在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务

weixin_47153988的博客 969

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

mysql数据库之——主从复制、读写分离的实验操作

主从复制、读写分离一、主从复制1.1 原理主从复制类型工作过程1.2 搭建服务准备工作MySQL主服务器设置从服务器设置(两台设置一样)验证二、读写分离2.1 概述原理常见的MySQL读写分离基于中间代理层实现2.2 搭建服务准备工作Amoeba 服务器设置Master 服务器设置Slave 服务器设置测试 一、主从复制 1.1 原理 主从复制类型 基于语句的复制(STATEMENT,MySQL默认类型) 基于行的复制(ROW) 混合类型的复制(MIXED) 工作过程 1.用户在主服务器执行一些写的操

qq_45773660的博客 1052

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MySQL 主从复制与读写分离

安装MySQL、NTPD服务、主从复制、读写分离

hey1616的博客 732

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mysql主从复制和读写分离详解与实验

一、什么是主从复制? 主从复制的原理 : 简而言之,MySQL-A在进行写操作时,都会更新数据库A的二进制sql日志,通过网络传输将二进制sql日志传递给数据库B,B再将二进制sql日志写入B数据库,完成主从复制。 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。 那么,MYSQL-A的

mjp18118881138 315

实验案例MySQL主从复制与读写分离

MySQL主从复制和读写分离实验案例 一、配置主从复制 1、配置NTP时间同步服务器 1)安装ntp 2)修改NTP配置文件 3)启动服务并设置开机自动启动 4)从服务器同步时间 2、安装MySQL(centos01,centos02,centos03都需要安装) 1)安装编译MySQL(主从节点) 2)优化调整(主从节点) 3)初始化数据库(主从节点) 4)启动MySQL服务(主从节点) 3、修改主mysql配置文...

weixin_45014003的博客 842

MySQL主从复制与读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

AH99999的博客 1424

Mysql 的主从复制+读写分离(纯实验)

目录1. 主从复制1.1 环境1.2 防火墙设置1.3 配置时钟同步2. 读写分离 1. 主从复制 1.1 环境 四台centos7服务器 一台做client 三台做mysql服务器 1.2 防火墙设置 systemctl stop firewalld.service setenforce 0 1.3 配置时钟同步 yum install ntp -y yum -y install ntpdate ntp ntpdate ntp.aliyun.com 2. 读写分离 ...

与之二三事、 590

MYSQL主从复制与读写分离

只在主服务器上写,只在从服务器上读主数据库处理事务性查询,从数据库处理select查询数据库复制用于将事务性查询的变更同步到集群中的从数据库读写分离方案基于程序代码内部实现基于中间代理层实现Amoeba。

sea_bunch的博客 906

实验:mysql的主从复制-读写分离

目录一、案例环境 一、案例环境 实验操作: #########案例环境############# IP地址 主机 操作系统 20.0.0.5 master centos-7.6-x86_64 20.0.0.3 Slave1 centos-7.6-x86_64 20.0.0.6 Slave2 centos-7.6-x86_64 20.0.0.4 Amoeba centos-7.6-x86_64 ###maste

优快云著名博主 773

mysql主从复制和读写分离实验部署

1、客户端访问代理服务器2、代理服务器写入到主服务器3、主服务器将增删改写入自己二进制日志4、从服务器将主服务器的二进制日志同步至自己中继日志5、从服务器重放中继日志到数据库中6、客户端读,则代理服务器直接访问从服务器7、降低负载,起到负载均衡作用。

qq_47343020的博客 335

MySQL主从复制、读写分离

在企业应用中,成熟的业务通常数据量都比较大单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求配置多台主从数据库服务器以实现读写分离读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

m0_58076958的博客 628

MySQL主从复制与读写分离(重要!)

答:读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

taoxiayu的博客 880
上一篇: LVS-DR+Keepalived+动静分离实验
下一篇: MHA高可用实验(故障模拟+恢复)
唐十洪
博客等级 码龄6年 440粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值