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

个人网站开发用到的技术百度分析

个人网站开发用到的技术,百度分析,池州网站开发公司招聘,做外贸是在什么网站主从数据库和数据库集群的一些问题 数据库集群和主从数据库最本质的区别,其实也就是data-sharing和nothing-sharing的区别。集群是共享存储的。主从复制中没有任何共享。每台机器都是独立且完整的系统。 什么是主从复制? 主从复制,是用来建立一个和主数…

主从数据库和数据库集群的一些问题
数据库集群和主从数据库最本质的区别,其实也就是data-sharing和nothing-sharing的区别。集群是共享存储的。主从复制中没有任何共享。每台机器都是独立且完整的系统。

什么是主从复制?
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库
主从复制的作用(好处,或者说为什么要做主从)
1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
3、读写分离,使数据库能支撑更大的并发,写耗时太长了,会影响读的速度。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。读数据时不能加写锁写数据(只在主数据库写,写完同步到从数据库;只在从数据库读) 在数据库读多写少时可以用,多个slave可以减轻读的压力,且写操作在主数据库不影响读。
读写分离的实现方法
基于程序代码内部实现
在代码中根据 select、insert 进行路由分类,这类方法也是目前生产环境应用最广泛的
优点是性能较好,因为在程序代码中实现,不需要增加额外的设备为硬件开支;缺点是需要开发人员来实现,运维人员无从下手
但是并不是所有的应用都适合在程序代码中实现读写分离,像一些大型复杂的Java应用,如果在程序代码中实现读写分离对代码改动就较大
②基于中间代理层实现
代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库,有以下代表性程序。MySQL-Proxy,MySQL-Proxy 为 MySQL 开源项目,通过其自带的 lua 脚本进行SQL 判断。

主从复制的原理(重中之重,面试必问):
主要是基于日志:master二进制日志,slave中继日志
1、Master节点将数据的改变记录成二进制日志(bin log),当Master上的数据发生改变时,则将其改变写入二进制日志中
2.Slave节点会在一定时间间隔内对Master的二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/O线程请求 Master的二进制事件。同时Master节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至Slave节点本地的中继日志(Relay log)中
3、Slave节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,即解析成 sql 语句逐一执行,使得其数据和 Master节点的保持一致,最后I/O线程和SQL线程将进入睡眠状态,等待下一次被唤醒

主从复制慢(延迟)有哪些可能?
主服务器的负载过大,被多个睡眠或者僵尸线程占用,导致系统负载过大
从库硬件比主库差,导致复制延迟
主从复制单线程,如果主库写并发太大,来不及传送到从库,就会导致延迟
慢SQL语句过多

主从复制慢(延迟)解决方案
1、主库同步写到从库再返回,牺牲了写的效率,不推荐;
2、对于强一致性的场景,读请求强制读主数据库,这样从库没意义了;
3、中间件选择路由。这种方案需要使用一个中间件,所有数据库操作都先发到中间件,由中间件再分发到相应的数据库。写请求多记录一个key(可以加主键),读请求,如果此时 key 存在,将会路由到主库,一定时间后(经验值),中间件认为主从同步完成,删除这个 key,后续读将会读从库.
4/ Redis缓存路由大法(推荐)这种方案与中间件的方案流程比较类似,不过改造成本相对较低,不需要增加任何中间件。写请求发往主库,同时缓存记录操作的 key,缓存的失效时间至少设置为主从的延时的时间

主服务器宕机了如何处理,从服务器宕机如何处理?
主库宕机:
(1)确保所有的relay log全部更新完毕,在每个从库上执行show processlist可以查看更新是否完成
(2)更新完毕后,登录所有从库查看master.info文件,对比选择pos最大的作为新的主库
(3)后登录这个新的主库,执行stop slave;进入主目录,删除master.Info和relay-log.info配置my.cnf文件开启log-bin文件
(4)创建用于同步的用户并授权slave
(5)登录另外一台从库,执行stop slave停止同步
(6)执行start slave
(7)修改新的master数据,测试slave是否同步更新

从库宕机:
(1)查看从库上mysql的错误日志,里面有记录主从挂掉时的binlog信息
(2)有了binlog和postion信息后,只需要重新在从库上进行change master to配置即可。配置后开启slave状态,没有报错
(3)查看slave状态,发现slave已经正常了,开始进行延时数据恢复。

主从复制读写分离的实际操作案例
准备工作
除了客户端,都需要先源码编译安装好MySQL
都需关闭防火墙及控制访问机制
systemctl stop firewalld
systemctl disable firewalld
#关闭防火墙(及开机禁用)
setenforce 0
#关闭安全访问控制机制
主从时钟同步
主服务器设置
#安装 NTP
yum -y install ntp
#配置 NTP
vim /etc/ntp.conf
#末行添加以下内容
server 127.127.126.0
fudge 127.127.126.0 stratum 8
#设置本地是时钟源,注意修改网段
#设置时间层级为8(限制在15内)

#重启服务
service ntpd restart
从服务器设置
yum -y install ntp ntpdate
#安装服务,ntpdate用于同步时间
service ntpd start
#开启服务
/usr/sbin/ntpdate 192.168.126.11
#进行时间同步,指向Master服务器IP
crontab -e
#写入计划性任务,每半小时进行一次时间同步
*/30 * * * * /usr/sbin/ntpdate 192.168.126.11
配置主服务器
vim /etc/my.cnf
#配置以下内容
server-id = 1
log-bin=master-bin
#添加,主服务器开启二进制日志
log-slave-updates=true
#添加,允许从服务器更新二进制日志
systemctl restart mysqld
#重启服务使配置生效
mysql -uroot -p123123
#登录数据库程序,给从服务器授权
GRANT REPLICATION SLAVE ON . TO ‘myslave’@‘192.168.126.%’ IDENTIFIED BY ‘123123’;
FLUSH PRIVILEGES;
show master status;
quit

从服务器配置
vim /etc/my.cnf
server-id = 2
#修改,注意id与Master的不同,两个Slave的id也要不同
relay-log=relay-log-bin
#添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log-index=slave-relay-bin.index
#添加,定义中继日志文件的位置和名称
systemctl restart mysqld
mysql -uroot -p123123
change master to master_host=‘192.168.126.11’ , master_user=‘myslave’,master_password=‘123123’,master_log_file=‘master-bin.000001’,master_log_pos=604;
#配置同步,注意 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进程

http://www.mmbaike.com/news/453.html

相关文章:

  • 网站只能用ip访问网站吗营销渠道的三个类型
  • 百度推广网站可以链接到同公司另一个网站吗app开发费用一般多少钱
  • 邵阳建设网站公司cba最新消息
  • 网站域名设计推荐网络营销具有什么特点
  • 电脑游戏网站建设手机制作网站app
  • 开心消消乐官方网站开发公司泰州seo
  • 网站后台管理模板下载1688黄页大全进口
  • 梧州做网站建设网络推广外包公司干什么的
  • 做网站维护学什么编程语言投稿网
  • 在哪网站建设网络广告营销案例有哪些
  • 潼南集团网站建设做seo排名好的公司
  • 做网站设计用什么软件最好优化新十条
  • 微信app网站建设百度指数预测
  • 备案资料网站查询武汉网络推广外包公司
  • 东莞阳光网市民投诉热线来客seo
  • 免费做效果图的网站有哪些seo交流论坛seo顾问
  • 南阳做网站的怎么做电商卖东西
  • 网络推广就是做网站吗百度优化排名软件
  • 建设银行春招网站市场调研报告500字
  • 怎么做自己的企业网站关联词有哪些三年级
  • 毕业设计选择做网站的意义网推app怎么推广
  • 2018做网站开发一个月工资多少营销型网站的推广方法
  • 网站导航栏代码百度热搜榜排名今日头条
  • 网站做京东联盟互联网营销推广
  • 网站刚刚开始怎么做seo优化包括
  • 网站的基础服务哈尔滨seo推广
  • 摄影做网站百度运营平台
  • 两颗米网站建设交换链接平台
  • 动易6.8网站头深圳网站建设微信开发
  • 网站seo优化分析联赛积分榜排名