当前位置: 首页 > news >正文

济南网站建站公司windows配置wordpress

济南网站建站公司,windows配置wordpress,知名企业门户网站建设联系电话,小程序游戏排名读写分离是什么 读写分离#xff0c;基本的原理是让主数据库处理事务性增、改、删操作#xff08;INSERT、UPDATE、DELETE#xff09;#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 为什么要进行读写分离 因…读写分离是什么 读写分离基本的原理是让主数据库处理事务性增、改、删操作INSERT、UPDATE、DELETE而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 为什么要进行读写分离 因为数据库的“写”写10000条数据可能要3分钟操作是比较耗时的。 但是数据库的“读”读10000条数据可能只要5秒钟。 所以读写分离解决的是数据库的写入影响了查询的效率。 何时要进行读写分离 数据库不一定要读写分离但如果程序使用数据库较多而更新少查询多的情况下会考虑使用。利用数据库主从同步再通过读写分离可以分担数据库压力提高性能。 主从复制与读写分离 在实际的生产环境中对数据库的读和写都在同一个数据库服务器中是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此通过主从复制的方式来同步数据再通过读写分离来提升数据库的并发负载能力。有点类似于rsync但是不同的是rsync是对磁盘文件做备份而mysql主从复制是对数据库中的数据、语句做备份。 MySQL支持的复制类型 STATEMENT基于语句的复制。在服务器上执行sql语句在从服务器上执行同样的语句mysql默认采用基于语句的复制执行效率高。 ROW基于行的复制。把改变的内容复制过去而不是把命令在从服务器上执行一遍。 MIXED混合类型的复制。默认采用基于语句的复制一旦发现基于语句无法精确复制时就会采用基于行的复制。 主从复制的过程 主(Master)dump线程二进制日志 从(Slave)I/O线程SQL线程中继日志 1、主中数据进行更新并写入二进制日志。 2、从开启IO线程并勘测主的二进制日志是否有更新请求读取二进制日志。 3、主为从的IO线程开启dump线程向从发送二进制日志 4、从保存二进制日志到中继日志中 5、从开启SQL线程读取中继日志解析成sql语句实现主从同步   数据库主从数据不一致解决方案 一忽略错误后继续同步 该方法适用于主从库数据相差不大或者要求数据可以不完全统一的情况数据要求不严格的情况 二重新做主从完全同步 该方法适用于主从库数据相差较大或者要求数据完全统一的情况 MYSQL读写分离原理 读写分离就是只在主服务器上写只在从服务器上读。基本的原理是让主数据库处理事务性操作而从数据库处理select查询。数据库复制被用来把主数据库上事务性操作导致的变更同步到集群中的从数据库。 目前较为常见的MysQL读写分离分为以下两种: 基于程序代码内部实现 在代码中根据select、insert进行路由分类这类方法也是目前生产环境应用最广泛的。 优点是性能较好因为在程序代码中实现不需要增加额外的设备为硬件开支缺点是需要开发人员来实现运维人员无从下手。 但是并不是所有的应用都适合在程序代码中实现读写分离像一些大型复杂的Java应用如果在程序代码中实现读写分离对代码改动就较大。 基于中间代理层实现 代理一般位于客户端和服务器之间代理服务器接到客户端请求后通过判断后转发到后端数据库有以下代表性程序。 MySQL-Proxy MySQL-Proxy为MysQL开源项目通过其自带的1ua脚本进行sQL判断。 Atlas 是由奇虎360的Web平台部基础架构团队开发维护的一个基于MysQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上对其进行了优化增加了一些新的功能特性。360内部使用atlas运行的mysql业务每天承载的读写请求数达几干保条。支持事物以及存储过程。 Amoeba 由陈思儒开发作者曾就职于阿里巴巴。该程序由Java语言进行开发阿里巴巴将其用于生产环境。但是它不支持事务和存储过程。 Amoeba是一个非常容易使用、可移植性非常强的软件。因此它在生产环境中被广泛应用于数据库的代理层。 Mycat 是一款流行的基于Java语言编写的数据库中间件是一个实现了MySq1协议的服务器其核心功能是分库分表。配合数据库的主从模式还可以实现读写分离 由于使用MysQLProxy需要写大量的ua脚本这些Lua并不是现成的而是需要自己去写。这对于并不熟悉MysQLProxy 内置变量和MySQL Protocol的人来说是非常困难的。 MySQL主从复制延迟的原因 1、master服务器高并发形成大量事务 2、网络延迟 3、主从硬件设备导致cpu主频、内存io、硬盘io 4、本来就不是同步复制、而是异步复制 从库优化Mysql参数。比如增大innodb_buffer_pool_size让更多操作在Mysql内存中完成减少磁盘操作。 从库使用高性能主机。包括cpu强悍、内存加大。避免使用虚拟云主机使用物理主机这样提升了i/o方面性。 从库使用SSD磁盘 网络优化避免跨机房实现同步 主从复制配置 #准备Master 服务器20.0.0.30 mysql5.7 Slave1 服务器20.0.0.40 mysql5.7 Slave2 服务器20.0.0.120 mysql5.7#关闭防火墙及安全机制systemctl stop firewalld systemctl disable firewalld setenforce 0 Mysql主从服务器时间同步 #主服务器设置(20.0.0.30) #安装ntp yum install ntp -yvim /etc/ntp.conf --末尾添加-- server 127.0.0.0 #设置本地是时钟源注意修改网段 127.0.0.0 fudge 127.0.0.0 stratum 8 #设置时间层级为8限制在15内service ntpd start 或 systemctl start ntpd#从服务器设置(20.0.0.40 、20.0.0.120)yum install ntp ntpdate -yservice ntpd start 或 systemctl start ntpd/usr/sbin/ntpdate 20.0.0.30 #进行时间同步 20.0.0.30#可添加定时任务实现自动同步 crontab -e */30 * * * * /usr/sbin/ntpdate 20.0.0.30主服务器的mysql配置 vim /etc/my.cnf #MySQL的配置文件 server-id 1 log-binmaster-bin #添加主服务器开启二进制日志 binlog_format MIXED #设置日式格式为混合模式 log-slave-updatestrue #添加允许slave从master复制数据时可以写入到自己的二进制日志#重启MySQL服务 systemctl restart mysqldmysql -u root -p123456 GRANT REPLICATION SLAVE ON *.* TO myslave20.0.0.% IDENTIFIED BY 123456; #给从服务器的网段授权#刷新 FLUSH PRIVILEGES;show master status; //如显示以下 ------------------------------------------------------------- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | ------------------------------------------------------------- | master-bin.000001 | 447 | | | ------------------------------------------------------------- 1 row in set (0.00 sec)#File 列显示日志名Position 列显示偏移量 从服务器的mysql配置 vim /etc/my.cnf server-id 2 [server-id 3] #修改注意id与Master的不同两个Slave的id也要不同 relay-logrelay-log-bin #添加开启中继日志从主服务器上同步日志文件记录到本地 relay-log-indexslave-relay-bin.index #添加定义中继日志文件的位置和名称一般和relay-log在同一目录 relay_log_recovery 1 #relay_log_recovery 1 选配项:当 slave 从库宕机后假如 relay-log 损坏了导致一部分中继日志没有处理则自动放弃所有未执行的 relay-log并且重新从 master 上获取日志这样就保证了relay-log 的完整性。默认情况下该功能是关闭的将 relay_log_recovery 的值设置为 1 时 可在 slave 从库上开启该功能建议开启。systemctl restart mysqldmysql -u root -123456 CHANGE master to master_host20.0.0.30,master_usermyslave,master_password123456,master_log_filemaster-bin.000001,master_log_pos447; #配置同步注意 master_log_file 和 master_log_pos 的值要与Master查询的一致start slave; #启动同步如有报错执行 reset slave; show slave status\G #查看 Slave 状态 //确保 IO 和 SQL 线程都是 Yes代表同步正常。 Slave_IO_Running: Yes #负责与主机的io通信 Slave_SQL_Running: Yes #负责自己的slave mysql进程查看从配置不正常的情况 #一般 Slave_IO_Running: No 的可能性 1、网络不通 2、my.cnf配置有问题 3、密码、file文件名、pos偏移量不对 4、防火墙没有关闭验证主从复制效果 #当主数据库进行增添或修改时从数据库会同步记录主的数据#在主数据库增添数据(20.0.0.30)mysql create database xxxx; Query OK, 1 row affected (0.00 sec)#此时查看配置的两台从服务器数据库#20.0.0.40 mysql show databases; -------------------- | Database | -------------------- | information_schema | | bbs | | mysql | | performance_schema | | sys | | test | | test1 | | wordpress | | xxxx | --------------------#20.0.0.120 mysql show databases; -------------------- | Database | -------------------- | information_schema | | mysql | | performance_schema | | sys | | test1 | | test2 | | xxxx | -------------------- 读写分离配置 基于上面的主从复制 #准备Master 服务器20.0.0.30 mysql5.7 Slave1 服务器20.0.0.40 mysql5.7 Slave2 服务器20.0.0.120 mysql5.7Amoeba 服务器20.0.0.41 jdk1.6、Amoeba 客户端 服务器20.0.0.41 mysql#关闭防火墙及安全机制systemctl stop firewalld systemctl disable firewalld setenforce 0 做读写分离实验之前必须有一 主 两从 环境 #Amoeba服务器配置##安装 Java 环境##因为 Amoeba 是基于 jdk1.5 开发的所以官方推荐使用 jdk1.5 或 1.6 版本高版本不建议使用。cd /opt/ cp jdk-6u14-linux-x64.bin /usr/local/ cd /usr/local/ chmod x jdk-6u14-linux-x64 ./jdk-6u14-linux-x64.bin//按yes按enter#重命名目录 mv jdk1.6.0_14/ /usr/local/jdk1.6#修改系统配置文件 vim /etc/profileexport 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 -version#安装 Amoeba软件mkdir /usr/local/amoebatar zxvf 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读写分离两个 Slave 读负载均衡###先在Master(20.0.0.30)、Slave1(20.0.0.40)、Slave2(20.0.0.120) 的mysql上开放权限给 Amoeba 访问grant all on *.* to test20.0.0.% identified by 123456;#再回到amoeba服务器配置amoeba服务cd /usr/local/amoeba/conf/#备份 cp amoeba.xml amoeba.xml.bakvim amoeba.xml #修改amoeba配置文件 --30行-- property nameuseramoeba/property--32行-- property namepassword123456/property--115行-- property namedefaultPoolmaster/property--117-去掉注释- property namewritePoolmaster/property property namereadPoolslaves/property#备份 cp dbServers.xml dbServers.xml.bak vim dbServers.xml #修改数据库配置文件--23行--注释掉 作用默认进入test库 以防mysql中没有test库时会报错 !-- property nameschematest/property ----26--修改 property nameusertest/property--28-30--去掉注释 property namepassword123456/property--45--修改设置主服务器的名Master dbServer namemaster parentabstractServer--48--修改设置主服务器的地址 property nameipAddress192.168.10.15/property--52--修改设置从服务器的名slave1 dbServer nameslave1 parentabstractServer--55--修改设置从服务器1的地址 property nameipAddress192.168.10.14/property--58--复制上面6行粘贴设置从服务器2的名slave2和地址 dbServer nameslave2 parentabstractServer property nameipAddress192.168.10.16/property--65行--修改 dbServer nameslaves virtualtrue--71行--修改 property namepoolNamesslave1,slave2/property/usr/local/amoeba/bin/amoeba start #启动Amoeba软件按ctrlc 返回 netstat -anpt | grep java #查看8066端口是否开启默认端口为TCP 8066测试读写分离 yum install -y mariadb-server mariadb systemctl start mariadb.service ———————————————————— 可选也可以用MySQL在客户端服务器上测试(20.0.0.41)mysql -u amoeba -p123456 -h 20.0.0.41 -P8066#通过amoeba服务器代理访问mysql 在通过客户端连接mysql后写入的数据只有主服务会记录然后同步给从--从服务器#在客户端20.0.0.41更新mysql create database amoeba; Query OK, 1 row affected (0.04 sec)#查看主(20.0.0.30)、从1(20.0.0.40)、从2(20.0.0.120) mysql show databases; -------------------- | Database | -------------------- | information_schema | | amoeba | | bbs | | mysql | | performance_schema | | sys | | test | | test1 | | wordpress | -------------------- 9 rows in set (0.01 sec)#当关闭两台从服务器20.0.0.40、20.0.0.120stop slave; #关闭同步use amoeba; create table test(id int,name varchar(20),text varchar(30));//在slave1上insert into test values(1,zhangsan,this_is_slave1);//在slave2上 insert into test values(2,lisi,this_is_slave2);//在主服务器上 insert into test values(3,wangwu,this_is_master);//在客户端服务器上 use amoeba; select * from test; //客户端会分别向slave1和slave2读取数据显示的只有在两个从服务器上添加的数据没有在主服务器上添加的数据 mysql select * from test; -------------------------------- | id | name | text | -------------------------------- | 1 | zhangsan | this_is_slave1 | --------------------------------再次执行select * from test; mysql select * from test; ---------------------------- | id | name | text | ---------------------------- | 2 | lisi | this_is_slave2 | ----------------------------#在客户端20.0.0.41 插入新条目 insert into test values(4,qianqi,this_is_client); #只有主服务器(20.0.0.30)上有此数据 mysql select * from test; ------------------------------ | id | name | text | ------------------------------ | 3 | wangwu | this_is_master | | 4 | qianqi | this_is_client | ------------------------------//在两个从服务器(20.0.0.40、20.0.0.120)上执行 start slave; 即可实现同步在主服务器上添加的数据 start slave; #(20.0.0.40) mysql select * from test; -------------------------------- | id | name | text | -------------------------------- | 1 | zhangsan | this_is_slave1 | | 3 | wangwu | this_is_master | | 4 | qianqi | this_is_client | --------------------------------#(20.0.0.120) mysql select * from test; -------------------------------- | id | name | text | -------------------------------- | 2 | lisi | this_is_slave2 | | 3 | wangwu | this_is_master | | 4 | qianqi | this_is_client | --------------------------------
http://www.pierceye.com/news/172647/

相关文章:

  • 网站浏览器兼容性通用有那种网站么
  • 网站中全景是怎么做的云南网络营销文化优化
  • 苏州网站优化哪家好换空间对网站的影响
  • 如何做黑客攻击网站专业的网站建设运营
  • 门户网站建站流程做网站在哪里做比较好
  • 青创网站首页wordpress用户发文章
  • wordpress 仿站 主题网站建设拍金手指排名贰拾
  • 自己的网站怎么做跳转广州白云建方舱医院
  • 免费搭建购物网站网页游戏网站打不开
  • 专业的东莞网站设计wordpress extra script
  • 嘉兴网站开发公司电话从零开始创建wordpress主题.pdf
  • 备案号怎么添加到网站自己做网站原始代码
  • 可以做exe的网站邯郸做紧固件网站
  • 电子商务网站开发的说法移动端首页尺寸
  • 普通网站服务器房地产营销门户网站开发
  • 免费做公司网站wordpress文章格式
  • 制作网站教学设计金湖县城乡建设局网站
  • 微商城网站建设咨询网站做的不满意
  • 装企工长网站开发互联网营销师考试内容
  • 广州高端网站定制公司哪家好全椒县城乡规划建设局网站
  • 物流网站毕业设计论文论坛网站模板下载
  • 代理上网蜗牛精灵seo
  • 网站怎么做用qq登录接入网络舆情监测分析系统
  • 怎么把几个网站做互通wordpress 英文站
  • 建设高端网站需要多少钱wordpress检测
  • 如何学习网站建设app嘉兴建站软件
  • 驻马店市建设工程网站平面设计培训班学费一般多少百度贴吧
  • 长沙网络建设的网站免费的个人简历模板word下载
  • 网站维护简单吗wordpress绿色两栏响应式主题
  • 二手站网站怎做福州网站建设的公司哪家好