zoukankan      html  css  js  c++  java
  • 某公司面经

    Linux+shell+network知识

    ext4ext3xfs的区别

    *Awk命令

    网卡重启之后IP失效的原因:

    1.网卡设备不存在或者设备未连接,或者DEVICE位置的设备冲突

    2.BOOTPROTO=DHCP是动态获取IP,在配置文件中配置了静态IP也不能使用

    3.IP冲突

    linux怎么开放一个端口

    方法一(命令):

    1.开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

    2.保存:/etc/rc.d/init.d/iptables save

    3.重启服务:/etc/init.d/iptables restart

    4.查看端口是否开放:/sbin/iptables -L -n

     

    方法二(修改文本):

    1.修改文件: vi /etc/sysconfig/iptables

    2.在文本中加入一行:-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

    3.重启服务:service iptables restart

    4.查看端口命令:service iptables status

     

    SSH怎么配置免密登录

    /root/.ssh配置文件

    25、IOPS怎么计算

    IOPS即每秒进行读写(I/O)操作的次数。在实际存储方案设计的过程中,计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算。计算的公式如下:

    物理磁盘中IOPS = 物理磁盘的IOPS × 磁盘数目

    可用的IOPS =(物理磁盘总的IOPS × 写百分比 ÷ RAID写惩罚) + (物理磁盘总的IOPS × 读百分比)

    假设组成RAID­5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:(500×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS

    MySQL基础

    触发器的作用域是什么?触发器的最小单?

    作用域是表,最小单位是行

    函数和存储过程的区别

    存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。

    1) 一般来说,存储过程实现的功能要复杂一点,而函数的实现功能针对性比较强。

    2) 对于存储过程来说可以返回参数,如记录集,而函数只能返回值或表、对象。

    3) 存储过程可以使用非确定函数,不允许在用户定义函数主题中内置非确定性函数。

    4) 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一部分来调用。

    5) SQL语句中不可用存储过程,而可以使用函数。

    Truncatedelete的区别

    1.truncate(DDL)删表保留表结构,并且不能回滚恢复,但是删除速度快

    2.delete是将表存储到回滚段中,可以进行回滚,但是删除速度相对慢一点

    3.所以从安全性方面考虑,小心使用drop truncate,尤其没有备份的时候.否则哭都来不及。使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.

    *游标的使用

    存储过程

    mysql有什么优点,为什么很多公司使用

    Mysql优点及特点

    1、性能卓越,服务稳定,很少出现异常宕机

    2、开放源代码且无版权制约,自主性强、使用成本低。

    3、历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。

    4、软件体积小,安装使用简单,并且易于维护,安装及维护成本低。

    5、支持多种操作系统,提供多种api几口,支持多种开发语言。

    1. 索引是什么算法

    (B+TREE)

     

    1. SQL的执行顺序

    select 7

    from 1

    where 2

    group by 3

    having 4

    union/union all 5

    order by 6

    体系结构

    where like%a’实际的业务中会使用到,怎么解决这个问题

    改写SQL,将表物化到用户工作空间中

    主键和唯一键的区别

    1.主键不可以有NULL,唯一键可以

    2.唯一键可以有多个列,但是主键列只能有一个

     

    insert进去的是一条数据, select查找的是相同的数据。原理是怎么实现的。

    事务在底层是怎么实现的

    事务是一个序列操作,其中的操作要么都执行,要么都不执行,它是一个不可分割的工作单位;数据库事务的ACID四大特性是事务在底层实现的基础。

     

    mysql的错误日志在哪

    一般是/var/log/mysqld.log,最好用cat /etc/my.cnf看看

    半夜0点要往库的一张表先清空再导入1亿行,不断开主从,怎么降低延迟

     

    在同一个事务中可以使用不同的存储引擎吗

    不可以,因为事物的ACID四大特性中有隔离性,在事务提交之前,该事务对应的表一直被锁定,不允许其他存储引擎的介入

    当双主的时候,如果两台主库同时进行操作,就会造成数据不一致,这个问题怎么解决

    怎么提高并发

    1、分库分表 2、事务的隔离级别 3、避免各种锁的情况 4、避免全表扫描

    怎么避免

    1 使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务;

     (细化处理逻辑,执行一段逻辑后便回滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)

    2 设置死锁超时参数为合理范围;超过时间,自动放弃本次操作,避免进程悬挂;

    3 优化程序,检查并避免死锁现象出现;

     

     

    I0过多会不会产生锁以及死锁

    数据库刚启动的时候快,后来慢?

    zabbixtpcc、中间件

    中间件的优缺点

    优点:

    1源程序不需要做任何改动就可以实现读写分离

    2、动态添加数据源不需要重启程序;

    缺点

    1程序依赖于中间件,会导致切换数据库变得困难

    2、由中间件做了中转代理,性能有所下降

    3、对数据库的理解

    4、项目是如何做的

    Zabbix建立的参数有哪些

    1、数据库真实负载相关、tpsqps      2IO相关     3、内存相关    4、连接相关    5、锁相关

    6、日志相关    7、慢查询相关    8、网络相关  9、全表扫描相关   10iostatfreevmstatsarLinux层面)

     

    xtrabackup是否有行锁

    没有行锁,只有全局的锁

    故障定位(自己举例)

    学习中遇到的问题以及怎么解决? 自己在项目中做过什么?

    读写分离是怎么实现的

    1.应用层解决;

    2.中间件实现

    3.应用层实现的的优缺点:

    优点:

    1、多数据源切换方便,由程序自动完成;

    2、不需要引入中间件;

    3、理论上支持任何数据库

    缺点:

    1、由程序员完成,运维参与不到

    2、不能做到动态增加数据源;

    怎么实现非顺序读操作系统的压力操作(零生成器太鸡肋)

    备份与恢复、MHA主从架构

    *说说逻辑备份和物理备份(回答要点,概念,原理,区别,包括所使用的原件的优点和缺点,把自己知道的备份都说出来,)

    两种备份区别是什么:

    1.物理备份,备份的是数据页(数据文件),所以备份和恢复的速度都很快,但是备份占用的空间大;逻辑备份,备份的是SQL语句,所以备份和恢复的速度都很慢(需要解析SQL,建立索引,将所有数据缓存到内存中,所以需要的时间长),但是备份占用空间小

    2.实现数据一致性的方法不同

    a.对于myisam表都是通过锁来实现数据一致性的

    b.但是对于innodb表,逻辑备份通过加--single-transaction,不锁表;物理备份通过apply redo,不锁表

    3.两种备份恢复的策略都是备份+binlogbinlog起点的查找方法不同

    a. 逻辑备份通过加上-F选项刷新binlog或者通过某一条特殊的语句查找起点,物理备份通过查看info文件

    4.逻辑备份有助于避免数据损坏。如果磁盘有故障,这时候物理备份,备份数据文件将得到的就是损坏坏的备份

    5.除此之外还有LVM备份,此处就不做解释了,大家懂LVM机制自然就明白。

     

    用过什么parana公司开发的工具

    xtrabackup、pt工具

     

     

    1、将xtrabackup工具备份的过程分析总结成原理

     

    2、将xtrabackup工具redo应用的过程分析及恢复总结成原理

     

    xtrabackup备份中innodbmyisam表怎么实现的

    xtrabackup只能备份innodb引擎的表,而不能备份myisam引擎的表;innobackupex是一个封装了xtrabackupPerl脚本,支持同时备份innodbmyisam,但在对myisam备份时需要加一个全局的读锁。还有就是myisam不支持增量备份。

    Binlog太多怎么删除

    1.purge 2.rm + purge 3.expire_logs_day 4.reset master 5.硬链接

    1. MHA能切换几次

    可以切换一次,如果一次切换不成功就需要删除manager工作目录下面的app1.failover.error文件

     

     

    1. 做备份的时候怎么做,多久多一次全备、多久多一次增备、bin1og多久备份

    第一天全备、第二天增量、第三天增量、第四天还没有来得及增量,数据库出现问题:

    1、全备 2apply-log+redo-only 3、增量 4、增量

    5、将34对应增量追加到全备中去

    6、使用最新的全备中的xtrabackup_info文件中指定的binlog的新位置,开始跑binlog,一直到最新的点。

    备注:从库上进行备份的时候,最好将主从的应用线程给关闭。

     

    6一个场景:表里面的数据很多,怎么备份,策略是什么,有主从的时候,没有主从的时候怎么备

    采用物理备份xtrabackup工具进行全备,隔一天进行一次增备;有主从时用主库binlog跑。

  • 相关阅读:
    webpack基本使用笔记
    gulp学习记录
    页面优化
    linux下使用indent整理代码
    C++中的getline()
    Sum of Two Integers
    TwoSum
    IDEA个人常用快捷键总结
    mysql数据库遇到的各种问题
    Python中*args 和**kwargs的用法和区别
  • 原文地址:https://www.cnblogs.com/5945yang/p/11694759.html
Copyright © 2011-2022 走看看