Guide d’entretien d’exploitation et de maintenance

[ Bases de Linux ]

1. Décrivez les significations respectives des niveaux d'exécution Linux 0 à 6

0 : mode arrêt
1 : Mode mono-utilisateur <== Crack du mot de passe root
2 : Mode multi-utilisateurs sans support réseau
3 : Mode multi-utilisateurs avec prise en charge réseau (mode texte, mode le plus utilisé au travail)
4 : Réservé, non utilisé
5 : X-windows avec prise en charge réseau prend en charge le mode multi-utilisateur (bureau)
6 : Redémarrez le système, c'est-à-dire redémarrez

2. Décrivez le processus de démarrage du système Linux , du démarrage à l'interface de connexion

1. Démarrez l' autotest du BIOS et chargez le disque dur.
2. Lisez MBR, démarrage MBR.
3. menu de démarrage grub (Boot Loader) .
4. Chargez le noyaunoyau .
5. Démarrez le processus d'initialisation et définissez le niveau d'exécution en fonction du fichier inittab
6. Le processus init exécute le fichier rc.sysinit .
7. Démarrez le module noyau et exécutez des scripts à différents niveaux.
8. Exécutez /etc/rc.d/rc.local _ _ _ _ _
9. Démarrez Mingetty et entrez dans l'interface de connexion du système.

3. Décrivez la différence entre les liens symboliques et les liens physiques sous Linux

Dans le système Linux , il existe deux types de liens, l'un est un lien physique ( Lien dur ) et l'autre est appelé lien symbolique ou lien logiciel ( Lien symbolique ).
1. Par défaut, ln sans paramètres crée un lien physique et la commande ln avec le paramètre -s crée un lien symbolique.
2. Le numéro de nœud inode du fichier de lien physique est le même que celui du fichier source , mais le numéro de nœud inode du fichier de lien logiciel est différent du fichier source.
3. La commande l n ne peut pas créer de liens physiques vers des répertoires, mais elle peut créer des liens symboliques. Des liens symboliques vers des répertoires sont souvent utilisés.
4. Supprimez les fichiers de liens symboliques sans aucun impact sur les fichiers sources et les fichiers de liens physiques.
5. Supprimez le fichier de lien physique du fichier sans aucun impact sur le fichier source et le fichier de lien logiciel.
6. La suppression du fichier source du fichier lié n'aura aucun effet sur le fichier de lien physique, mais entraînera l'invalidité de son lien logiciel (le texte blanc sur fond rouge clignote).
7. Supprimez le fichier source et son fichier de lien physique en même temps, et l'intégralité du fichier sera véritablement supprimée.
8. La fonction d'instantané de nombreux périphériques matériels utilise un principe similaire aux liens physiques.
9. Les liens symboliques peuvent traverser les systèmes de fichiers, mais les liens physiques ne peuvent pas traverser les systèmes de fichiers.

4. Si un hôte du bureau ne peut pas accéder à Internet (impossible d'ouvrir le site Web), veuillez fournir vos étapes de dépannage ?

1. Déterminez d’abord si le lien physique est connecté normalement.
2. Vérifiez si les paramètres IP locaux , de routage et DNS sont conformes aux normes.
3. Utilisez telnet pour vérifier si le WEB du serveur est activé et si le pare-feu le bloque.
4. Pingez la passerelle et effectuez la vérification la plus élémentaire. Si elle réussit, cela signifie que le serveur est accessible.
5. Lorsque vous testez la situation normale d'une passerelle ou d'un routeur, testez d'abord la passerelle, puis testez le routeur niveau par niveau.
6. Testez la situation habituelle de ping sur l'IP du réseau public (rappelez-vous plusieurs IP externes ),
7. Testez la fluidité du DNS . Pingez l' adresse IP correspondante .
8. Après avoir réussi les vérifications ci-dessus, vérifiez le routeur de gestion du réseau.

5. Le site Web est lent à s'ouvrir. Veuillez fournir des méthodes de dépannage. Si cela est dû à une base de données lente, comment le dépanner et le résoudre ? Veuillez analyser et donner des exemples ?

1. Vous pouvez utiliser des commandes telles que top free pour analyser les performances du système et d'autres problèmes.
2. Si cela est dû à la base de données, vous devez consulter le journal des requêtes lentes pour rechercher et analyser le problème.

6. Comment choisir la version du système d'exploitation Linux ?

De manière générale, Ubuntu est préféré pour les utilisateurs de bureau ; RHEL ou CentOS sont préférés pour les serveurs, et CentOS est préféré parmi les deux .
Sur demande spécifique :
1. Si vous avez des exigences de sécurité plus élevées, choisissez Debian ou FreeBSD .
2. Les utilisateurs qui ont besoin d'utiliser des services de base de données avancés et des applications de réseau de messagerie peuvent choisir SUSE .
3. Si vous souhaitez de nouvelles technologies et de nouvelles fonctions, vous pouvez choisir Feddora . Feddora est une version bêta et préliminaire de RHEL et CentOS .
4. Selon la situation actuelle, la grande majorité des sociétés Internet choisissent CentOS . La série 6 est désormais plus couramment utilisée et représente désormais environ la moitié du marché. autres raisons
CentOS se concentre davantage sur le domaine des serveurs et n'a aucune restriction de droits d'auteur.

7. Comment planifier et partitionner correctement le système Linux dans des scénarios de production ?

Le principe fondamental du partitionnement est la simplicité, la facilité d’utilisation et la gestion pratique des lots. Les suggestions de positionnement en fonction des rôles de serveur sont les suivantes :
1. Serveur autonome : tel que 8  G de mémoire, 300  G de disque dur
Partition : / boot 100-200M , swap 16G , taille de la mémoire 8G * 2 , / 80G , / var 20G ( peut également être divisé) , / data 180G ( stocker les données Web et db )
Avantages : Le disque de données et le disque système sont séparés, ce qui est utile pour la maintenance en cas de problèmes.
Solution RAID : En fonction des exigences en matière de données et de performances, raid5 peut généralement être utilisé comme compromis.
2. Équilibreur de charge (tel que LVS, etc.)
Partition : / boot 100-200 M , 1 à 2 fois la mémoire d'échange , / , _
Avantages : simple et pratique, ne transmettant qu'une petite quantité de données.
Solution RAID  : petit volume de données et grande importance, RAID1 peut être utilisé
3. Serveur RS en équilibrage de charge
Partition : / boot 100-200 M , 1 à 2 fois la mémoire d'échange , / _
Avantages : Simple et pratique, car il existe plusieurs machines, les besoins en données sont faibles.
Solution RAID  : la quantité de données est importante, l'importance n'est pas élevée, il existe des exigences de performances et les exigences de données sont faibles, RAID0 peut être utilisé
4. Serveur de base de données mysql et oracle tel que mémoire 16/32 G
Partition : / boot 100-200M , échange 16G , 1 fois la mémoire , / 100G , / données restantes ( données de base de données de stockage )
Avantages : Le disque de données et le disque système sont séparés, ce qui favorise la maintenance en cas de problèmes et le maintien de l'intégrité des données.
Solution RAID  : en fonction des exigences en matière de données et de performances, la base de données principale peut utiliser raid10 / raid5 , et la base de données esclave peut utiliser raid0 pour améliorer les performances (en cas de séparation de la lecture et de l'écriture.)
5. Serveur de stockage
Partition : / boot 100-200M , 1 à 2 fois la mémoire d'échange , / 100G , / data ( données de stockage ) _ _
Avantages : Ne pas avoir trop de partitions sur ce serveur. Seule la sauvegarde est effectuée et les exigences de performances sont faibles. La capacité doit être grande.
Solution RAID  : disque sata , raid5 peut être utilisé
6. Serveur de stockage partagé (tel que NFS )
Partition : / boot 100-200M , 1 à 2 fois la mémoire d'échange , / 100G , / data ( données de stockage ) _ _
Avantages : Ne pas avoir trop de partitions sur ce serveur. L'exigence de partage NFS va au-delà du stockage, ce qui concerne les exigences de performances.
Solution RAID  : en fonction des performances et des exigences d'accès, il peut s'agir de raid5, raid10 ou même raid0 (une solution haute disponibilité ou double écriture est requise)
7. Surveiller les cactus du serveur, nagios
Partition : / boot 100-200 M , 1 à 2 fois la mémoire d'échange , / _
Avantages : importance moyenne, exigences moyennes en matière de données.
Schéma RAID : un seul disque ou un double disque raid1 suffit. Trois disques sont RAID5 , vous pouvez ajouter plus de disques en fonction des besoins en capacité.

8. Comment vérifier le niveau d'exécution actuel du serveur Linux ?

Les commandes ' who r ' et ' runlevel ' peuvent être utilisées pour afficher le niveau d'exécution actuel du serveur Linux .

9. Veuillez décrire brièvement comment vérifier la version du système Linux

uname un

10. Vérifiez combien de temps Linux fonctionne

disponibilité

11. Un administrateur système doit effectuer certaines tâches répétitives chaque jour. Veuillez préparer une solution selon les exigences suivantes :

( 1 ) Supprimer tous les sous-répertoires et tous les fichiers du répertoire / abc à 16h50 ;
( 2 ) De 8h00 du matin à 6h00 de l'après-midi, lisez toutes les données du premier champ de chaque ligne du fichier x1 du répertoire /xyz et ajoutez- le au fichier bak01.txt dans le répertoire / xyz . répertoire de sauvegarde ;
( 3 ) Chaque lundi à 17h50 , tous les répertoires et fichiers du répertoire /data sont archivés et compressés dans des fichiers : backup.tar.gz ;
( 1 ) crontab e 50 16 * * * rm rf / abc /
( 2 ) * 8 18 / 1 * * * awk '{print $1 > "/backup/bak01.txt"}' / xyz / x1
( 3 ) 50 17 * * 1 tar czf backup.tar.gz / data

12. Veuillez redémarrer le serveur à 21h18 le 23 mars

crontab e 18 21 23 3 * init 6

13. Comment vérifier la passerelle par défaut de Linux ?

Avec les commandes " route - n " et " netstat - nr " , nous pouvons visualiser la passerelle par défaut.
En plus des informations de passerelle par défaut, ces deux commandes peuvent également afficher la table de routage actuelle.

14. Comment vérifier le nombre de nœuds inodes dans un dossier ?

find / ‐ xdev printf '%h\n' | trier | uniq c | trier k 1 n

15. Écrivez un script pour rechercher les fichiers dont la dernière création remonte à 3 jours et dont le suffixe est *.log et supprimez-les.

find / ‐ nom « * .log » ctime + 3 exec rm ‐f {} \ ;

16. Que dois-je faire s'il y a trop de fichiers dans un dossier qui ne peuvent pas être lus ?

ls ‐f

17. Comment utiliser tcpdump pour détecter l'accès au port 80 afin de voir qui a le numéro le plus élevé ?

tcpdump i eth0 tnn port dst 80 c 1000 | oh ‐F . " ' {imprimer 1 $ . " 2 $ " . " 3 $ " . " 4 $ " . } ' | trier | unique
c | trier | tête‐5

18. Comment vérifier le nombre de fichiers dans le répertoire /var/log ?

ls / var / log / ‐ 1 R | grep « » | toilettes - l

19. Comment vérifier le nombre de connexions pour chaque IP dans le système Linux ?

netstat n | awk ' /^ tcp / {print $5 } ' | awk ‐F : ' {print $1 } ' | trier | uniq c | trier rn

20.Générer un mot de passe aléatoire à 32 chiffres sous shell

chat / dev / urandom | tête 1 | somme md5 | tête c 32 >> / passe

21. Comptez les 5 adresses IP les plus visitées dans le access.log d' Apache

accès au chat.log | awk ' {print $1 } ' | trier | uniq c | trier n - r | tête 5

22. Veuillez utiliser plusieurs méthodes pour définir les variables d'environnement dans le système Linux et souligner les différences entre les différentes méthodes.

1. Définissez dans la console. Cette méthode n'est pas prise en charge car elle ne fonctionne que sur le shell actuel . La modification du paramètre du shell ne sera pas valide : PATH = "PATH" :/ NEW_PATH ( la fermeture du shell Path restaurera le chemin d'origine)
2. Modifiez le fichier de profil / etc / . Si votre ordinateur est uniquement utilisé pour le développement, utilisez cette méthode car tous les shells utilisateurs ont le droit d'utiliser cette variable d'environnement, ce qui peut entraîner des problèmes de sécurité pour le système. Ceci est pour tous les utilisateurs. Pour tous les shells , ajoutez en bas de / etc / profil : export PATH = " $PATH: /NEW_PATH"
3. Modifiez le fichier bashrc . Cette méthode est plus sûre. Elle peut contrôler l'autorisation d'utiliser ces variables d'environnement au niveau de l'utilisateur. Ceci est pour un utilisateur spécifique. Si vous devez donner à un utilisateur l'autorisation d'utiliser ces variables d'environnement, vous il vous suffit de modifier le fichier .bashrc dans votre répertoire personnel d'utilisateur personnel . Ajouter ci-dessous : Export PATH = " $PATH: /NEW_PATH"

【Services de base】

23. Écrivez un script de configuration de pare-feu pour autoriser uniquement les hôtes distants à accéder au port 80 de la machine locale .

iptables P INPUT ACCEPTER
iptables ACCEPTER LA SORTIE P
iptables P ACCEPTER AVANT
iptables ‐F
iptables X
iptables A INPUT i eth0 p tcp dport 80 j ACCEPTER
iptables P INPUT DROP

24. Comment transférer les demandes du port local 80 vers le port 8080. L' adresse IP actuelle de l'hôte est 192.168.2.1

/ sbin / iptables t nat A PREROUTING p tcp ‐‐ dport 80 j DNAT‐‐to 192.168.2.1  : 8080
/ sbin / iptables t nat A PREROUTING p tcp‐‐dport 80 j REDIRECT ‐‐ vers 8080

25. Nommez plus de 5 ports de service couramment utilisés

21 ‐‐‐‐‐‐ ftp                   22 ‐‐‐‐‐‐ ssh                 23 ‐‐‐‐‐‐ telnet
25 ‐‐‐‐‐‐ snmp               110 ‐‐‐‐‐ ppop3            143 ‐‐‐‐‐ IMAP
873 ‐‐‐‐‐ rsync              80 ‐‐‐‐‐‐ http                3306 ‐‐‐‐‐‐ mysql

26. Mode actif et mode passif de FTP

Le protocole FTP a deux modes de fonctionnement : le mode PORT et le mode PASV , qui signifie actif et passif en chinois.
‐Mode actif
1. Le client ouvre un port de commande aléatoire supérieur à 1023 et un port de données aléatoires supérieur à 1023 et initie une requête au port de service 21 .
2. Le port de commande n° 21 du serveur == répond au port de commande aléatoire du client .
3. Le port n° 20 du == serveur ==== Actif == demande un port de données aléatoire pour se connecter au client
4. Le port de données aléatoire du client pour confirmation
-Mode passif
1. Le client ouvre un port de commande aléatoire supérieur à 1023 et un port de données aléatoires supérieur à 1023 et initie une requête au port de service 21 .
2. Le port de commande n° 21 du serveur répond au port de commande aléatoire du client.
3. == Client Actif == Connectez-vous à un port aléatoire supérieur à 1023 ouvert par le serveur
4. Le serveur confirme

27. Veuillez expliquer brièvement le processus de connexion ssh sans mot de passe.

1. Générez les clés publiques et privées sur le serveur A.
2. Copiez la clé publique sur le serveur B et renommez-la en authorised_keys
3. Le serveur A envoie une demande de connexion au serveur B.
4. Une fois que le serveur B a obtenu les informations du serveur A , il les compare dans authorized_key . S'il existe un nom d'utilisateur et une adresse IP correspondants , il génère aléatoirement une chaîne, la chiffre avec la clé publique du serveur A et l'envoie au serveur A. .
5. Une fois que le serveur A reçoit le message du serveur B , il utilise la clé privée pour le déchiffrer, puis envoie la chaîne déchiffrée au serveur B. Si le serveur B compare les résultats générés avec ceux générés par le serveur B, s'ils sont cohérents, la connexion sans connexion est autorisée.

28. L'ensemble du processus de poignée de main à 3 voies et d'onde à 4 voies de TCP

1 )第一次握手: Client 将标志位 SYN 置为 1 ,随机产生一个值 seq = J ,并将该数据包发送给 Server Client SYN_SENT 状态,等待 Server 确认。
2 )第二次握手: Server 收到数据包后由标志位 SYN = 1 知道 Client 请求建立连接, Server 将标志位 SYN ACK 都置为 1 ack = J + 1 ,随机产生一个值 seq = K ,并将该数据包发送给 Client 以确认连接请求, Server 进入 SYN_RCVD 状态。
( 3 ) La troisième poignée de main : une fois que le client a reçu la confirmation, il vérifie si l'accusé de réception est J + 1 et si l'ACK est 1. S'il est correct, il définit le drapeau ACK sur 1 , ack = K + 1 et envoie le paquet de données. Au serveur , le serveur vérifie si l'ACK est K + 1 et si l'ACK est 1. Si c'est correct, la connexion est établie avec succès. Le client et le serveur entrent dans l'état ESTABLISHED et terminent la négociation à trois. Le client et le serveur peuvent alors commencer à transmettre des données.
( 1 ) Première vague : le client envoie un FIN pour clôturer la transmission de données du client au serveur , et le client entre dans l'état FIN_WAIT_1 .
( 2 ) La deuxième vague : Après avoir reçu le FIN , le serveur envoie un ACK au client . Le numéro de séquence de confirmation est le numéro de séquence reçu + 1 ( identique à SYN , un FIN occupe un numéro de séquence), et le serveur entre l'état CLOSE_WAIT .
( 3 ) La troisième vague : le serveur envoie un FIN pour clôturer la transmission de données du serveur au client , et le serveur entre dans l' état LAST_ACK .
4 )第四次挥手: Client 收到 FIN 后, Client 进入 TIME_WAIT 状态,接着发送一个 ACK Server ,确认序号为收到序号 + 1 Server 进入 CLOSED 状态,完成四次挥手。

29.请写出httphttps请求的区别,并写出遇到过的响应状态码

1. https 协议需要到 ca 申请证书,一般免费证书很少,需要交费。
2. http 是超文本传输协议,信息是明文传输, https 则是具有安全性的 ssl 加密传输协议。
3. http https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80 ,后者是 443
4. http 的连接很简单,是无状态的; HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
状态码常用:
301 永久重定向
403 服务器已经理解请求,但是拒绝执行
404 页面丢失
500 服务器错误

30.操作系统内存调度方式有哪几种并简单说明

OPT :最佳替换算法( optional replacement )。替换下次访问距当前时间最长的页。 opt 算法需要知道操作系统将来的 事件,显然不可能实现,只作为一种衡量其他算法的标准。
LRU : 最近最少使用 (Least Recently Used). 替换上次使用距离当前最远的页。根据局部性原理:替换最近最不可能访 问到的页。性能最接近 OPT ,但难以实现。可以维护一个关于访问页的栈或者给每个页添加最后访问的时间标签,但开销 都很大。
FIFO : 先进先出 (First In First Out), 将页面看做一个循环缓冲区,按循环方式替换。
Clock :时钟替换算法( Clock , 给每个页帧关联一个使用位。当该页第一次装入内存或者被重新访问到时,将使用位置为 1 。每次需要替换时,查找使用位被置为 0 的第一个帧进行替换。

31.简述DNS进行域名解析的过程?

用户要访问 www.baidu.com ,会先找本机的 host 文件,再找本地设置的 DNS 服务器,如果也没有的话,就去网络中找根服 务器,根服务器反馈结果,说只能提供一级域名服务器 .cn ,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器 .com.cn, 就去找二级域名服务器,二级域服务器只能提供三级域名服务器 .baidu.com.cn ,就去找三级域名服务器,三级域名服务器正好有这个网 www.baidu.com ,然后发给请求的服务器,保存一份之后,再发给客户端

shell编程篇】

32. Décrivez la simple différence entre les guillemets simples, les guillemets doubles et l'absence de guillemets dans le shell Linux

Guillemets simples : ce que vous voyez est ce que vous obtenez, c'est-à-dire que le contenu entre guillemets simples est affiché tel quel, ou il est décrit comme affichant ce qui est vu dans les guillemets simples.
Guillemets doubles : affichez le contenu entre guillemets doubles. S'il y a des commandes, des variables, etc. dans le contenu, il sera d'abord modifié, la commande sera analysée pour obtenir le résultat, puis le contenu final sera affiché.
Sans guillemets : affiche le contenu. Les chaînes contenant des espaces ne peuvent pas être saisies et seront traitées comme une sortie complète. S'il y a des commandes, des variables, etc. dans le contenu, les variables et les commandes seront analysées en premier, puis le le contenu final sera affiché.Si la chaîne S'il y a des caractères spéciaux tels que des espaces, la sortie ne peut pas être complète et des guillemets doubles doivent être ajoutés. Généralement, des chaînes continues, des nombres, des chemins, etc. peuvent être utilisés, mais il est préférable d'utiliser plutôt des guillemets doubles.

33. Écrivez un script pour déplacer les fichiers de plus de 100 Ko dans un certain répertoire vers /tmp

pour i dans `trouver / tester type f taille + 100 k` ; faire cd / test && mv $i / tmp;done

34. Écrivez un script pour effectuer des statistiques de journal nginx et obtenir les 10 principales adresses IP consultées ( chemin du journal nginx : /home/logs/nginx/default/access.log

awk ' {a[ $1 ] ++ } END { for (j in a) print a[j],j} ' / home / logs / nginx / default / access.log | trier | tête
- 10

35. Écrivez un script pour remplacer /usr/local dans le fichier spécifié par un autre répertoire

sed ' s: / user / local :/ tmp : g ' nom de fichier

36. Écrivez un script pour ajouter 20 utilisateurs par lots . Le nom d'utilisateur est user01-20 et le mot de passe est user suivi de 5 caractères aléatoires.

#!/bin/bash
#description : ajout d'utilisateur
pour i dans `seq ‐f % 02 g 1 20 ` ; faire
utilisateurajouter un utilisateur $i
echo « utilisateur $i‐ ` echo $RANDOM | somme md5 | couper c 1 5 ` » | passwd utilisateur standard $i >/ dev / null 2 ​​>& 1
fait

37. Écrivez un script pour déterminer quelles adresses IP sont actuellement en ligne sur le réseau 192.168.1.0/24 . S'il peut être pingé , il est considéré comme en ligne.

#!/bin/bash
pour ip dans `seq 1 255 `
faire
ping c 1 192.168.1 . $ip > / dev / null 2 ​​>& 1
si [ $? ‐éq 0 ] ; alors
écho 192.168.1 . $ip UP
autre
écho 192.168.1 . $ip VERS LE BAS
Fi
} &
fait
attendez

38. Écrivez un script pour déterminer si un script spécifié contient une erreur de syntaxe ; s'il y a une erreur, rappelez à l'utilisateur de taper Q ou q pour ignorer l'erreur et quitter avec n'importe quelle autre clé. Le script spécifié peut être ouvert via vim

#!/bin/bash
lire p «  veuillez saisir le script de vérification ‐>  » fichier
si [ ‐f $fichier ] ; alors
sh n $file > / dev / null 2 ​​>& 1
si [ $? ‐ne 0 ] ; alors
lire p « Vous avez saisi une erreur de syntaxe $file ,[ Tapez q pour quitter ou Tapez vim pour modifier] » réponse
cas $réponse dans
q | Q)
sortie 0
;;
vigueur )
vim $fichier
;;
*
sortie 0
;;
esac
Fi
autre
echo " $le fichier n'existe pas "
sortie 1
Fi

39. Écrivez un script pour modifier l'extension de tous les fichiers du répertoire actuel à enregistrer

pour le fichier dans ` ls . / | grep P "(.*)(\..*)" `;
faire
echo $fichier | mv $fichier ` echo ${fichier%.**} `.log;
fait

[Services de base de données]

40. Écrivez un script pour sauvegarder et empaqueter la base de données dans le répertoire du serveur distant 192.168.1.1/backup

monter 192.168.1.1  :/ sauvegarde / mnt
cd / mnt
/ usr / local / mysql / bin / mysqldump hlocalhost uroot test > test.sql
tar czf test.sql.tar.gz test.sql
rm -f test.sql

41. Veuillez écrire une requête SQL dans la base de données mysql pour rechercher les enregistrements supérieurs à 100 dans la colonne uid de la table customer , les trier par uid et afficher les 10 premiers enregistrements dans l'ordre positif.

sélectionnez * du client uid > 100 commande par uid asc limite 10

42. Quels sont les avantages de la séparation lecture-écriture des bases de données ?

1. Séparez les opérations de lecture et d'écriture dans différentes bases de données, réduisant ainsi la pression sur l'accès aux données et évitant les goulots d'étranglement en termes de performances ;
2. 主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发;
3. 数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性;

43.MongoDBmysql有什么区别

MongoDB 在不指定 _id 的情况下插入速度很快,对系统内存利用率很高,适合那些读作业任务很重的任务模型,但是稳定 性不如 mysql
适合数据具体格式不明确的(弱数据结构)的情况下,对开发者友好。但是事务关系支持薄弱( nosql 通病)
自带分布式文件系统,可以很方便的部署到集群上。
shard (数据实际存储)概念,每增加一个 shard ,插入性能会以接近倍数的方式增长,磁盘容量也可以方便的扩充。
shard 划分 包括: mongos (接收 client 需求, shard 集群接口) config (元数据或者配置信息,如每一个切片的片键范围, mongos 会根据 config 信息去取数据)

44.redismemcache区别以及应用场景

redis 支持更丰富的数据类型,共有 5 种(字符串,列表, hash ,集合,有序集合), memcache 只支持简单的字符串
redis 可以数据持久化,它不仅会将数据放在内存中,还可以存到磁盘里部分, memcache 会将数据存在内存中,最大存储量即内存大小
redis 可以做主从
redis 最大可以存 1 G memcache 最大 1 M
redis 应用场景
session : peut être conservée
Cache pleine page ( FPC ) : persistant, après redémarrage, la vitesse de la page Web vue par l'utilisateur ne ralentira toujours pas
La liste et l'ensemble peuvent être utilisés par Redis comme file d'attente de messages
La liste de classement, set et zset peuvent bien effectuer le tri numérique
⑥Fonction de publication / abonnement
Notes sur Redis :
Il est préférable de ne pas faire de persistance sur le maître Redis . Vous pouvez faire de la persistance ( AOF ) sur la machine esclave. La politique est d'une fois par seconde.
②Afin d'assurer la stabilité du maître et de l'esclave, il est préférable que le maître et l'esclave se trouvent dans le même segment de réseau.
③Essayez d'éviter d'ajouter des machines esclaves au maître Redis surchargé .
Pour la réplication maître-esclave, n'utilisez pas de structure graphique. Il est plus stable d'utiliser une seule liste chaînée, ce qui peut facilement résoudre le problème du point de défaillance unique. Si le maître échoue, promouvez directement slave1 vers le maître .

45.redisStructure des données

string - Type de chaîne, scénarios d'utilisation : mise en cache, compteurs et sessions de partage
hash - Type de hachage, scénario d'utilisation : stockage des informations utilisateur
list - Type de liste, scénarios d'utilisation : file d'attente de messages, Weibo TimeLine
set ‐‐‐‐ Type de collection, scénario d'utilisation : recommandation d'un ami
Ensemble trié - Type d'ensemble trié, scénario d'utilisation : liste de classement

46. ​​​​​​Quelles sont les solutions open source de haute disponibilité pour Redis en environnement de production ?

1. Twemproxy ,大概概念是,它类似于一个代理方式,使用方法和普通 redis 无任何区别,设置好它下属的多个 redis 例后,使用时在本需要连接 redis 的地方改为连接 twemproxy ,它会以一个代理的身份接收请求并使用一致性 hash 算法, 将请求转接到具体 redis ,将结果再返回 twemproxy 。使用方式简便 ( 相对 redis 只需修改连接端口 ) ,对旧项目扩展的首选。 问题: twemproxy 自身单端口实例的压力,使用一致性 hash 后,对 redis 节点数量改变时候的计算值的改变,数据 无法自动移动到新的节点。
2. Codis ,目前用的最多的集群方案,基本和 twemproxy 一致的效果,但它支持在 节点数量改变情况下,旧节点数据可恢复到新 hash 节点。
3. Le cluster fourni avec Redis cluster3.0 se caractérise par le fait que son algorithme distribué n'est pas un hachage cohérent , mais le concept d'emplacements de hachage , et il prend en charge la configuration des nœuds esclaves. Consultez la documentation officielle pour plus de détails.
4. Implémentez au niveau de la couche de code métier, créez plusieurs instances Redis non liées, effectuez un calcul de hachage sur la clé au niveau de la couche de code , puis exploitez les données sur l' instance Redis correspondante. Cette méthode a des exigences relativement élevées pour le code de la couche de hachage.Les considérations incluent des solutions algorithmiques alternatives après une défaillance du nœud, la récupération automatique des scripts après un choc de données, la surveillance des instances , etc.
5. Redis Sentinal se concentre sur la haute disponibilité.Lorsque le maître tombe en panne , il promouvra automatiquement l'esclave au rang de maître et continuera à fournir des services.

47.Redis est monothread, comment améliorer l'utilisation du CPU multicœur ?

可以在同一个服务器部署多个 Redis 的实例,并把他们当作不同的服务器来使用,在某些时候,无论如何一个服务器是不够的, 所以,如果你想使用多个 CPU ,你可以考虑一下分片( shard )。

48.Redis常见性能问题和解决方案?

1. Master 最好不要做任何持久化工作,如 RDB 内存快照和 AOF 日志文件
2. 如果数据比较重要,某个 Slave 开启 AOF 备份数据,策略设置为每秒同步一次
3. 为了主从复制的速度和连接的稳定性, Master Slave 最好在同一个局域网内
4. 尽量避免在压力很大的主库上增加从库
5. 主从复制不要用图状结构,用单向链表结构更为稳定,即: Master <‐ Slave1 <‐ Slave2 <‐ Slave3 .. .
这样的结构方便解决单点故障问题,实现 Slave Master 的替换。如果 Master 挂了,可以立刻启用 Slave1 Master ,其他不变

49.Redis提供了哪几种持久化方式?

RDB 持久化方式能够在指定的时间间隔能对你的数据进行快照存储 .
AOF 持久化方式记录每次对服务器写的操作 , 当服务器重启的时候会重新执行这些命令来恢复原始的数据 ,AOF 命令以 redis 协议追加保存每次写的操作到文件末尾 .Redis 还能对 AOF 文件进行后台重写 , 使得 AOF 文件的体积不至于过大 .
如果你只希望你的数据在服务器运行的时候存在 , 你也可以不使用任何持久化方式 .
你也可以同时开启两种持久化方式 , 在这种情况下 , redis 重启的时候会优先载入 AOF 文件来恢复原始的数据 , 因为在通常情况下 AOF 文件保存的数据集要比 RDB 文件保存的数据集要完整 .
最重要的事情是了解 RDB AOF 持久化方式的不同 , 让我们以 RDB 持久化方式开始。

50.修改配置不重启Redis会实时生效吗?

针对运行实例,有许多配置选项可以通过 CONFIG SET 命令进行修改,而无需执行任何形式的重启。 从 Redis 2.2 始,可以从 AOF 切换到 RDB 的快照持久性或其他方式而不需要重启 Redis 。检索 CONFIG GET * 命令获取更多信 息。
Mais un redémarrage est parfois nécessaire, par exemple pour mettre à niveau le programme Redis vers une nouvelle version ou lorsque vous devez modifier certains paramètres de configuration qui ne sont actuellement pas pris en charge par la commande CONFIG .

51. Les opérations d'écriture seront-elles perdues dans le cluster Redis ? Pourquoi?

Redis ne garantit pas une forte cohérence des données, ce qui signifie qu'en pratique le cluster peut perdre les opérations d'écriture dans certaines conditions.

52.Quelle commande est utilisée pour afficher les informations sur l'utilisation et l'état de Redis ?

Info

53. Connaissez-vous Mongodb ? Combien de machines sont généralement déployées ?

Généralement, mongodb déploie un cluster maître-esclave ou mongodb sharded ; il est recommandé de déployer 3 ou 5 serveurs. L'idée de base du partitionnement MongoDB est de diviser la collection en petits morceaux. Ces blocs sont dispersés en plusieurs tranches, et chaque tranche n'est responsable que d'une partie du total des données. Pour le client, il n'est pas nécessaire de savoir que les données ont été fractionnées, ni de savoir quel fragment du serveur correspond à quelles données. Avant que les données ne soient partagées, un processus de routage doit être exécuté et le nom du processus est mongos . Ce routeur connaît toutes les données
L'emplacement de stockage et la relation correspondante entre les données et les tranches. Pour le client, il sait seulement qu'un mongod ordinaire est connecté . Dans le processus de demande de données, il est acheminé vers la tranche où se trouvent les données cibles via la relation correspondante entre les données sur le routeur et la tranche. S'il y a une réponse à la demande, le routeur la collectera et la renverra au client.

54.Rabbitmqkafka有什么区别?

1 ) 在架构模型方面,
RabbitMQ 遵循 AMQP 协议, RabbitMQ broker Exchange,Binding,queue 组成,其中 exchange binding 组成了消息的路由键;客户端 Producer 通过连接 channel server 进行通信, Consumer queue 获取消息进行消费(长连 接, queue 有消息会推送到 consumer 端, consumer 循环从输入流读取数据)。 rabbitMQ broker 为中心;有消息的确认
机制。
kafka 遵从一般的 MQ 结构, producer broker consumer ,以 consumer 为中心,消息的消费信息保存的客户端 consumer 上, consumer 根据消费的点,从 broker 上批量 pull 数据;无消息确认机制。
2 ) 在吞吐量,
kafka 具有高的吞吐量,内部采用消息的批量处理, zero‐copy 机制,数据的存储和获取是本地磁盘顺序批量操作,具有 O( 1 ) 的复杂度,消息处理的效率很高。
rabbitMQ 在吞吐量方面稍逊于 kafka ,他们的出发点不一样, rabbitMQ 支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。
3 ) 在可用性方面,
rabbitMQ 支持 miror queue ,主 queue 失效, miror queue 接管。
kafka broker 支持主备模式。
4 ) 在集群负载均衡方面,
kafka 采用 zookeeper 对集群中的 broker consumer 进行管理,可以注册 topic zookeeper 上;通过 zookeeper 的协调机制, producer 保存对应 topic broker 信息,可以随机或者轮询发送到 broker 上;并且 producer 可以基于语义指定分 片,消息发送到 broker 的某分片上。
rabbitMQ 的负载均衡需要单独的 loadbalancer 进行支持。

55.Quelles sont les catégories de sauvegarde ?

Sauvegarde du système : sauvegardez l'intégralité du système d'exploitation ; lorsque le système d'exploitation est endommagé ou ne peut pas être démarré, il peut être rapidement restauré via une sauvegarde.
Sauvegarde des données : sauvegardez les fichiers de données des utilisateurs, les logiciels d'application et les bases de données ; lorsque ces données sont perdues ou endommagées, elles peuvent également être restaurées via une sauvegarde.

56.Qu'est -ce que la sauvegarde à froid / à chaud ? Quels sont les avantages et les inconvénients de chacun d’eux ?

Sauvegarde à froid : les fichiers qui doivent être sauvegardés sont d'abord fermés et cessent d'être utilisés, puis la sauvegarde est effectuée ;
Les avantages sont qu'il est simple et rapide, facile à restaurer à un certain moment et facile à entretenir ;
L'inconvénient est qu'elles ne peuvent être restaurées que jusqu'à un certain moment et que les données ne sont pas pratiques pour une utilisation normale pendant la période de sauvegarde.
Sauvegarde à chaud : fait référence à une méthode qui n'affecte pas l'utilisation normale des fichiers de sauvegarde lors de la sauvegarde ;
L'avantage est que la vitesse de sauvegarde est rapide et n'affecte pas l'utilisation des données ;
L'inconvénient est que toutes les opérations sont synchronisées, y compris les suppressions.

57. Comment sauvegarder une base de données 100G ?

Pour les bibliothèques supérieures à 100 Go , vous pouvez envisager d'utiliser xtranbackup . La vitesse de sauvegarde est évidemment plus rapide que celle de mysqldump . Généralement, une sauvegarde complète est effectuée par semaine, et les autres sont des sauvegardes incrémentielles chaque jour. La durée de sauvegarde correspond aux périodes creuses de l'entreprise.

58. Comment gérer les échecs de sauvegarde et de restauration ?

Tout d’abord, des préparatifs suffisants doivent être effectués avant la récupération pour éviter les erreurs lors de la récupération. Par exemple, vérification de validité, vérification d'autorisation, vérification d'espace, etc. après la sauvegarde. Si une erreur est signalée, effectuez les ajustements correspondants en fonction des invites d'erreur.

59.Quels sont l'essence, les avantages et les inconvénients de la sauvegarde mysqldump ?

Essence : ce qui est exporté est un fichier d'instructions SQL
Avantages : quel que soit le moteur de stockage, vous pouvez utiliser mysqldump pour préparer des instructions SQL .
Inconvénients : Vitesse lente , une incompatibilité de format peut survenir lors de l'importation . La sauvegarde incrémentielle ne peut pas être effectuée directement .

60.Qu'est -ce que la sauvegarde logique ?

Ce qui est sauvegardé, ce sont les instructions SQL ( DDL DML DCL ) exécutées par des opérations telles que la création de table, la création de base de données et l'insertion .
Adapté aux bases de données de petite et moyenne taille, l’efficacité est relativement faible. Généralement, cela est effectué en partant du principe que la base de données fournit des services normaux, tels que : mysqldump , mydumper , into, outfile (exportation et importation de tables), etc.

61.Qu'est-ce que la sauvegarde physique ?

Copiez directement le fichier de base de données dbfile journal binaire my.cnf
Convient aux environnements de bases de données volumineuses et n'est pas limité par les moteurs de stockage, mais ne peut pas restaurer vers une version différente de MySQL .

62.Qu'est -ce qu'un moteur de stockage ? Quels sont les moteurs de stockage les plus couramment utilisés ?

1. Pour parler franchement, un moteur de stockage est une méthode et un mécanisme permettant de gérer les données opérationnelles (données de stockage, comment mettre à jour, interroger les données , etc. ) .
2. MySql 数据库中提供了多种存储引擎,各个存储引擎的优势各不一样。
3. 用户可以根据不同的需求为数据表选择不同的存储引擎,也可以根据自己的需要编写自己的存储引擎。
4. 甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。
最常用的存储引擎是 MyISAM InnoDB

63.什么是mysql的二进制日志(binary log)

二进制日志记录数据库的所有更改操作( DDL / DML / DCL ),不包含 select 或者 show 这类语句。
用于主从复制中, master 主服务器将二进制日志中的更改操作发送给 slave 从服务器,从服务器执行这些更改操作是的和
主服务器的更改相同。
用于数据的恢复操作。
默认二进制日志是关闭的,可以使用 log‐bin = xxx 参数开启

64.Binlog工作模式有哪些?各什么特点,企业如何选择?

1. Row( 行模式 )
日志中会记录成每一行数据被修改的形式,然后在 slave 端再对相同的数据进行修改
2. Statement( 语句模式 )
每一条修改的数据都会完整的记录到主库 master binlog 里面,在 slave 上完整执行在 master 执行的 sql 语句
3. mixed( 混合模式 )
结合前面的两种模式,如果在工作中有使用函数 或者触发器等特殊功能需求的时候,使用混合模式数据量达到比较高时候,它就会选择 statement 模式,而不会选择 Row Level 行模式

65.如何在线正确清理MySQL binlog

MySQL 中的 binlog 日志记录了数据中的数据变动,便于对数据的基于时间点和基于位置的恢复 但日志文件的大小会越来越大,点用大量的磁盘空间,因此需要定时清理一部分日志信息
手工删除:
Vérifiez d'abord le nom du fichier binlog utilisé par la bibliothèque maître-esclave
afficher l'état du maître (esclave) \ G
Assurez-vous de sauvegarder avant de supprimer. Supprimez les journaux avant l'heure spécifiée :
purger les journaux principaux avant « 2017 09 01 00  : 00  : 00 »  ;
Supprimez le fichier journal spécifié :
purger les journaux principaux vers ' mysql-bin .000001 ' ;
Supprimer automatiquement :
Laissez le système supprimer automatiquement les journaux en définissant le délai d'expiration de binlog , vérifiez le délai d'expiration et définissez le délai d'expiration
afficher des variables comme ' expire_logs_days ' ;
définir global expire_logs_days = 30  ;

66.Qu'est-ce que le journal de relais de MySQL ?

用于主从复制, master 主服务器将自己的二进制日志发送给 slave 从服务器, slave 先保存在自己的中继日志中,然后再 执行自己本地的 relay log 里的 sql 达到数据库更改和 master 保持一致。
默认中继日志没有开启,可以使用 `relay‐log` 参数开启

67.数据库和数据库实例之间的关系是什么?

通常情况下,数据库实例和数据库是一一对应的关系,也就是一个数据库实例对应一个数据库; 但是,在集群环境中存
在多个数据库实例共同使用一个数据库。比如: oracle RAC

68.什么叫mysql事务?

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员 的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!一般来 说,事务是必须满足 4 个条( ACID ):原子性( Atomicity ,或称不可分割性)、一致性( Consistency )、隔离性
( Isolement , également connu sous le nom d'indépendance), durabilité ( Durabilité ).

69.Le mot de passe MySQL est perdu, veuillez le récupérer ?

mysqld_safe ‐‐ skip-grant-tables & #Start service de base de données
mysql uroot ppassowrd e "utiliser mysql; mettre à jour l'utilisateur défini passowrd = PASSWORD('newpassword') où
utilisateur = 'root';vider les privilèges;"

70. Veuillez nommer les produits, fonctionnalités et scénarios d'application typiques des bases de données non relationnelles ?

1. mémoire pure memecachée
2. Cache persistant Redis
3. mongodb est orienté document
Si vous avez besoin d'opérations de requête correspondantes à court terme, s'il n'existe pas de stockage de données avec une bonne définition de schéma, ou si le stockage de données présente des changements de schéma fréquents, vous devez toujours utiliser NoSQL.

71. Qu'est-ce que le multi-instance MySQL et comment configurer le multi-instance MySQL ?

mysql 多实例就是在同一台服务器上启用多个 mysql 服务,它们监听不同的端口,运行多个服务进程,它们相互独立,互 不影响的对外提供服务,便于节约服务器资源与后期架构扩展
多实例的配置方法有两种:
1 、一个实例一个配置文件,不同端口
2 、同一配置文件 (my.cnf) 下配置不同实例,基于 mysqld_multi 工具

72.如何加强MySQL安全,请给出可行的具体措施?

1 、删除数据库不使用的默认用户
2 、配置相应的权限(包括远程连接)
3 、不可在命令行界面下输入数据库的密码
4 、定期修改密码与加强密码的复杂度

73.MySQL Sleep线程过多如何解决?

1 、可以杀掉 sleep 进程, kill PID
2 、修改配置,重启服务
[mysqld]
wait_timeout = 600
interactive_timeout = 30
注意:如果生产服务器不可随便重启也可以使用下面的方法解决
définir le wait_timeout global = 600
définir global interactive_timeout = 30 ;

74.Quelle est la fonction du paramètre sort_buffer_size ? Comment rendre les modifications en ligne efficaces ?

Il doit être utilisé lors de la première connexion à chaque connexion (session) pour améliorer les performances d'accès.
définir global sort_buffer_size = 2 M

75.Quelle est la différence entre myisam et innodb dans MySQL ?

1. InnoDB prend en charge les transactions, mais MyISAM ne prend pas en charge les transactions
2. InnoDB prend en charge les verrous au niveau des lignes, tandis que MyISAM prend en charge les verrous au niveau des tables.
3. InnoDB prend en charge MVCC, mais pas MyISAM .
4. InnoDB prend en charge les clés étrangères, mais pas MyISAM
5. InnoDB ne prend pas en charge l'indexation de texte intégral, contrairement à MyISAM .

76. Comment ajuster le jeu de caractères de la base de données MySQL dans la chaîne de production ?

1. Exportez d'abord la structure du tableau de la bibliothèque - exportez uniquement la structure du tableau, puis remplacez-la par lots
2. Exportez toutes les données de la bibliothèque (à condition qu'aucune nouvelle donnée ne soit générée)
3. Remplacez ensuite set names = xxxxx globalement
4. Supprimez la base de données et la table d'origine, créez-en une nouvelle, puis importez les instructions de création de base de données et de table ainsi que toutes les données.

77. Veuillez décrire le principe des données chinoises tronquées dans MySQL et comment l'éviter ?

Les jeux de caractères du système serveur, de la base de données et du client sont incohérents et les caractères doivent être unifiés.

78. Comment optimiser MySQL pour la production d'entreprise (veuillez le décrire sous plusieurs angles) ?

1. Améliorer les ressources matérielles du serveur et la bande passante du réseau
2. Optimiser le fichier de configuration du service MySQL
3. Activez le journal des requêtes lentes et analysez le problème.

79. Une instruction SQL de suppression de la bibliothèque a été exécutée par erreur pendant la production . Comment la restaurer complètement ?

1. Arrêtez la réplication maître-esclave, effectuez la table de verrouillage et actualisez l'opération binlog sur la base de données maître , puis restaurez le fichier de sauvegarde complète précédent (comme la sauvegarde complète à 0 point)
2. Fusionnez et exportez les fichiers binlog à 0 heures et les fichiers binlog de la sauvegarde complète jusqu'à l'échec dans des instructions SQL .
mysqlbinlog aucune valeur par défaut mysql-bin .000011 mysql-bin .000012 > bin.sql
3. Supprimez l'instruction drop dans l'instruction SQL exportée et restaurez-la dans la base de données
mysql uroot pmysql123 < bin.sql

80. Quelles pannes de bases de données avez-vous rencontrées au travail ? Veuillez décrire 2 exemples ?

1. Le développement utilise l'utilisateur root pour écrire des données sur la base de données esclave, ce qui rend les données maître-esclave incohérentes, et le front-end n'affiche pas le contenu qui doit être modifié (ce sont toujours les anciennes données)
2. Le serveur de l'environnement de test intranet a soudainement perdu son alimentation, provoquant un échec de synchronisation maître-esclave.

[Architecture du serveur]

81. Architectures MySQL courantes ?

Organisation maître-esclave Structure maître-esclave Structure maître-esclave

82. Processus de base de la réplication mysql

1. Maître : thread binlog - enregistre toutes les instructions qui modifient les données de la base de données et les place dans le binlog sur le maître ;
2. Depuis : io thread - après avoir utilisé start slave , il est responsable d' extraire le contenu du binlog du maître et de le placer dans son propre journal de relais ;
3. Depuis : thread d'exécution SQL - exécute les instructions dans le journal de relais ;

83.Combien de threads sont répliqués dans MySQL et combien sont liés entre eux ?

La réplication MySQL est basée sur l'interaction des trois threads suivants :
1. Le thread de vidage du journal binaire sur le maître , qui est responsable de la transmission des événements du journal binaire du maître à l'esclave ;
2. Le thread IO sur l'esclave est responsable de la réception du binlog du maître et de son écriture dans le journal du relais ;
3. Le thread SQL sur l'esclave est responsable de la lecture du journal du relais et de son exécution ;

84. Comment détecter les incohérences de données entre le maître et l'esclave MySQL ? Comment le réparer?

1. Vous pouvez utiliser la somme de contrôle pt-table du composant outil Percana-Toolkit pour le vérifier.
2. Utilisez ensuite pt-check-sync pour synchroniser la mise à jour (à utiliser en fonction de la situation réelle)

85. Comment résoudre l'échec de la réplication maître-esclave MySQL en ligne ?

Connectez-vous depuis la base de données
1. Exécuter l'arrêt de l'esclave ; arrêter la synchronisation maître-esclave
2. Ensuite, définissez global sql_slave_skip_counter = 1  ; ignorez l'erreur d'une étape
3. Enfin, exécutez Start Slave et vérifiez l'état de synchronisation maître-esclave.
Les étapes pour réexécuter l'opération de synchronisation maître-esclave sont les suivantes :
Entrez dans la bibliothèque principale
1. Préparez entièrement la base de données et actualisez le binlog pour vérifier l'état de la base de données principale.
2. Restaurez tous les fichiers de sauvegarde sur la base de données esclave, puis exécutez Change Master
3. Démarrez la synchronisation maître-esclave , démarrez l'esclave et vérifiez l'état de la synchronisation maître-esclave.

86. Comment contrôler si la réplication maître-esclave est défectueuse ? (Ou quelle est l'idée du script pour que zabbix surveille si l'état de réplication maître-esclave de MySQL est normal ?)

mysql uroot ppassowrd e "afficher le statut de l'esclave\G" | grep - E
"Esclave_IO_Running|Esclave_SQL_Running" | awk '{print $2}' | grep c Oui
Surveillez l'état de la réplication maître-esclave en jugeant le nombre de Oui . Normalement, il est égal à 2

87. La production d'un maître et de plusieurs esclaves est en baisse, comment la restaurer manuellement ?

1. Exécutez stop slave ou arrêtez le service
2. Réparez la base de données esclave
3. Réexécutez ensuite la synchronisation de la base de données principale

88. La production d'une base de données maître et multiple maître esclave est en panne. Comment la restaurer manuellement ?

1. Connectez-vous à chaque base de données esclave pour arrêter la synchronisation et vérifiez quelles données sont les plus récentes. Définissez-la comme nouvelle base de données maître et laissez les autres bases de données esclaves synchroniser leurs données.
2. Après avoir réparé la base de données maître, effectuez simplement les étapes de synchronisation maître-esclave.
#Il convient de noter que si la nouvelle bibliothèque principale était auparavant en lecture seule, cette fonction doit être désactivée pour la rendre accessible en écriture.
#Vous devez créer les mêmes utilisateurs et autorisations synchronisés dans la nouvelle bibliothèque esclave que dans la bibliothèque maître précédente
#D'autres bibliothèques esclaves exécutent le changement de maître en master_port = le port de la nouvelle bibliothèque maître, démarrez l'esclave

89.Quelles sont les raisons des retards de réplication dans MySQL ? Comment résoudre?

1. Il y a trop de données de la base de données qui doivent être synchronisées.
2. Les ressources matérielles de la bibliothèque esclave sont faibles et doivent être améliorées.
3. Problèmes de réseau, la bande passante du réseau doit être augmentée
4. La base de données principale contient une grande quantité de données écrites et nécessite une configuration et des ressources matérielles optimales.
5. Les instructions SQL prennent trop de temps à s'exécuter et doivent être optimisées .
Avant la version 6.5.6, il s'agissait d'une réplication monothread, puis multithread. Les versions 5.7 et supérieures peuvent également être utilisées.

90. Proposer une solution de sauvegarde réalisable pour la production en entreprise d'une architecture de cluster MySQL à grande échelle ?

1. Double maître et plusieurs esclaves, architecture de synchronisation maître-esclave, puis implémenter une certaine base de données esclave en tant que serveur de sauvegarde
2. Écrivez un script pour implémenter la sauvegarde des sous-bases de données et des tables, et ajoutez des tâches planifiées.
3. Enfin, le service de sauvegarde est poussé vers le serveur intranet professionnel et le serveur de base de données est conservé localement pendant une semaine.
4. Le serveur de sauvegarde conserve les données de sauvegarde en fonction de la situation réelle (généralement 30 jours)

91. Parlez-nous de la signification des trois ports de Tomcat 8005 , 8009 et 8080 ?

8005 ‐ ‐ ‐ ‐ Utilisé en position fermée
8009 - - - - - est le port AJP utilisé par le conteneur. Par exemple, Apache peut accéder au port 8009 de Tomcat via le protocole AJP .
8080 ‐‐‐‐‐‐‐‐ Utilisation générale

92.Tomcat dispose de trois modes de fonctionnement : Bio , Nio et Apr. Comment fonctionnent-ils ?

Bio (blocage des E / S) : mode de fonctionnement par défaut, blocage du fonctionnement des E / S , sans aucun traitement technologique d'optimisation, performances relativement faibles.
Nio (New I / O or Non-Blocking) : Opérations d'E / S non bloquantes , Bio a de meilleures performances de traitement simultané.
Apr(Apache Portable Runtime Apache 可移植运行库 ) :首选工作模式,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
tomcat 利用基于 Apr tomcat‐native 来实现操作系统级别控制,提供一种优化技术和非阻塞式 I / O 操作,大大提高并发处理能力。但是需要安装 apr tomcat‐native 库。

93.请解释 Tomcat 中使用的连接器是什么 ?

Tomcat 中,使用了两种类型的连接器:
HTTP 连接器 : 它有许多可以更改的属性,以确定它的工作方式和访问功能,如重定向和代理转发
Connecteur AJP : Il fonctionne de la même manière que le connecteur HTTP , mais ils utilisent le protocole AJP de HTTP . Les connecteurs AJP sont généralement implémentés dans Tomcat via la technologie de plug-in mod_jk

94.Quelles sont les idées générales pour le réglage de Tomcat ?

1. Augmentez le nombre maximum de connexions
2. Ajustez le mode de travail
3. Activer la compression gzip
4. Ajuster la taille de la mémoire JVM
5. Intégrez avec Apache ou Nginx pour obtenir une séparation dynamique et statique
6. Choisissez raisonnablement l'algorithme de collecte des ordures
7. Essayez d'utiliser une version plus récente du JDK

95. Veuillez écrire la commande pour vérifier le fichier de configuration actuel de nginx , puis redémarrez en douceur

1. Confirmez si la syntaxe du fichier de configuration nginx est correcte
nginx t
2. Redémarrage en douceur
kill - ID du processus HUP nginx
tuer HUP /path/nginx.pid _ _ _

96. Veuillez décrire brièvement les deux méthodes de connexion de nginx et php-fpm ainsi que leurs avantages et inconvénients

Sous Linux , le serveur nginx et php-fpm peuvent être implémentés de deux manières : socket tcp et socket unix .
Un socket Unix est un terminal qui permet la communication de données entre deux ou plusieurs processus sur le même système d'exploitation. Cette méthode nécessite de renseigner l' emplacement du fichier pid de php-fpm dans le fichier de configuration nginx , ce qui est plus efficace que le socket tcp .
Pour la méthode de communication du socket TCP , vous devez renseigner l'adresse IP et le numéro de port de php-fpm exécuté dans le fichier de configuration nginx . L'avantage de cette méthode est qu'elle peut traverser les serveurs. Cette méthode ne peut être utilisée que lorsque nginx et php-fpm ne sont pas sur la même machine.

97.À quoi servent vos modules Nginx couramment utilisés ?

module de réécriture pour implémenter la fonction de réécriture
module d'accès  : contrôle de source
module ssl  : cryptage sécurisé
ngx_http_gzip_module  : module de compression de transmission réseau
Le module ngx_http_proxy_module implémente le proxy
L'implémentation du module ngx_http_upstream_module définit la liste des serveurs backend
ngx_cache_purge implémente la fonction de suppression du cache

98. Indiquez les modes d'équilibrage de charge pris en charge par Nginx et les scénarios d'application de chaque mode.

1. La méthode d'interrogation Roundrobin , qui distribue tour à tour les requêtes à chaque serveur d'arrière-plan, est la méthode d'équilibrage de charge par défaut. Il convient aux situations où . Les machines en panne peuvent être automatiquement supprimées de la liste de services.
2. Weight répartit les demandes entre différentes machines en fonction du poids, ce qui convient aux situations où les performances de la machine en arrière-plan sont différentes.
3. ip_hash envoie la requête au serveur backend en fonction de la valeur de hachage de l' adresse IP du demandeur , ce qui peut garantir que les requêtes provenant de la même IP sont envoyées à une machine fixe, ce qui peut résoudre le problème de session.
4. url_hash divise les requêtes en différentes machines en fonction de la valeur de hachage de l' URL demandée . Il est très efficace lorsque le serveur backend est mis en cache.
5. Fair distribue les demandes en fonction du temps de réponse en arrière-plan. Un temps de réponse plus court distribue plus de demandes.

99. Parlez-moi du principe de fonctionnement de Keepalived ?

在一个虚拟路由器中,只有作为 MASTER VRRP 路由器会一直发送 VRRP 通告信息 ,BACKUP 不会抢占 MASTER ,除非它的优先 级更高。当 MASTER 不可用时 (BACKUP 收不到通告信息 ), 多台 BACKUP 中优先级最高的这台会被抢占为 MASTER 。这种抢占是 非常快速的 ( < 1 s) ,以保证服务的连续性 , 由于安全性考虑, VRRP 包使用了加密协议进行加密。 BACKUP 不会发送通告信 息,只会接收通告信息

100.keepalived的主要模块有哪些?

keepalived 主要有三个模块,分别是 core check vrrp
Le module principal est au cœur de keepalived et est responsable du démarrage et de la maintenance du processus principal ainsi que du chargement et de l'analyse des fichiers de configuration globaux.
check est responsable des inspections sanitaires, y compris diverses méthodes d'inspection courantes
Le module vrrp est utilisé pour implémenter le protocole VRRP

101.Comment Keepalived effectue-t-il des contrôles de santé ?

Configuration du mode de vérification de l'état Keepalived
HTTP_GET | SSL_GET
HTTP_GET | SSL_GET
{
URL {
chemin / # L'URL de vérification HTTP/SSL peut être multiple
digest < STRING > # Les informations de résumé après l'inspection HTTP/SSL sont générées à l'aide de l'outil genhash
status_code 200 # Code d'état renvoyé par vérification HTTP/SSL
}
connect_port 80 #Connecter le port
lier à <IPADD> _
connect_timeout 3 # 连接超时时间
nb_get_retry 3 # 重连次数
delay_before_retry 2 # 连接间隔时间
}

102.Keepalived怎么实现高可用?

Keepalived 高可用服务对之间的故障切换转移,是通过 VRRP 协议来实现的。
Keepalived 服务正常工作时,主 Master 节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备 Backup 节点自己还活看,当主 Master 节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master 点的心跳了,于是调用自身的接管程序,接管主 Master 节点的 IP 资源及服务。而当主 Master 节点恢复时,备 Backup 点又会释放主节点故障时自身接管的 IP 资源及服务,恢复到原来的备用角色。

103.Quels sont les principaux types de clusters Linux ?

Cluster d'équilibrage de charge 1.LB
L'objectif principal du cluster d'équilibrage de charge est d'améliorer la réactivité des services. Si un groupe de nœuds informatiques (ou un groupe de processus) fournit les mêmes services (homogènes), alors les demandes de services doivent être réparties uniformément entre ces nœuds. Les deux plus courants au niveau logiciel sont : LVS et Haproxy
2. Cluster haute disponibilité haute disponibilité
Les clusters à haute disponibilité fournissent principalement des services ininterrompus 7 heures sur 24. Si un certain ordinateur tombe en panne , il passera automatiquement à d'autres ordinateurs pour fonctionner , atteignant ainsi une haute disponibilité. Les solutions de cluster haute disponibilité courantes sont les suivantes : heartbeat , corosync + openais RHCS , ultramokey , keepalived
3. Cluster HP hautes performances
Les clusters hautes performances sont principalement utilisés dans des scénarios qui nécessitent beaucoup de calcul CPU , tels que les prévisions météorologiques , la production d'effets spéciaux de superproductions 3D étrangères et une série d'applications qui nécessitent beaucoup de calcul . Les solutions de cluster hautes performances HP courantes incluent arrosé

104. Comparaison de plusieurs méthodes courantes d'équilibrage de charge ?

1. Caractéristiques du LVS
1. Fonctionne sur la 4ème couche du réseau, a une forte résistance à la charge et est utilisé pour la distribution ;
2. La configurabilité est relativement faible ;
3. Fonctionne de manière stable et dispose de sa propre solution de sauvegarde à chaud sur deux machines ;
4. Il a un large éventail d'applications et peut équilibrer la charge de toutes les applications ;
2. Caractéristiques de NGINX
1. Fonctionne sur la couche 7 du réseau ;
2. Dépendance relativement faible vis-à-vis du réseau ;
3. L'installation et la configuration sont relativement simples et les tests sont plus pratiques ;
4. Peut résister à une pression de charge élevée et être stable ;
5. Les pannes internes du serveur peuvent être détectées via le port.
6. Le traitement asynchrone des requêtes peut aider le serveur de nœud à réduire la charge ;
7. Peut prendre en charge http et Email  ;
8. Par défaut, il n'existe que deux algorithmes d'équilibrage de charge : Round-robin et IP-hash ;
3. Caractéristiques de Haproxy
1. Fonctionne au-dessus de la couche réseau 7 .
2. Il peut compléter certaines lacunes de Nginx , telles que la maintenance de session , les conseils en matière de cookies , etc.
3. Prise en charge de la détection des problèmes de serveur back-end de détection d'URL
4. Plus de stratégies d'équilibrage de charge
5. Meilleure vitesse d’équilibrage de charge
6. HAProxy peut équilibrer la charge de Mysql et détecter et équilibrer la charge des nœuds de base de données back -end .

105.Quel est le principe de l'algorithme du nombre minimum de connexions dans l'algorithme de planification lvs ?

最少连接调度算法是把新的连接请求分配到当前连接数最小的服务器,最小连接调度是一种动态调度短算法,它通过服务器当前所活跃的连接数来估计服务器 的负载均衡,调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到 某台服务器,其连接数加1,当连接中止或超时,其连接数减一,在系统实现时, 我们也引入当服务器的权值为0时,表示该服务器不可用而不被调度。

106.简单介绍lvs的三种工作模型

1 NAT 模型
NAT 模型是通过网络地址转换来实现的 , 工作方式是 , 首先用户请求到达前端的负载均衡器,然后负载均衡器根据事先定义好的调度算法将用户请求的目标地址修改为后端的应用服务器,应用程序服务器处理好请求之后将结果返回给用户 , 期间 必须要经过负载均衡器 , 负载均衡器将报文的源地址 改为用户请求的目标地址 , 再转发给用户 , 从而完成整个负载均衡的过 ,
2 DR 模型
DR 模型是通过路由技术实现的负载均衡技术 , 这种模型与 NAT 模型不同的地方是 , 负载均衡器通过改写用户请求报文中的 MAC 地址 , 将请求发送到 Real Server, Real Server 直接响应用户 , 这样就大大的减少负载均衡器的压力 ,DR 模型也是 用的最多的一种。
3 TUN 模型
TUN 模型是通过 IP 隧道技术实现的 ,TUN 模型跟 DR 模型有点类似 , 不同的地方是负载均衡器 (Director Server) 跟应用服务器 (Real Server) 通信的机制是通过 IP 隧道技术将用户的请求转发到某个 Real Server, Real Server 也是直接响应 用户的

107.集群中资源隔离的解决方案?

1 、当集群分裂成两个小集群时会发生资源争用的情况,为避免争用后端存储系统而造成灾难性的系统崩溃,集群系统引
入了投票机制,只有拥有半数以上合法票数的集群才能存活,否则就推出集群系统。
2 、当集群为偶数时,如果分裂,两边可能都掌握相等的票数;因此,集群系统不应该为偶数,如果是偶数则需要一个额
外的 ping 节点参与投票。
3 、票数不足的集群退出集群服务后,为了保证它不会争用资源需要 STONITH 机制来进行资源隔离。

Je suppose que tu aimes

Origine blog.csdn.net/wuds_158/article/details/132900287
conseillé
Classement