Linux+shell+network知识
ext4、ext3和xfs的区别
*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 × 读百分比)
假设组成RAID5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:(500×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS
MySQL基础
触发器的作用域是什么?触发器的最小单位?
作用域是表,最小单位是行
函数和存储过程的区别
存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
1) 一般来说,存储过程实现的功能要复杂一点,而函数的实现功能针对性比较强。
2) 对于存储过程来说可以返回参数,如记录集,而函数只能返回值或表、对象。
3) 存储过程可以使用非确定函数,不允许在用户定义函数主题中内置非确定性函数。
4) 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一部分来调用。
5) SQL语句中不可用存储过程,而可以使用函数。
Truncate和 delete的区别
1.truncate(DDL)删表保留表结构,并且不能回滚恢复,但是删除速度快
2.delete是将表存储到回滚段中,可以进行回滚,但是删除速度相对慢一点
3.所以从安全性方面考虑,小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及。使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
*游标的使用
存储过程
mysql有什么优点,为什么很多公司使用
Mysql优点及特点
1、性能卓越,服务稳定,很少出现异常宕机
2、开放源代码且无版权制约,自主性强、使用成本低。
3、历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。
4、软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
5、支持多种操作系统,提供多种api几口,支持多种开发语言。
- 索引是什么算法
(B+TREE)
- 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过多会不会产生锁以及死锁
数据库刚启动的时候快,后来慢?
zabbix、tpcc、中间件
中间件的优缺点
优点:
1、源程序不需要做任何改动就可以实现读写分离
2、动态添加数据源不需要重启程序;
缺点
1、程序依赖于中间件,会导致切换数据库变得困难
2、由中间件做了中转代理,性能有所下降
3、对数据库的理解
4、项目是如何做的
Zabbix建立的参数有哪些
1、数据库真实负载相关、tps、qps 2、IO相关 3、内存相关 4、连接相关 5、锁相关
6、日志相关 7、慢查询相关 8、网络相关 9、全表扫描相关 10、iostat、free、vmstat、sar(Linux层面)
xtrabackup是否有行锁
没有行锁,只有全局的锁
故障定位(自己举例)
学习中遇到的问题以及怎么解决? 自己在项目中做过什么?
读写分离是怎么实现的
1.应用层解决;
2.中间件实现
3.应用层实现的的优缺点:
优点:
1、多数据源切换方便,由程序自动完成;
2、不需要引入中间件;
3、理论上支持任何数据库
缺点:
1、由程序员完成,运维参与不到
2、不能做到动态增加数据源;
怎么实现非顺序读操作系统的压力操作(零生成器太鸡肋)
备份与恢复、MHA主从架构
*说说逻辑备份和物理备份(回答要点,概念,原理,区别,包括所使用的原件的优点和缺点,把自己知道的备份都说出来,)
两种备份区别是什么:
1.物理备份,备份的是数据页(数据文件),所以备份和恢复的速度都很快,但是备份占用的空间大;逻辑备份,备份的是SQL语句,所以备份和恢复的速度都很慢(需要解析SQL,建立索引,将所有数据缓存到内存中,所以需要的时间长),但是备份占用空间小
2.实现数据一致性的方法不同
a.对于myisam表都是通过锁来实现数据一致性的
b.但是对于innodb表,逻辑备份通过加--single-transaction,不锁表;物理备份通过apply redo,不锁表
3.两种备份恢复的策略都是备份+binlog,binlog起点的查找方法不同
a. 逻辑备份通过加上-F选项刷新binlog或者通过某一条特殊的语句查找起点,物理备份通过查看info文件
4.逻辑备份有助于避免数据损坏。如果磁盘有故障,这时候物理备份,备份数据文件将得到的就是损坏坏的备份
5.除此之外还有LVM备份,此处就不做解释了,大家懂LVM机制自然就明白。
用过什么parana公司开发的工具
xtrabackup、pt工具
1、将xtrabackup工具备份的过程分析总结成原理
2、将xtrabackup工具redo应用的过程分析及恢复总结成原理
xtrabackup备份中innodb和myisam表怎么实现的
xtrabackup只能备份innodb引擎的表,而不能备份myisam引擎的表;innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。还有就是myisam不支持增量备份。
Binlog太多怎么删除
1.purge 2.rm + purge 3.expire_logs_day 4.reset master 5.硬链接
- MHA能切换几次
可以切换一次,如果一次切换不成功就需要删除manager工作目录下面的app1.failover.error文件
- 做备份的时候怎么做,多久多一次全备、多久多一次增备、bin1og多久备份一次
第一天全备、第二天增量、第三天增量、第四天还没有来得及增量,数据库出现问题:
1、全备 2、apply-log+redo-only 3、增量 4、增量
5、将3和4对应增量追加到全备中去
6、使用最新的全备中的xtrabackup_info文件中指定的binlog的新位置,开始跑binlog,一直到最新的点。
备注:从库上进行备份的时候,最好将主从的应用线程给关闭。
6、一个场景:表里面的数据很多,怎么备份,策略是什么,有主从的时候,没有主从的时候怎么备
采用物理备份xtrabackup工具进行全备,隔一天进行一次增备;有主从时用主库binlog跑。