1. 程式人生 > 實用技巧 >運維常見面試題

運維常見面試題

轉至:https://blog.csdn.net/hanguofei/article/details/102774930?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduend~default-1-102774930.nonecase&utm_term=8%E4%B8%AA300g%E7%9A%84%E7%A1%AC%E7%9B%98%E5%81%9Araid5&spm=1000.2123.3001.4430

1、NAT和PAT的區別

IP地址耗盡促成了CIDR的開發,但是CIDR開發的主要目的是為了有效的使用現有的INTERNET地址,而
同時根據RFC1631(IPNETWORKADDRESSTRANSLATOR)開發的NAT卻可以在多重的INTERNET子網中使
用相同的IP地址,用來減少註冊IP地址的使用。
NAT的分為:靜態NAT、動態NAT、埠NAT(PAT)。
靜態NAT:內部網路中的每個主機都被永久的對映成外部網路中的某個合法地址;
動態NAT:在外部網路中定義了一系列的合法地址,採用動態分配的方法對映到內部網路;
PAT:是人們比較熟悉的一種轉換方式。PAT普遍應用於接入裝置中,它可以將中小型的網路隱藏在一
個合法的IP地址後面。PATT與動態地址NAT不同,它將內部連線對映到外部網路中的一個單獨的IP地址
上,同時在該地址上加上一個由NAT裝置選定的TCP埠號。也就是採用portmultiplexing技術,或改
變外出資料的源port的技術將多個內部ip地址對映到同一個外部地址。
網路地址轉換(NAT)是一個Internet工程任務組(InternetEngineeringTaskForce,IETF)標準,用於允許
專用網路上的多臺PC(使用專用地址段,例如10.0.x.x、192.168.x.x、172.x.x.x)共享單個、全域性路由的
IPv4地址。IPv4地址日益不足是經常部署NAT的一個主要原因。WindowsXP和WindowsMe中
的"Internet連線共享"及許多Internet閘道器裝置都使用NAT,尤其是在通過DSL或電纜調變解調器連線寬
帶網的情況下。
NAT對於解決IPv4地址耗費問題(在IPv6部署中卻沒必要)儘管很有效,但畢竟屬於臨時性的解決方案。
這種IPv4地址佔用問題在亞洲及世界其他一些地方已比較嚴重,且日漸成為北美地區需要關注的問題。
這就是人們為什麼長久以來一直關注使用IPv6來克服這個問題的原因所在。
除了減少所需的IPv4地址外,由於專用網路之外的所有主機都通過一個共享的IP地址來監控通訊,因此
NAT還為專用網路提供了一個隱匿層。NAT與防火牆或代理伺服器不同,但它確實有利於安全。

2、NAT使用的幾種情況:

1.連線到INTERNE,但卻沒有足夠的合法地址分配給內部主機;
2.更改到一個需要重新分配地址的ISP;
3.有相同的IP地址的兩個INTRANET合併;
4.想支援負載均衡(主機);

3、NAT有4種用法:

1.TRANSLATION INSIDE LOCALADDRESS-----------將內部地址一對一的翻譯成外部地址;
2.OVER LOADING INSIDE GLOBAL ADDRESS---------將內部地址多對一的翻譯成外部地址,通過地址加
埠號的方式區別不同的本地地址。這種方式就是所謂的PAT/color:43aa144927;
3.TCP LOAD DISTRIBUTING----提供在多個、利用率高的主機之間進行負載分擔的方法;
4.HANDLING OVER LAPPING NETWORK----這種方法主要用於兩個INTRANET的互聯.
NAT的地址轉換是指每個內網地址都被轉換成ip地址+源埠的方式,這需要公網ip地址為多個。
而PAT由於ip地址不足夠,就會出現內網地址被轉換成ip地址+埠段的形式,這樣的公網ip地址通常只
是一個。

4、若一臺計算機的記憶體為128M,則交換分割槽的大小是多少?

256M

5、簡述raid0、raid1、raid5三種工作模式的工作原理及特點

raid0:條帶卷,利用率100%,相對讀寫速率最快,相對安全性差。資料隨機存入到陣列中的一個磁碟
上。同時從2塊磁碟讀資料;讀速度與raid1相差不多;
raid1:映象卷,使用率50%,相對讀寫速率一般,相對安全性高。最少2塊磁碟組成,資料同時存入到兩
塊磁碟上。同時從2塊磁碟讀資料;寫速度會比raid0慢;
raid5:帶奇偶校驗的映象卷,相對讀寫速率較快,相對安全性高可以新增熱被磁碟作為冗餘。

6、將/usr/local/test目錄下大於100k小於500k的檔案轉移到/tmp目錄下

Find /usr/local/test -size +100k -a -size -500k -exec mv {}/tmp;

7、軟連結和硬連結的區:

硬連結不會建立新的inode,只是給原始檔多加了一個檔名 軟連結建立新的inode,相當於重新建立
了一個檔案
硬連結不能跨分割槽 軟連結可以跨分割槽
硬連結刪除原始檔後,另一個檔案還能用 軟連結刪除原始檔後,連結檔案不能再使用

8、ps aux中的VSZ代表什麼意思?RSS代表什麼意思?

VSZ:虛擬記憶體集,程序佔用的虛擬記憶體空間
RSS:實體記憶體集,程序戰用實際實體記憶體空間.

9、儲存當前磁碟分割槽的分割槽表,dd命令是個強大的命令,在複製的同時進行轉換,請寫出具體命令

Dd if=/dev/sda of=./mbr.txt bs=1M count=512

10、6塊300G的硬碟做raid5,新的裝置容量是多大?

由於RAID5磁碟陣列兼顧了安全性和速度,所以有一塊磁碟是要被用作安全備份區的,所以6塊300G的磁
盤實際使用到的只有5塊5*300=1500G

11、顯示網路介面常見命令?檢視服務埠的命令?

顯示網路介面常見命令是:ifconfig或者ipa;檢視服務埠的命令是:ss-anptul

12、簡要描述Linux系統下原始碼編譯方式安裝軟體的大致步驟

1.部署基礎環境:關閉防火牆;關閉selinux;安裝編譯器
2.下載、解壓軟體包
3、配置安裝路徑
4、編譯
5、安裝

13、實時抓取並顯示當前系統中tcp80埠的網路資料資訊,請寫出完整操作命令

tcpdump -n tcpport80(tcpdump -i ens33 ‘tcp port 80’)

14、linux中你常用的系統命令,說20個

ls cat mkdir touch useradd rm ps ip ifconfig pwd cd cp scp mv ss find
echo tar vim ping systemctl

15、kernel調參

linux核心引數調整說明
所有的TCP/IP調優引數都位於/proc/sys/net/目錄。例如,下面是最重要的一些調優引數,後面是它們的含
義:
1./proc/sys/net/core/rmem_max—最大的TCP資料接收緩衝。
2./proc/sys/net/core/wmem_max—最大的TCP資料傳送緩衝。
3./proc/sys/net/ipv4/tcp_timestamps—時間戳在(請參考RFC1323)TCP的包頭增加12個位元組。
4./proc/sys/net/ipv4/tcp_sack—有選擇的應答。
5./proc/sys/net/ipv4/tcp_window_scaling—支援更大的TCP視窗.如果TCP視窗最大超過65535(64KB),
必須設定該數值為1。
6.rmem_default—預設的接收視窗大小。
7.rmem_max—接收視窗的最大大小。
8.wmem_default—預設的傳送視窗大小。
9.wmem_max—傳送視窗的最大大小。
/proc目錄下的所有內容都是臨時性的,所以重啟動系統後任何修改都會丟失。
建議在系統啟動時自動修改TCP/IP引數:
把下面程式碼增加到/etc/rc.local檔案,然後儲存檔案,系統重新引導的時候會自動修改下面的TCP/IP引數:
echo256960>/proc/sys/net/core/rmem_default
echo256960>/proc/sys/net/core/rmem_max echo256960>/proc/sys/net/core/wmem_default
echo256960>/proc/sys/net/core/wmem_max echo0>/proc/sys/net/ipv4/tcp_timestamps
echo1>/proc/sys/net/ipv4/tcp_sack echo1>/proc/sys/net/ipv4/tcp_window_scaling
TCP/IP引數都是自解釋的,TCP視窗大小設定為256960,禁止TCP的時間戳(取消在每個資料包的頭中增加
12位元組),支援更大的TCP視窗和TCP有選擇的應答。

15、系統安全加固

1.密碼策略 修改系統的密碼策略1)經常修改密碼2)使用一些特殊的字元和密碼的長度增加密碼的難度
3)不要隨便告訴他人密碼
2.許可權ugo鎖定系統中不必要的系統使用者和組 鎖定下列使用者,鎖定之前備份/etc/passwd和/etc/shadow
檔案 禁用無關的組 禁止root使用者遠端登入
3.預防flood攻擊linux中預防SYNflood.在/etc/sysctl.conf檔案中新增net.ipv4.tcp_syncookies=1
4.加固TCP/IP協議設定/etc/sysctl.conf檔案相應許可權
5.預設許可權與umask不要修改正確的umask值022
6.做任何修改檔案的動作先備份再做操作

16、臨時調整和永久生效系統核心引數在哪裡調

1.臨時調整核心引數
開啟核心路由轉發功能,通過01設定開關 #echo"1">/proc/sys/net/ipv4/ip_forward
禁止所有的icmp回包(禁止其他主機ping本機) #echo"1">/proc/sys/net/ipv4/icmp_echo_ignore_all
調整所有程序可以開啟的檔案總數ps:如果大量使用者訪問時,可以因為該數字太小而導致錯誤
#echo"108248">/proc/sys/fs/file-max
2.永久調整核心引數 vim/etc/sysctl.conf
開啟核心路由轉發功能,通過01設定開關 net.ipv4.ip_forward=1
禁止所有的icmp回包(禁止其他主機ping本機) net.ipv4.icmp_echo_ignnore_all-=1
調整所有程序可以開啟的檔案總 fs.file-max=108248

17、如何檢視當前linux系統的狀態,如CPU使用,記憶體使用,負載情況

sar綜合命令 mpstat11cpu監測 free-m記憶體使用 top負載

18、顯示CPU利用率的命令,檢視系統版本的命令

CPU利用率的命令:top或sar
檢視系統版本的命令:cat/etc/redhat-release或uname-a

19、檢視網絡卡歷史流量實時檢視網絡卡流量

網絡卡歷史流量:sar-nDEV-f/var/log/sa/saxx#檢視xx日的網絡卡流量歷史
實時檢視網絡卡流量:sar-nDEV15(每間隔1秒重新整理一次,共5次)

20、如何檢視當前系統每個ip的連線數

Netstat -n |awk’/^tcp/{print$5}’|awk -F: ‘{print$1}’|sort| uniq-c

21、找出/home下所有7天以前,以.ok結尾的檔案列

find /home -name “*.ok” -mtime +7

22、如何快速生成一個10G的檔案

Dd if=/dev/zero of=test bs=10M count=1024

23、列出Linux常見打包工具並寫相應解壓縮引數

壓縮打包命令:tar -czf filename. Tar dirname Zip filename. Zip dirname Gzip filename bzip2 -z
filename
解壓包命令:tar -xf filename.tar unzip filename.zip gzip -d filename.gz bzip2 -d filename.bz2

24、標準埠的範圍是?

1-65535

25、常見協議(http、https、ftp、mysql、redis)預設埠

http:80 https:433 ftp:21 mysql:3306 redis:6379

26、寫出下面服務的常用埠:ftp、http、dns、smtp、pop3、dhcp、tftp、mysql、ssh、https

ftp:21控制埠 20資料埠 http:80 dns:53 smtp:25"簡單郵件傳輸協議" pop3:110"郵局協議版
本3" 3389:window遠端桌面
dhcp:客戶端是以UDP68 伺服器是以UDP67 tftp:69檔案傳輸協議 mysql:3306 ssh:22 https:
443

27、Linux中的服務自啟動新增方法有哪些

centos7:有三種 1.systemctl enable服務名
2.vim/etc/rc.localsystemctlstart服務名
3.vim/etc/fstabsystemctlstart服務名

28、從本機複製檔案、資料夾到伺服器並替換同名檔案的寫法有哪幾種?

1.scp -r 原始檔路徑目標檔案 ip:目標檔案路徑
2.rsync-avr原始檔路徑目標檔案 ip:目標檔案路徑

29、請解釋下Telnet和SSH的區別

Telnet:不安全,沒有對傳輸的資料進行加密,容易被監聽還有遭受中間人攻擊,telnet不能壓縮傳輸
資料,所以傳輸慢;
ssh:對資料進行了RSA加密,安全性高,ssh傳輸資料是經過壓縮的,所以資料傳輸速度比較快

30、檢查伺服器是否正常工作的最好辦法是?

1.ping 伺服器ip
2.ss -antul|grep 服務埠
3.ps aux|grep 服務名
4.systemctl status 服務名

--------------------2019年10月31日更新---------------------------

31、Linux記錄log的服務叫什麼名字?

rsyslog

32、ping命令通過什麼協議(internet控制資訊協議)來實現?

icmp

33、網路裝機工具cobbler瞭解嗎,有哪些元件?

批量裝機:pxe

34、設定系統當前執行級別中test服務狀態為啟動時自動載入,請寫出完整操作命令

#runlevel//檢視當前的執行級別
#chkconfig–level5teston

35、計劃任務在11月份,每天早上6點到12點中,每隔2小時執行一次/usr/bin/httpd.sh怎麼實現?

00 6-12/2 * 11 * bash/usr/bin/httpd.sh

36、請寫下Linux系統中cron定時任務,每天07至23點,每隔半小時執行apache重啟,並禁用系統郵件通知

crontab -e */30 7-23 * * * systemctl restart httpd>/dev/null2>&1

37、/var/ww/html/是網站的釋出目錄,如何每天凌晨0點30分對其進行自動備份,每次備份成按時間生成不同的備份包,寫出操作步驟?

30 0 * * * tar-zcf date+%Y%m%d.html.tar.gz /var/ww/html

38、Http的錯誤程式碼含義(404、410、504、502)?

404(未找到)伺服器找不到請求的網頁。
410(已刪除)如果請求的資源已永久刪除,伺服器就會返回此響應。
504(閘道器超時)伺服器作為閘道器或代理,但是沒有及時從上游伺服器收到請求。
502(錯誤閘道器)伺服器作為閘道器或代理,從上游伺服器收到無效響應。

39、程序和執行緒的區別?

執行緒:執行緒來源與程序,執行緒模式需要事先開啟
執行緒模式併發量高 相對與程序模式來說沒有程序模式穩定 共享記憶體 不支援php
程序:程序穩定性高;執行緒穩定性低
程序獨佔記憶體;執行緒共享程序的記憶體一個程序可以有多個執行緒;

40、dhcp客戶端是哪個地址來申請一個新的ip地址的?

dhcp客戶端是使用廣播地址來向全網傳送廣播包來尋找dhcp伺服器的
源地址是0.0.0.0 廣播地址是:255.255.255.255 客戶端沒有IP地址才需要申請,所以它只能用0.0.0.0來
代替它的ip,向伺服器端申請ip地址。

-------------------------------2019年11月1日更新------------------------------

41、DHCP(動態主機配置協議)

主要目的是為了方便我們的主機IP地址的配置,如果網路中存在大量的主機時,可通過部署DHCP協
議,由DHCP伺服器分配可用地址給主機。
客戶端啟用了DHCP,開機後,它會發佈一個的廣播報文,廣播報文經過閘道器時會帶上相應標記,要使
路由可達,當DHCP伺服器收到這個報文後,DHCP伺服器會根據報文標記,分配一個閘道器所在網段IP地
址給客戶端,如果所有客戶端未劃分閘道器,DHCP會在地址池內隨機分配IP給客戶端
地址池:在使用者定義了DHCP範圍及排除範圍後,剩餘的地址構成了一個地址池,地址池中的地址可以
動態的分配給網路中的客戶機使用。地址池僅對自動獲取IP的方式有效,手動設定IP只要符合規則可無
視此項。

42、單獨修改某一個賬戶的配置?

user_config_dir=/etc/vsftpd/userconf
vim /etc/vsftpd/userconf/zhanghu local_root=/zhanghu

43、我們都知道FTP協議有兩種工作模式,說書他們的大概的一個工作流程?

模式:主動模式(ActiveFTP)和被動模式(PassiveFTP)
1、在主動模式下:FTP客戶端隨機開啟一個大於1024的埠N,向伺服器的21號埠發起連線,然後
開放N+1號埠進行監聽,並向伺服器發出PORTN+1命令。伺服器接收到命令後,會用其本地的FTP數
據埠(通常是20)來連線客戶端指定的埠N+1,進行資料傳輸。
客戶端使用1024以上的埠連線伺服器的21號埠,並且會事先開啟一個1024+N的埠準備讓伺服器來
連線,伺服器得知客戶端準備的埠後,用20號埠與客戶端連線,建立資料鏈路時server端處於主動去連
接客戶端的狀態固稱為主動傳輸模式
2、在被動模式下:FTP客戶端隨機開啟一個大於1024的埠N,向伺服器的21號埠發起連線,同時
會開啟N+1號埠。然後向伺服器傳送PASV命令,通知伺服器自己處於被動模式。伺服器收到命令後,
會開放一個大於1024的埠P進行監聽,然後用PORTP命令通知客戶端,自己的資料埠是P。客戶端
收到命令後,會通過N+1號埠連線伺服器的埠P,然後在兩個埠之間進行資料傳輸。
客戶端使用1024以上的埠連線伺服器的21號埠,伺服器接到連線請求後,開啟一個1024+M的埠等
待客戶端來連線,再通知客戶端這個等待連線的埠號是1024+M,客戶端接到伺服器端的資訊後,開啟新
的一個1024+N的埠與1024+M進行連線,建立資料連線時,server端處於被客戶端連線的狀態,固稱為被
動傳輸模式
vsftp預設是根據客戶端不同而使用不同模式,windows客戶端則使用主動,linux客戶端則使用被動
可以用pasv_enable=NO來強制使用主動
總的來說,主動模式的FTP是指伺服器主動連線客戶端的資料埠,被動模式的FTP是指伺服器被動地
等待客戶端連線自己的資料埠。

44、我們都知道dns既採用了tcp協議,又採用了udp協議,什麼時候採用tcp協議?什麼時候採用udp協議?為什麼要這麼設計?

dns有兩個情況,一種是區域傳輸,一種是域名解析
1.區域傳輸時,一個區中主DNS伺服器從自己本機的資料檔案中讀取該區的DNS資料資訊,而輔助DNS
伺服器則從區的主DNS伺服器中讀取該區的DNS資料資訊,傳輸協議是tcp。
2.域名解析時,首選的通訊協議是udp
使用udp傳輸,不用經過TCP三次握手,這樣DNS伺服器負載更低,響應更快
但是當域名解析的反饋報文的長度超過512位元組時,將不能使用udp協議進行解析,此時必須使用tcp

45、當用戶在瀏覽器當中輸入一個網站,說說計算機對dns解釋結果哪些流程?注:本機跟本地DNS還沒有快取

1.使用者輸入網址到瀏覽器;
2.瀏覽器發出DNS請求資訊;
3.計算機首先查詢本機HOST檔案,不存在,繼續下一步;
4.計算機按照本地DNS的順序,向區域dns伺服器查詢IP結果;區域dns伺服器查詢不到時會從根域開
始,按照DNS層次結構向下搜尋,直至對於資訊具有權威性;
5.將返回dns結果給本地dns和本機,本機和本地dns並快取本結果,直到TTL過期,才再次查詢此結
果;
6.返回IP結果給瀏覽器;並給本地的DNS一份結果;
7.瀏覽器根據IP資訊,獲取頁面;

46、修改ssh客戶端埠:

#vim/etc/ssh/ssh_config /Port查詢埠行,刪除#,將22修改為目標埠

47、修改ssh服務端埠:

#vim/etc/ssh/sshd_config /Port查詢埠行,刪除#,將22修改為目標埠
#systemctl restart sshd

48、NFS共享檔案怎麼做的,用的什麼技術,碰到了什麼問題

用nfs做nas儲存,當訪問的過多時;會比較卡: 提升交換機的配置原來是百兆的話要提升到千兆或者萬兆

49、SHELL指令碼ll中單引號,雙引號及不加引號的簡單區別

單引強引硬引取消引號內特殊字元的意義
雙引弱引軟引取消部分引號內特殊字元的意義讓多個以空格為分隔符的字串形成一個整體字串

50、如何實現對MySQL資料庫進行分庫邏輯備份,請用指令碼實現

mysqldump
#vimmysqldump.sh
Mysqldump -uroot -p’QianFeng@123’
-A–single-transaction
–routines–triggers–master-data=2
–flush-logs\ >/backup/date+%F-%H -mysql-all.sql

-----------------------2019年11月02號更新----------------------------

51、寫一個指令碼,實現tomcat的web服務監控

監控tomcat的開啟和關閉;或是埠8005,8009;
http與tomcat連線是8080埠;與nginx是不需要埠
1.可以寫指令碼+計劃任務
2.可以使用nagios
3.可以使用zabbix在agent的配置檔案內定義key:
#vim/etc/zabbix/zabbix_agentd.conf
UserParameter=tomcat_port*:/tomcat_monitor.sh$1
編寫指令碼:
#vim/tomcat_monitor.sh
if1 − e q 8080 ; t h e n l s o f − i : 8080 r e t u r n 1-eq 8080;then lsof-i:8080 return1eq8080;thenlsofi:8080return? elif$1-eq8005;then lsof-i:8005
return$? else return8 fi

52、寫一個指令碼實現nginx服務的管理

檔案鎖:
編譯安裝時需要寫此指令碼;
筆記上有答案5nginx安裝7小步設定開機啟動
#vi/etc/init.d/nginx #!/bin/bash #chkconfig:-9920
#description:Oooothisismynginxstartupscript
PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid"
case"$1"in start)P R O G ; ; s t o p ) k i l l − s Q U I T PROG ;; stop) kill-sQUITPROG;;stop)killsQUIT(cat$PIDF) ;; restart) $0stop0 s t a r t ; ; r e l o a d ) k i l l − s H U P 0start ;; reload) kill-sHUP0start;;reload)killsHUP(cat$PIDF) ;; *)
echo"Usage:$0{start|stop|restart|reload}" exit1 esac exit0
#chmod+x/etc/init.d/nginx #chkconfig–addnginx

53、寫一個防火牆配置指令碼,只允許遠端主機訪問本機的80埠

#vimiptables.sh
Iptables -t filte r-I INPUT -p tcp! --dport80 -j DROP

54、編寫shell指令碼,清理/var/logs/目錄下的一個持續增長的conn.log檔案,以日為單位形成一個新的壓縮檔案,並刪除30天前的日誌壓縮檔案

#vimcleanlog.sh
#清理日誌指令碼
tar -czf /log_backup/conn_date+%y年%m月%d號-%H:%M:%S.log.tar.gz /var/logs/conn.log
wait $$ rm-rf/var/logs/conn.log find/log_backup/-mtime+30-execrm{};

55、請用shell指令碼實現:批量新增5個使用者,使用者名稱為:user1-5,密碼為:user名+3個隨機字元

For I in{1…5}
do
useradd user$i
suijishu=opensslrand-hex2|sed-r"s/(...)(.)/\1:\2/g"|awk-F:'{print$1}'
echo useri iisuijishu | passwd --stdin user$i
done

56、請說出以下符號在bashshell中的意義:

$ 0、$ n、$ #、$ ?、$ *、$ $ 、$ (#aa)
$0當前讀取內容
$n位置變數
$#引數個數上一語句的返回值
$$ pid
$*所有引數

57、請用自己熟悉的指令碼語言,快速替換notic服務下config.properties配置檔案中所有變數值為jdbc.username,jdbc.password的值為blue和pass1234

sed-ri’s/jdbc.username/blue/g’config.properties
sedri’s/jdbc.password/pass1234/g’config.properties

58、統計/var/log下檔案(非目錄)的個數

find /var/log -typef | wc-l

59、統計出yum安裝的apache的訪問日誌access_log中訪問量最多的5個IP

cat/var/log/httpd/access_log|awk’{ips$1++}END{for(iinips){print$iips\i}}’|sort-rn-k2|head-5

60、實現用使用者輸入入用使用者名稱和密碼,當用使用者名稱為ye或sk且密碼為123時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入入三次

for i inrange(3): 
	u=input("user>:")
	p=input("pwd>:") 
	if u=="yg"or u=="sk"and p=="123": 
	print("登陸成功")
	break 
else: 
	print("登陸失敗")

-----------------------------11月8號更新-----------------------------------------------------------------

61、主從原理是什麼

從庫生成兩個執行緒,一個I/O執行緒,一個SQL執行緒;

i/o執行緒去請求主庫 的binlog,並將得到的binlog日誌寫到relay log(中繼日誌) 檔案中;

主庫會生成一個 log dump 執行緒,用來給從庫 i/o執行緒傳binlog;

SQL 執行緒,會讀取relay log檔案中的日誌,並解析成具體操作,來實現主從的操作一致,而最終資料一致;

62、mysql 用了什麼引擎

Innodb引擎

MyIASM引擎

63、主從同步異常怎麼解決

設定MySQL雙一模式,將需要同步的資料儲存到磁碟中。

innodb_flush_log_at_trx_commit

如果innodb_flush_log_at_trx_commit設定為0,log buffer將每秒一次地寫入log file中,並且log file的flush(刷到磁碟)操作同時進行.該模式下,在事務提交的時候,不會主動觸發寫入磁碟的操作。

如果innodb_flush_log_at_trx_commit設定為1,每次事務提交時MySQL都會把log buffer的資料寫入log file,並且flush(刷到磁碟)中去.

如果innodb_flush_log_at_trx_commit設定為2,每次事務提交時MySQL都會把log buffer的資料寫入log file.但是flush(刷到磁碟)操作並不會同時進行。該模式下,MySQL會每秒執行一次 flush(刷到磁碟)操作。

sync_binlog

sync_binlog 的預設值是0,像作業系統刷其他檔案的機制一樣,MySQL不會同步到磁碟中去而是依賴作業系統來重新整理binary log。

當sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進位制日誌binary log時,會使用fdatasync()函式將它的寫二進位制日誌binary log同步到磁碟中去。

64、主從同步,主伺服器宕機怎麼處理

可用keepalived做主從,主宕機可以切到優先順序高的伺服器,讓優先順序高的伺服器做主。

65、資料庫完整備份增量備份命令

MySQLdump -uroot -ppassword 1601G > backup.bak

MySQLdump -uroot -ppassword 1601G >> backup.bak

66、資料庫備份與還原

mysqldump命令做備份

mysql命令做還原

67、mysql 優化做了哪些

MySQL核心優化

MySQL配置引數優化,此優化需要進行壓力測試來進行引數調整

對SQL語句以及表優化