如何判断mysql主从是否同步?该如何使其同步?
1.如何判断mysql 主从是否同步?该如何使其同步?
3.osi 七层模型,tcp 三次握⼿过程,tcp 连接断开过程,什么情况下tcp 进⼊time_wait?
4.什么是跨站脚本攻击,有何危害,sql 注⼊攻击如何防范?
5.海量⽂件如何存储?
6.如何重置mysql root 密码?
1
2
3Slave_IO_Running Slave_SQL_Running ;
略
1
焊接技术2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20mysql 的innodb 如何定位锁问题:在使⽤ show engine innodb status 检查引擎状态时,发现了死
锁问题在5.5中,information_schema 库中增加了三个关于锁的表(MEMORY 引擎):innodb_trx ## 当前运⾏的所有事务innodb_locks ## 当前出现的锁innodb_lock_waits ## 锁等待的mysql 如何减少主从复制延迟:如果延迟⽐较⼤,就先确认以下⼏个因素:1. 从库硬件⽐主库差,导致复制延迟2. 主从复制单线程,如果主库写并发太⼤,来不及传送到从库,就会导致延迟。更⾼版本的mysql 可以⽀持多线程复制3. 慢SQL 语句过多4. ⽹络延迟5. master 负载主库读写压⼒⼤,导致复制延迟,架构的前端要加buffer 及缓存层6. slave 负载⼀般的做法是,使⽤多台slave 来分摊读请求,再从这些slave 中取⼀台专⽤的服务器,只作为备份⽤,不进⾏其他任何操作.另外, 2个可以减少延迟的参数:–slave-net-timeout=seconds 单位为秒 默认设置为 3600秒#参数含义:当slave 从主数据库读取log 数据失败后,等待多久重新建⽴连接并获取数据–master-connect-retry=seconds 单位为秒 默认设置为 60秒#参数含义:当重新建⽴主从连接时,如果连接建⽴失败,间隔多久后重试。通常配置以上2个参数可以减少⽹络问题导致的主从数据同步延迟MySQL 数据库主从同步延迟解决⽅案最简单的减少slave 同步延时的⽅案就是在架构上做优化,尽量让主库的DDL 快速执⾏。还有就是主库是写,对数据安全性较⾼,⽐如sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之类的设置,⽽slave 则不需要这么⾼的数据安全,完全可以讲sync_binlog 设置为0或者关闭binlog ,innodb_flushlog 也可以设置为0来提⾼sql
国庆放假时间表2022的执⾏效率。另外就是使⽤⽐主库更好的
1
2
3
4
5
6答:其他问题答案略什么情况下tcp 进⼊time_wait?当关闭⼀个 socket 连接时,主动关闭⼀端的 fxcs 将进⼊TIME_WAIT 状态,⽽被动关闭⼀⽅则转⼊CLOSED 状态。具体过程如下:1、 客户端发送FIN 报⽂段,进⼊FIN_WAIT_1状态。2、 服务器端收到FIN 报⽂段,发送ACK 表⽰确认,进⼊CLOSE_WAIT 状态。3、 客户端收到FIN 的确认报⽂段,进⼊FIN 服务器端发送FIN 报⽂端,进⼊LAST_ACK 状态。5、 客户端收到FIN 报⽂端,发送FIN 的ACK ,同时进⼊TIME_WAIT 状态,启动TIME_WAIT 定时器,超时时间设为2MSL 。6、 服务器端收到客户端在2MSL 时间内没收到对端的任何响应,udhnfa151.mllbk 超时,进⼊CLOSED 状态。
1答:略
1
答:使⽤分布式存储,如udbrwa4.sdgyhm 等
7.把/data ⽬录及其⼦⽬录下所有以扩展名.txt 结尾的⽂件中包含oldgirl 的字符串全部替换为oldboy
8.创建⽬录/data/oldboy,并且在该⽬录下创建⽂件,然后在⽂件“”⾥写⼊内容“inet addr : 10.0.0.8 Bcast :
10.0.0.255 Mask : 255.255.255.0 ”(不包含引号)
9.脚本计算1+2+3…. +100=?
1.Apache 和MySQL 两种服务能否装在同⼀台机器上,如何查看Apache 和mysql 端⼝和进程?
2.如何在⼀台虚拟机上同时部署4个⽹站,访问域名分别是 st1 st2 test1.jjwxc test2.jjwxc
3.统计⼀下/var/log/nginx/access.log ⽇志中访问量最多的前⼗个IP?
4.怎么查看当前系统中每个IP 的连接数,怎么查看当前磁盘的IO,怎么查看当前⽹络的IO?
答:
怎么查看当前系统中每个IP 的连接数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16答:⼀、 在已知MYSQL 数据库的ROOT ⽤户密码的情况下,修改密码的⽅法:1、 在SHELL 环境下,使⽤mysqladmin 命令设置:mysqladmin –u root –p password “新密码” 回车后要求输⼊旧密码2、 在mysql>环境中,使⽤update 命令,直接更新mysql 库user 表的数据:Update mysql.user set password=password(‘新密码’) where user=’root’;flush privileges;注意:mysql 语句要以分号”;”结束3、 在mysql>环境中,使⽤grant 命令,修改root ⽤户的授权权限。grant all on *.* to root@’localhost’ identified by ‘新密码’;⼆、 如查忘记了mysql 数据库的ROOT ⽤户的密码,⼜如何做呢?⽅法如下:1、 关闭当前运⾏的mysqld 服务程序:service mysqld stop (要先将mysqld 添加为系统服务)2、 使⽤mysqld_safe 脚本以安全模式(不加载授权表)启动mysqld 服务/usr/local/mysql/bin/mysqld_safe --skip-grant-table &3、 使⽤空密码的root ⽤户登录数据库,重
新设置ROOT ⽤户的密码#mysql -u root Mysql> Update mysql.user set password=password(‘新密码’) where user=’root’;Mysql> flush privileges;
1
2答:find /data/ -type f -name "*.txt" | xargs sed -i 's/oldgirl/oldboy/g'
1
2答:# mkdir -p /data/oldboy # echo "inet addr: 10.0.0.8 Bcast: 10.0.0.255 Mask:255.255.255.0" >> /data/
1
2
3
4
5
6
7
8
9
10
11
12
13答:[root@localhost ~]# cat sum.sh #!/bin/bash num=1sum =0while [ $num -le 100 ]do pliqba41.pijfc let num++done echo "1++100="$sum [root@localhost ~]# sh sum.sh 1++100=5050
1答案略
1答案略
1
2
3cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10或awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr -k1 | head -n 10
怎么查看当前磁盘的IO :柬埔寨特产
1) iostat 可以提供丰富的IO 状态数据。
参数 -d 表⽰,显⽰设备(磁盘)使⽤状态;-k 某些使⽤block 为单位的列强制使⽤Kilobytes 为单位;1 10表⽰,数据显⽰每隔1秒刷新⼀次,共显⽰10次。
tps :该设备每秒的传输次数。
kB_read/s :每秒从设备读取的数据量;kB_wrtn/s :每秒向设备写⼊的数据量;kB_read :读取的总数据量;kB_wrtn :写⼊的总数量数据量;这些单位都为Kilobytes 。
-x 参数:使⽤-x 参数我们可以获得更多统计信息。
iostat -d -x -k 1 10 #查看设备使⽤率(%util )、响应时间(%await )
await :每⼀个IO 请求的处理的平均时间(单位是微秒)。这⾥可以理解为IO 的响应时间,⼀般地系统IO 响应时间应该低于5ms ,如果⼤于10ms 就⽐较⼤了。%util :在统计时间内所有处理IO 时间,除以总共统计时间。例如,如果统计间隔1秒,该 设备有0.8秒在处理IO ,⽽0.2秒闲置,那么该设备的%util = 0.8/1 =80%,所以该参数暗⽰了设备的繁忙程度。⼀般地,如果该参数是100%表⽰设备已经接近满负荷运⾏了(当然如果是多磁盘,即使%util 是100%,因为磁盘的并发能⼒,所以磁盘使⽤未必就到了瓶颈)。
2)使⽤iotop 命令
要安装iotop 软件包
怎么查看当前⽹络的IO :
iftop 查看⽹络带宽情况(必须从epel 源安装)
sar 看看当前⽹络流量 ,sar -n 1 999 表⽰取样间隔为1秒,取样999次
5.写⼀个脚本,实现批量添加20个⽤户,⽤户名为:user1-20,密码为user 后⾯跟着5个随机字符或数字
答:
6.dmesg 命令中看到ip-conntrack :table full ,dropping packet ,如何解决?答:
线上web 服务器在访问量很⼤时,就会出现⽹络连接丢包的问题,通过dmesg 命令查看⽇志,发现如下信息:
ip_conntrack: table full, dropping packet.
⽽当我们的服务器确实打开了iptables 防⽕墙,并且都是在⽹站流量⾮常⾼的时候经常会出现这个问题。这个问题的原因是由于web 服务器收到了⼤量的连接,在启⽤了iptables 的情况下,iptables 会把所有的连接都做链接跟踪处理,这样iptables 就会有⼀个链接跟踪表,当这个表满的时候,就会出现上⾯的错误。查看当前连接数:
1
2
3
4# netstat -n | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c| sort –rn sort 命令:进⾏排序,-r 反向排序 -n 使⽤纯数字进⾏排序uniq 将重复的数据仅仅列出⼀个来显⽰,uniq -c ,进⾏计数awk -F: '{print $1}' 以F 为分界符,取出第⼀个:之前的数据
1
2
3
4
5
6
7[root@localhost ~]# iostat -d -k 1 10Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) 03/23/2017 _x86_64_(2 CPU)Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 16.60 597.83 29.44 384048 18909scd0 0.03 0.10 0.00 66 0dm-0 15.78 551.54 26.20 354311 16831dm-1 0.22 1.97 0.00 1268 0
1
2
3
4
5
6
7
8
9
10[root@localhost ~]# cat useradd.sh #!/bin/bash name="user"for number in $(seq 1 20)do password=$(cat /dev/urandom | head -1 | md5sum | head -c 5) useradd $name$number echo "user$password" | passwd --stdin user$number &> /dev/null echo "$name$number user$passwor
d" >> done
iptables 的链接跟踪表最⼤容量配置⽂件如下:
注:
由于nf_conntrack ⼯作在3层,⽀持IPv4和IPv6,⽽ip_conntrack 只⽀持IPv4,因此nf_conntrack 模块在的2.6.15内核中被引⼊,⽽ip_conntrack 在Linux 的2.6.22内核被移除(centos6.x 版本),因此不同版本的,配置⽂件也就不尽相同了。⽬前⼤多的ip_conntrack_*已被 nf_conntrack_* 取代,很多ip_conntrack_*仅仅是个软链接,原先的ip_conntrack 配置⽬
录/proc/sys/net/ipv4/netfilter/ 仍然存在,但是新的nf_conntrack 在/proc/sys/net/netfilter/中,这样做是为了能够向下的兼容。这个问题该如何解决,解決⽅法⼀般有两个:
⽅法1:
注:
严格来看重启 iptables/ip6tables 会重新加载 nf_conntrack 相关的模块, 引起参数恢复成默认值。
以免重启 iptables 引起参数失效. 也可以在 /etc/sysconfig/iptables-config ⽂件中开启选项
IPTABLES_SYSCTL_LOAD_LIST=”.nf_conntrack”, iptables 重启后会进⾏ sysctl 操作.
⽅法2:
不使⽤ip_conntrack ,nf_conntrack_ipv4,xt_state 模块
7、varnish nginx squid 各⾃缓存的优缺点
当 DNS 客户机需要查询程序中使⽤的名称时,它会查询本地DNS 服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。
● 指定的 DNS 域名,表⽰为完全合格的域名 (FQDN) 。
厨房灯● 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。
1
2[root@localhost ~]# cat /proc/sys/net/netfilter/nf_conntrack_count 0
1
2[root@localhost ~]# cat /proc/sys/net/netfilter/nf_conntrack_max 65536
1
2
3
4
5[root@localhost ~]# sysctl -w net.nf_conntrack_max=100000net.nf_conntrack_max = 100000[root@localhost ~]# cat /proc/sys/net/netfilter/nf_conntrack_max 100000
sysctl-p
1
2
3
4
5
6
7
8
9
10
11
12
照片怎么拼图合成一张13
14
15
16
17
18
19
20
21
22要做cache 服务的话,我们肯定是要选择专业的cache 服务,优先选择squid 和varnish 。Varnish ⾼性能、开源的反向代理服务器和内存缓存服务器。优点:1. ⾼性能; 2. 多核⽀持; 3. ⽀持0-60秒的精确缓存时间。 缺点:1. 不具备⾃动容错和恢复功能,重启后数据丢失; 2. 在线扩容⽐较难。 3. 32位机器上缓存⽂件⼤⼩为最⼤2GB ; 4. 不⽀持集。应⽤场景:并发要求不是很⼤的⼩型系统和应⽤nginx 1不⽀持带参数的动态链接 2Nginx 缓存内部没有缓存过期和清理的任何机制,这些缓存的⽂件会永久性地保存在机器上,如果要缓存的东西⾮常多,那就会撑暴整个硬盘空间。3只能缓存200状态码,因此后端返回301/302/404等状态码都不会缓存,假如恰好有⼀个访问量很⼤的伪静态链接被删除,那就会不停穿透导致后端承载不⼩压⼒4Nginx 不会⾃动选择内存或硬盘作为存储介质,⼀切
由配置决定,当然在当前的操作系统⾥都会有操作系统级的⽂件缓存机制,所以存在硬盘上也不需要过分担⼼⼤并发读取造成的io 性能问Squid Squid ,很古⽼的反向代理软件,拥有传统代理、⾝份验证、流量管理等⾼级功能,但是配置太复杂。它算是⽬前互联⽹应⽤得最多的反向缓存代理服务器,⼯作于各⼤古⽼的cdn 上squid 的优势在于完整的庞⼤的cache 技术资料,和很多的应⽤⽣产环境
● DNS 域名的指定类别。
对于DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如im.qq ,并且指定的查询类型⽤于通过该名称搜索地址资源记录。
DNS 查询以各种不同的⽅式进⾏解析。客户机有时也可通过使⽤从以前查询获得的缓存信息就地应答查询。DNS 服务器可使⽤其⾃⾝的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回⾄客户机。这个过程称为递归。
另外,客户机⾃⼰也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使⽤基于服务器应答的独⽴和附加的查询,该过程称作迭代,即DNS 服务器之间的交互查询就是迭代查询。
DNS 查询的过程如下图所⽰。
9、lvs 的三种模式
10、lvs/nginx/haproxy
优缺点1
2
3
4
5
6
71、在浏览器中输⼊www.qq 域名,操作系统会先检查⾃⼰本地的hosts ⽂件是否有这个⽹址映射关系,如果有,就先调⽤这个IP 地址映射,完成域名解析。 2、如果hosts ⾥没有这个域名的映射,则查本地DNS 解析器缓存,是否有这个⽹址映射关系,如果有,直接返回,完成域名解析。 3、如果hosts 与本地DNS 解析器缓存都没有相应的⽹址映射关系,⾸先会TCP/ip 参数中设置的⾸
选DNS 服务器,在此我们叫它本地DNS 服务器,此服务器收到查询时,如果要查询的域名,4、如果要查询的域名,不由本地DNS 服务器区域解析,但该服务器已缓存了此⽹址映射关系,则调⽤这个IP 地址映射,完成域名解析,此解析不具有权威性。 5、如果本地DNS 服务器本地区域⽂件与缓存解析都失效,则根据本地DNS 服务器的设置(是否设置转发器)进⾏查询,如果未⽤转发模式,本地DNS 就把请求发⾄13台根DNS ,根DNS 服务6、如果⽤的是转发模式,此DNS 服务器就会把请求转发⾄上⼀级DNS 服务器,由上⼀级服务器进⾏解析,上⼀级服务器如果不能解析,或根DNS 或把转请求转⾄上上级,以此循环。不管从客户端到本地DNS 服务器是属于递归查询,⽽DNS
服务器之间就是的交互查询就是迭代查询。
1
凿壁偷光的故事2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22⼀、NAT 模式(VS-NAT ) 原理:就是把客户端发来的数据包的IP 头的⽬的地址,在负载均衡器上换成其中⼀台RS 的IP 地址,并发⾄此RS 来处理,RS 处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原 优点:集中的物理服务器可以使⽤任何⽀持TCP/IP 操作系统,只有负载均衡器需要⼀个合法的IP 地址。 缺点:扩展性有限。当服务器节点(普通PC 服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,⼤量的数 ⼆、IP 隧道模式(VS-TUN ) 原理:⾸先要知道,互联⽹上的⼤多Internet 服务的请求包很短⼩,⽽应答包通常很⼤。那么隧道模式就是,把客户端发来的数据包,封装⼀个新的IP 头标记(仅⽬的IP)发给RS,RS 收到后,先 优点:负载均衡器只负责将请求包分发给后端节点服务器,⽽RS 将应答包直接发给⽤户。所以,减少了负载均衡器的⼤量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨⼤的请求 缺点:隧道模式的RS 节点需要合法IP ,这种⽅式需要所有的服务器⽀持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux 系统上。 三、直接路
由模式(VS-DR ) 原理:负载均衡器和RS 都使⽤同⼀个IP 对外服务但只有DR 对ARP 请求进⾏响应,所有RS 对本⾝这个IP 的ARP 请求保持静默也就是说,⽹关会把对这个服务IP 的请求全部定向给DR,⽽DR 收到数 优点:和TUN (隧道模式)⼀样,负载均衡器也只是分发请求,应答包通过单独的路由⽅法返回给客户端。与VS-TUN 相⽐,VS-DR 这种实现⽅式不需要隧道结构,因此可以使⽤⼤多数操作 缺点:(不能说缺点,只能说是不⾜)要求负载均衡器的⽹卡必须与物理⽹卡在⼀个物理段上。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论