当前位置: 首页 > Linux

Linux运维必遇的100道MySql面试题(四)

时间:2023-04-06 04:57:01 Linux

接上一篇文章:Linux运维必须遇到的100道MySql面试题(三)020:如何开启从库的binlog功能?修改配置文件,增加如下配置log_bin=slave-binlog_bin_index=slave-bin.index需要重启服务021:MySQL如何实现双向主从复制,并说明应用场景?双向同步主要用于解决单主库写入压力的问题,具体配置如下主库配置[mysqld]auto_increment_increment=2#启动IDauto_increment_offset=1#ID自增间隔log-slave-updates从库配置[mysqld]auto_increment_increment=2#启动IDauto_increment_offset=2#ID自增间隔log-slave-updates主从数据库服务器都需要重启mysql服务。022:MySQL如何实现级联同步,并说明应用场景?级联同步主要用于从库需要作为其他数据库的主库进行级联同步的时候在数据库配置文件中添加如下配置:log_bin=slave-binlog_bin_index=slave-bin.index023:mysql如何解决主从复制失败?1、登录从库,执行stopslave;停止主从同步然后设置globalsql_slave_skip_counter=1;跳过一步错误,最后执行startslave;并查看主从同步状态完全准备好数据库并刷新binlog,查看主库状态并将全量备份文件恢复到从库,然后执行changemaster开启主从同步startslave;并查看主从同步状态024:如何监控主从复制是否故障?mysql-uroot-ppassowrd-e"showslavestatus\G"|grep-E"Slave_IO_Running|Slave_SQL_Running"|awk'{print$2}'|grep-c是通过判断数量监控主从复制状态是的,等于2025:MySQL数据库是如何实现读写分离的?1.通过开发程序实现2.通过其他工具(mmm、mycat等)实现026:一主多从生产死机怎么手动恢复?1.停止与主数据库的连接。2、修复从库的数据库。3、然后重新操作master数据库的同步。1.登录各个从库停止同步,查看谁的数据是最新的,设置为新的主库,让其他从库同步自己的数据2.修复主库后,重新操作master的步骤-slavesynchronization#need注意,如果新的主库之前是只读的,需要关闭这个功能,使其可写#需要在新的从库中创建与之前的主库相同的同步用户和权限#Otherslavelibraryexecutechangemastertomaster_port=newmaster库的端口,启动slave028:工作中遇到过哪些数据库故障,请描述2个例子?1.开发使用root用户在从库上写数据,导致主从数据不一致,前端没有显示需要修改的内容(还是老数据)#用户权限没控制好并且从库没有设置为只读2.内网测试环境服务器突然断电导致主从同步失败029:MySQL复制延迟的原因有哪些?怎么解决?1、需要从从库同步的数据太多。2、从库硬件资源较差,有待提高。3.网络问题,需要提高网络带宽。4、主库写入数据量大,需要优化配置和硬件资源5。,SQL语句执行时间过长,需要优化。030:给企业生产的大规模MySQL集群架构一个可行的备份方案?1.双主多从,主从同步架构,然后实现一个从库作为备份服务器2.编写脚本实现分库分表备份,并添加定时任务3.最后推送内网备份服务专业服务器和数据库服务器本地保存一周4.备份服务器根据实际情况保存备份数据(一般30天)031:什么是数据库事务,数据库事务有什么特点交易?企业如何选择?数据库事务指的是一组逻辑上的sql语句。组成这组操作的每个语句在执行时要么成功要么失败。特点:原子性、隔离性、持久性和一致性。032:请解释一下全量备份和附加备份、冷备、热备的概念和企业实践经验?全量备份:对数据库中的所有数据进行全量备份,即备份当前数据库中的所有数据。追加备份:在上次备份的基础上备份到现在为止的所有新数据。冷备份:在停止服务的基础上进行备份操作。热备份:在不影响数据库正常运行的情况下进行在线备份操作。企业基本每周或每天做一次全量备份,其他时间做增量备份。在双机热备份的情况下,两个数据库同时提供服务。企业初期,数据量和服务器数量都不大,可能会进行一些大的库、表结构等操作。033:开发有大量数据根据发给dba执行的数据,DBA在执行中应该注意什么?1、需要注意语句是否有格式错误,执行会出错导致流程中断。2、还需要注意语句执行时间是否过长,是否会对服务器负载造成压力,影响实际生产。034:请描述一下MySQL中中文数据乱码的原理,如何防止乱码?服务器系统、数据库、客户端的字符集不一致,需要统一字符。035:企业生产如何优化MySQL(请多角度描述)?1、提高服务器硬件资源和网络带宽。2.优化mysql服务配置文件。3、开启慢查询日志,分析问题。执行以下脚本修改#!/bin/shuser=rootpasswd=123456cmd="mysql-u$user-p$passwd"dump="mysqldump-u$user-p$passwd"fordatabasein`$cmd-e"显示数据库;”|sed'1,2d'|egrep-v"mysql|performance_schema"`为`dump-e"中的表做showtablesfrom$databses;"|sed'1d'`do$cmd"altertable$数据库。$表引擎=MyISAm;"doneone037:如何批量更改数据库表的引擎?使用mysqldump命令备份一个sql文件,然后使用sed命令替换sed-i's/GBK/UTF8/g'038:网站打开速度慢。如果是数据库慢导致的,如何排查和解决?您可以使用topfree等命令来分析系统性能和其他问题。如果问题是数据库引起的,则需要查看慢查询日志来查找和分析问题。039:如何调整生产线上MySQL数据库的字符集?1.先导出库的表结构-d只导出表结构,然后批量替换2.导出库中的所有数据(在不生成新数据的前提下)3.然后全局替换setnames=xxxxx4.删除原来的数据库和表,新建,然后导入建库建表语句和所有数据点击关注微信农民工技术之路公众号对话框回复关键词:1024你可以获得一份最新的技术干货:包括系统运维、数据库、dis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELKStack、机器学习、BAT面试精讲视频等。