马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
提示:以下答案均为我个人的一些粗浅鄙见,非精确答案,如果有思量不敷之处,欢迎诸位增补。
自我先容
Mysql主从复制是做了一个什么样的集群?
Mysql主从复制
答:Mysql主从复制集群通常由主Mysql和从Mysql构成,主节点负责数据写入,从节点负责数据读取,这种分工相助的方式大大进步了数据库的并发负载本事。
主从节点之间的数据同步功能是通过中继二进制日志 实现的。通常是接纳基于语句的复制。在主节点实行语句后,会同时将该语句写入二进制日志 ,然后从节点的IO进程读取该语句后,通过实行该语句实现数据同步。
使用步调:设置my.cnf开启中继二进制功能 》数据库授权访问 》启动主从同步
但这个集群无法做到服务故障不停止。为了服务的高可用性,可以使用MMM、MHA、MGR、PXC、MySQL InnoDB Cluster等方案。
当数据库容量过大时,也必要举行分库分表使用。
在Mysql的使用过程中碰到过哪些题目?
- 参数设置类题目
- 碰到过一个毗连数据库慢的题目:skip-name-resolve #Don’t resolve hostnames
- 开源项目导入数据库碰到过巨细写敏感题目:关闭巨细写敏感。
- 实行SQL limit 痴钝题目:limit应小于总条数。
- 字符集题目。
- 性能类题目
- 慢查询、最大毗连数的题目、版本题目、缓存池。
- 服务器资源题目。
- 查询慢(服务器性能、缓存得当、语句本身。)
背面生产环境完全使用了华为云产物,根本是除了调调参数设置就没有其他题目了。
mysql迁徙具体步调
本质是:全量+增量的原理。
- 先做一次全量数据的同步
- 如果数据量在10个G以内的话,通过实行mysqldump下令,大概借助Navicat、HeidiSQL等工具可以直接导出全量数据。
- 如果数据量很大,必要使用xtrabackup。
- xtraBackup 与 mysqldump的区别:
- xtraBackup 是物理热备份工具,具有备份速率快、支持备份数据压缩、自动校验备份数据、备份过程险些不影响业务的特点。支持完全备份、增量备份和差异备份。仅实用于InnoDB和XtraDB存储引擎。实用于快速备份且数据量较大的InnoDB数据库。
- mysqldump 是逻辑备份工具,实用于规模较小、业务不繁忙的场景。缺点是由于是单线程使用,备份过程大概会斲丧大量内存和CPU。支持MyISAM存储引擎。
Mysql全量备份及增量备份
基于 mydumper 实现 MySQL 定期全量备份、规复方案
MySQL—备份与维护(一)
MySQL物理备份(xtrabackup中级篇)
Percona XtraBackup全量备份规复使用
维护数千规模MySQL实例,数据库灾备体系构建指南
如果数据量很少,用户访问有规律。可以晚上锁表直接搞一下,直接跳过增量同步的过程,把数据库迁徙掉。
如果要求不绝机的话
- 做一个主从同步功能
- 启动目标端应用(需提前验证业务是否正常),停息写使用。
- 解开写使用,源端流量迁徙至目标端,验证业务。
mysql弊端修复是怎么做的。
- 做好备份。
- 根据 Bug 信息搜索官方 Bug 库,探求官方修复。
- 探求官方修复补丁: git 拉取补丁代码。
- 在本身当地代码库打上修复补丁
mysql的容灾方案(灾备规复机制)。
- 容灾
- 跨AZ高可用集群(主从复制、组复制(MySQL Group Replication)、InnoDB Cluster、InnoDB ClusterSet、MHA(Master High Availability)、MMM(Multi-Master Replication Manager)、Galera Cluster)
- 备份
redis多节点怎么摆设的
数据库&&Redis&&集群搭建:
答:redis集群可以使用主从复制模式、哨兵模式、Cluster模式等。
主从复制模式是通过RDB快照文件实现的,缺点是出现故障时必要手动切换主从。
哨兵模式通过发布订阅模式可以自动的实现主从切换。
Cluster 模式使用了Sharding 技能,实现了高可用、读写分离和真正的分布式存储。
redis的备份与规复、迁徙原理
数据库&&Redis&&迁徙流程:
叙述下个人对k8s的明确
- 弹性扩缩容、自动规复、自动调理、滚动升级、服务发现。
- 资源池化。
- 插件化。
- 可移植性、消除了底层根本办法的差异(机动性)。
- 更加快速的集成、摆设,交付服从变高。
etcd的巡检运维怎么做的?
物理备份:etcd 备份,生存某一个时候的快照,快捷方便。
- ETCDCTL_API=3 /usr/local/bin/etcdctl --endpoints=https://127.0.0.1:2379 \
- --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \
- snapshot save "${BACKUP_DIR}/etcd-snapshot-${DT}.db"
复制代码 逻辑备份:velero 备份 ,答应用户本身选择备份的内容,比如单个 namespace、指定资源范例等。
etcd迁徙怎么做。
Kubernetes&&存储&&etcd
etcd节点差异步或down了怎么处理惩罚
- 单个节点宕机规复:如果etcd集群中只有一个节点宕机,通常不会影响集群的正常工作。可以通过查察集群状态并摘除非常节点,然后重新摆设服务后,将节点重新到场集群。必要注意的是,如果节点的IP稳定,通常不必要重新制作证书 。
- 高出半数节点宕机:如果宕机的节点高出一半,集群将无法正常工作,必要尽快规复。大概必要使用etcd的备份数据或从etcd数据目次复制snap/db文件来规复集群 。
- 处理惩罚数据差异等题目:如果发现集群中节点的数据差异等,可以备份正常节点的etcd数据,克制非常数据的etcd服务,删除非常member,扫除数据目次下的数据,然后让非常节点重新到场集群并启动etcd服务
- etcd服务无法启动修复:如果某个节点的etcd服务无法启动,大概是由于节点数据差异步。可以删除该节点的数据目次,然后从其他正常节点获取集群状态,并将该节点重新到场集群 。
- 数据库空间超出报错:如果碰到"database space exceeded"的报错,大概是由于存储空间超出了etcd的默认限定。可以备份数据,获取当前的revision,使用etcdctl compact下令来删除旧的revision数据,然后使用etcdctl defrag下令来整理碎片,并删除报警 。
- 故障节点处理惩罚:如果某个节点康健状态表现为Unhealthy,可以实验将该节点从集群中移除,然后扫除该节点的数据目次,并更新集群设置文件,将节点重新到场集群并重启服务
etcd扩容步调,
- 准备新节点:在新节点上安装etcd,设置hosts剖析,并确保新节点的地点信息可以正常剖析 。
- 更新证书:重新申请或更新证书,确保新节点的IP地点被包罗在证书中 。
- 设置新节点:在新节点上设置etcd的启动参数,包罗数据目次、名称、集群信息等 。
- 逐个添加节点:使用etcdctl工具在现有集群中逐个添加新节点。添加节点时,必要先在现有集群的任一节点上使用etcdctl member add下令来添加新节点 。
- 启动新节点服务:在新节点上启动etcd服务,并查抄其状态以确保乐成到场集群 。
- 修改集群设置:在全部节点上更新etcd的设置文件,如果必要的话,修改启动参数如集群成员列表,并重启服务以应用更改 。
- 更新Kubernetes设置(如果使用etcd作为Kubernetes集群的后端):修改kube-apiserver服务毗连的etcd地点,并重启kube-apiserver服务 。
- 验证集群状态:在扩容完成后,查抄集群状态和成员列表,确保新节点正常工作并到场集群数据的同步 。
- 安全加固:扩容过程中,确保使用安全通讯,涉及到证书和密钥的更新和设置 。
- 监控
集群:扩容后,连续监控 集群状态和性能,确保集群稳固运行。
kafka、zookeeper、hadoop等应用的根本使用。(运维工作内容、工作原理)
大数据&&Hadoop&&入门教程:
应用调和服务&&ZooKeeper&&根本使用:
消息队列&&Kafka&&根本使用:
对prometheus和Grafana等监控 应用的根本使用,对国产化监控(如n9e)的根本使用。
centos 7.9+mysql 5.7+nightingale v6.0+redis安装:
基于Prometheus和K8s构建监控体系:
elasticsearch的根本使用(虚机摆设和容器化摆设)、怎样手动清算Elasticsearch所占用的磁盘空间。
EFK日志 网络体系+Rancher安装:
- # 首先,确定要优化的索引
- curl -XGET 'http://localhost:9200/_cat/indices?v'
- # 然后,对特定索引执行优化操作
- curl -XPOST 'http://localhost:9200/<index_name>/_forcemerge?max_num_segments=1'
复制代码 更换 <index_name> 为你想要优化的索引名称。_forcemerge 使用将实验归并索引中的段,清算未使用的空间。max_num_segments 参数设置为 1 意味着每个分片终极将只有一个段,如许做可以淘汰磁盘空间的占用,并进步搜索性能,但代价是必要更多的磁盘I/O。
请注意,实行优化使用大概会占用较多的体系资源,而且在数据量大的环境下大概必要一些时间来完成。在实行优化使用之前,确保Elasticsearch集群的康健状态良好,并对大概对集群性能产生的影响有所相识。
- #!/bin/bash
- # Elasticsearch 服务器地址
- ES_SERVER="http://localhost:9200"
- # 索引前缀
- INDEX_PREFIX="your_index_prefix"
- # 保留天数
- RETENTION_DAYS=30
- # 日志文件路径
- LOG_FILE="/var/log/es-index-clean.log"
- # 获取当前日期
- CURRENT_DATE=$(date +%Y%m%d)
- # 获取需要删除的索引日期
- CUTOFF_DATE=$(date -d "-${RETENTION_DAYS} days" +%Y%m%d)
- # 拼接索引名称
- CUTOFF_INDEX="${INDEX_PREFIX}${CUTOFF_DATE}"
- # 删除索引
- echo "Deleting indices older than ${RETENTION_DAYS} days..." >> ${LOG_FILE}
- echo "Cutoff date: ${CUTOFF_DATE}" >> ${LOG_FILE}
- curl -XDELETE "${ES_SERVER}/${CUTOFF_INDEX}" -s >> ${LOG_FILE}
- echo "Index deletion completed on ${CURRENT_DATE}" >> ${LOG_FILE}
复制代码 当Elasticsearch的磁盘空间满了,可以实验以下几种方法来举行清算:
- 删除旧的索引数据:通过删除旧的索引数据来开释磁盘空间。可以使用Elasticsearch的API大概Kibana控制台来删除不再必要的索引。
- 压缩索引:可以实验对索引举行压缩,以淘汰磁盘空间的占用。可以使用Elasticsearch的force merge API来实行索引的压缩使用。
- 调解数据生存战略:查抄数据生存战略是否公道,可以调解数据的生存限期大概淘汰数据的生存量,以节省磁盘空间。
- 清算日志文件和暂时文件:定期清算Elasticsearch的日志文件和暂时文件,开释磁盘空间。
- 扩容磁盘空间:如果以上方法无法开释富足的磁盘空间,可以思量扩容磁盘空间来办理题目。
Elasticsearch自动清算的会集方式
- 索引生命周期管理(ILM):Elasticsearch 提供了索引生命周期管理功能,答应用户创建战略来自动管理索引的生命周期,包罗创建、逾期和删除索引。比方,可以创建一个战略自动清算30天之前的索引 。
- 索引模板与ILM战略联合:通过创建索引模板,在模板中界说索引的设置和映射,并指定ILM战略,如许新建的索引就会自动应用该战略举行管理 。
- 定期实行脚本:可以使用Shell脚本定期实行,删除满足特定条件的索引。比方,脚本可以查询索引列表,然后删除高出肯定天数的索引 。
- 使用Logstash的ILM功能:如果日志数据是通过Logstash传输到Elasticsearch,可以在Logstash设置中启用ILM,并指定战略,如许由Logstash创建的索引会自动应用ILM战略 。
- 索引按日期拆分:对于按日期天生的索引,如日志数据,可以设置战略按日期自动拆分索引并清算旧索引 。
- 自动化定期清算:可以写定时使命调用清算索引的哀求,定期实行。比方,使用crontab设置脚本定时实行索引删除使用 。
- 使用Opendistro Index State Management:ElasticSearch支持Opendistro Index State Management插件,它提供了额外的索引管理功能,包罗自动化清算 。
在windows和Mac环境中,怎样对运行在上面的应用举行排错使用(网络排错工具的使用)。
对Process Monitor、WinDBG等windows进程方面的工具的根本使用
Process Monitor能找出进程所属的软件、进程读取的全部文件、监督某个特定进程等。
Process Monitor下载安装使用教程(图文教程)超具体
windbg使用教程(调试非常及死锁等)
WinDbg使用
对路由剖析、防火墙规则、DNS剖析的添加使用处理惩罚。
- 路由设置
- ip route add default via
- vi /etc/iproute2/rt_tables
- route add 0.0.0.0 mask 0.0.0.0 metric 1 if
- 控制面板
- 防火墙设置
- iptables -A INPUT -s -j ACCEPT
- netsh advfirewall firewall add rule name=“Allow HTTP” dir=in action=allow protocol=TCP localport=80
- 控制面板
- DNS剖析设置
- vim /etc/resolv.conf
- 编辑C:\Windows\System32\drivers\etc\hosts
- 指定dns server
做过国家护网的事变使用吗
流水线的具体搭建过程、该过程中必要办理的难点(那边最有难度:服务管理、cicd的连续升级)、运行流程–画两个图。碰到过哪些题目。
- 资源评估
- 服务范例分别:内存麋集型、cpu麋集型、IO麋集型等、;有状态服务号、无状态服务、守卫服务。
- 服务资源规划:确认待容器化服务所需的cpu、内存、硬盘资源。
- 服务器规格选型,根据具体业务确认cpu与内存的比例等
- 资源规划:根据业务资源斲丧+可靠性+其他依赖组件=终极集群资源总量。
- 组件选型:如k8s管理(racnher和kubesphere)组件、日志(efk和loki)组件、流量管理(skywalking、jaeger、kiali)组件
- 网络规划、名称空间规划、日志收罗、监控方案。pod亲和性、资源限额。
- 架构计划
- 前端服务:客户端怎样访问后端服务、前端服务袒露方式、前端服务路由规则变更、前端服务的高可用性。
- 后端服务:副本数大于2、扩缩容、
- 摆设各环境k8s集群,对接nfs、镜像堆栈、提供config文件
- 服务容器化改造
- 服务发现方式改为k8s的svc方式。
- 服务支持康健检测接口。
- 服务支持服务管理功能。
- 初始化yml文件(标签计划、多副本)
- 镜像堆栈改造:dockerfile文件和yaml文件
- 初始化流水线,
- (后端和前端)发布流水线、回滚流水线、灰度流水线
- 对接第三方服务(git堆栈、镜像堆栈、弊端扫描工具、代码扫描工具、接口测试平台)、
- 高可靠(备份规复)
- 二次开发(难点)
- k8s摆设环境、镜像包管理、设置文件版本、测试开发运维职员和服务及镜像关联关系等纳管
- 汗青记载管理。如镜像扫描效果、构建镜像信息、自动化测试效果、镜像测试效果标注。
- 基于镜像包流转机制开发的CICD平台,支持将包快速流转至转测、众测、生产环境。
查询一个端口被哪个进程占用,该怎样查询。
- netstat -lntp | grep 端标语; ps -ef | grep PID号
- sudo lsof -i :9999
- sudo ss -ltp | grep 9999
对一个文件做批量文本更换处理惩罚该怎样使用。
- # 对指定目录下的文件中的字符串 aString 替换为字符串 bString
- sed -i 's/aString/bString/g' `grep -irl "aString" /opt/* `
- # 先用 find 命令找到文件,然后用 xargs 执行 sed 命令
- find /path/to/directory -type f -name '*.txt' -print0 | xargs -0 sed -i 's/oldtext/newtext/g'
复制代码 查询一个进程的信息(如套接字、文件形貌符等信息)
- ps -p PID -o pid,comm,lstart,user,%mem,%cpu,nice,vsize,rss,stat,etime,wchan,cmd
- cat /proc/PID/limits
- top -p PID
- lsof -p PID
你打仗过windows或Mac使用体系上底层驱动的干系知识吗
主从复制出现故障时,该如那边置惩罚
- 先向上关照 》确认对现网的影响,如果主节点正常(对现网无影响),则转为排查主从差异步的缘故原由;如果主节点非常(对现网有影响),则优先规复现网,启动容灾方案/切换至从节点/重启同步复制状态或主从节点mysql服务。
- 登录mysql服务,确认主从同步复制状态是否正常。 show slave status \G;
- 若非常,确认主从节点的网络状态是否良好》确认主从节点服务器状态是否良好。
- 查抄日志 》确认mysql-bin和relay-bin文件是否破坏 》确认是否存在无法同步sql下令的环境(大变乱使用)
- 确认mysql设置参数公道划一(如划一的max_allowed_packet、字符集、自增索引)、mysql版本划一、体系时间划一、sql mode、binlog格式、从库误写入等等
mysql主从节点的切换流程
- 堵截应用对主库的流量,克制主数据库的写入使用
- 主库、备库设置只读
set global read_only=ON;
set global super_read_only=ON;
- 查察备库复制进程状态,期待从数据库与主数据库同步
show slave status\G # 确认Slave_IO_Running,Slave_SQL_Running状态为YES,Seconds_Behind_Master为0
- 比对主备双方的GTID是否划一,获取主备双方的executed_gtid聚集,举行比对
select @@global.gtid_executed;
SELECT GTID_SUBSET(master_gtid_executed, slave_gtid_executed); #通过GTID_SUBSET函数举行比对 。若在master_gtid_executed中的GTID,也存在slave_gtid_executed中,则返回true(1),否则返回false(0)。返回1,代表主库GTID已经在从库完成实行过,双方是划一的。
- 从库停掉复制进程并清空主从信息
stop slave;
reset slave all;
- 库关闭只读开启读写,转为新主库
set global read_only=off;
set global super_read_only=off;
- 主库设置实行新主库的复制链路,转为新备库,完成主从切换
CHANGE MASTER TO MASTER_HOST=‘192.168.1.111’,MASTER_USER=‘xxx’,MASTER_PORT=3306,MASTER_PASSWORD=‘xxx’,master_auto_position=1 ;
start slave;
show slave status\G
- 应用流量切向新主库。(1.触发keepalive vip漂移动作。2.nacos更改。3.域名挟制。4.直接改服务设置文件)
MySQL 主从切换步调
可以大概实现负载均衡的工具有哪些
- 硬件方式
- dns
- nginx upstream
- ipvs
- iptables
- 第三方工具、(elb\nacos)
- 客户端负载均衡实现机制
ipvs 与 nginx 的负载均衡的区别
- ipvs
- 四层转发,如TCP协议等,基于 IP+Port 的负载均衡。
- nginx
- 七层转发,如HTTP协议等。额外支持对域名、路由规则举行转发。
nginx支持哪些负载均衡的战略,都有什么特点
轮询、加权轮询、IP哈希、最少毗连
|