当前位置:网站首页>Expérience initiale du moteur de segmentation de l'araignée mariadb
Expérience initiale du moteur de segmentation de l'araignée mariadb
2022-06-11 17:50:00 【Jacinthe】
Un. spiderGénéralités

SpiderLe moteur de stockage est un moteur de stockage avec une fonction de partition intégrée.Il prend en charge les partitions etxaServices,Et permet de traiter différemmentMariaDBTableau des instances,Comme s'ils étaient dans le même cas.
UtiliserSpiderLorsque le moteur de stockage crée une table,Cette table est liée à une table sur un serveur distant,Fonctionne comme une table locale.Les tables distantes peuvent être des tables pour n'importe quel moteur de stockage.Les liens de table sont spécifiquement établis à partir deMariaDBServeur à distanceMariaDBUne connexion au serveur pour.Le moteur est totalement transparent pour les affaires.

UtiliserSpiderCertaines variables du serveur à définir:
MariaDBDe10.3.4C'est parti.
Si elle est utilisée dans la réplicationSpider,Peut être réalisé enslave_transaction_retry_errors.Définissez les valeurs suivantes pour étendre la liste des erreurs de transaction à retry,Pour éviter les problèmes de réseau:
- 1158: Got an error reading communication packets
- 1159: Got timeout reading communication packets
- 1160: Got an error writing communication packets
- 1161: Got timeout writing communication packets
- 1429: Unable to connect to foreign data source
- 2013: Lost connection to MySQL server during query
- 12701: Remote MySQL server has gone away
Modifiermy.cnf,Ajouter:
slave_transaction_retry_errors="1158,1159,1160,1161,1429,2013,12701"
MariaDB 10.4.5Et plus tard, Ce qui précède est inclus par défaut .
D'abord, deux d'entre nous DBA Des scènes fréquentes :
Scénario 1: Il y a deux tableaux différents répartis sur différentes instances , Vous voulez associer à travers un champ ,Faire une statistique, Ou vous voulez que les tableaux soient distribués dans différentes instances , Fusionner dans une instance pour faire quelques requêtes .
Scénario 2: En raison d'un goulot d'étranglement dans la capacité de la base de données ou en raison d'un goulot d'étranglement dans les performances d'accès à la base de données , Une grande bibliothèque 、 Grande table ou très grande table de visite à diviser , Puis distribué dans différents cas .
Ces deux scénarios nous couvrent DBA Fractionnement vertical et horizontal en contact fréquent , Dans ce scénario, il y a souvent plusieurs dilemmes :
1、 L'accès à ces tables nécessite des règles de routage supplémentaires ,Très complexe
2、 .Lorsqu'un résumé des données ou des statistiques est nécessaire ,C'est très gênant.
Spider Avantages:
a、Transparence totale des affaires, Les affaires n'ont pas besoin d'être modifiées
b、Facile à étendre horizontalement, Peut résoudre un seul mysql Problèmes de performance et de goulot d'étranglement de stockage
c、 Il n'y a pas de limite au moteur de stockage de l'arrière - plan
d、 Réalisation indirecte des fonctions de séparation verticale et horizontale
Adoption spider Connexion à la base de données en arrière - plan , Peut être une table séparée , Peut également être basé sur une table partitionnée , Les tables partitionnées supportent le hachage 、Champ d'application、 Algorithmes tels que les listes .
e、Entièrement compatible mysql Accord
Parce que MySQL Architecture spéciale du moteur de stockage plug - in ,server Couche responsable SQL Analyse、SQL Optimisation、Objet de la base de données(Voir、Procédures stockées, etc.)Gestion; Le niveau moteur de stockage est responsable du stockage des données 、Prise en charge de l'index、Services、buffer Attendez., Entre les deux par un accord handler Les interfaces interagissent.SQL Analyse、 L'optimisation et l'exécution sont confiées à server Traitement des couches, L'exécution de n'importe quel type est presque prise en charge SQL Accès à.
Spider Désavantages:
a、spider Le tableau lui - même ne supporte pas la mise en cache des requêtes et l'indexation en texte intégral , Cependant, vous pouvez ajouter un index plein texte à la base de données d'arrière - plan ;
b、 Si une sauvegarde physique est utilisée ,spider Impossible de sauvegarder les données de l'arrière - plan , Parce que les données elles - mêmes sont stockées à l'arrière - plan . Peut être sur l'arrière - plan mysql Faites des sauvegardes physiques une par une
c、spider Un seul point en soi , Besoin de faire sa propre machine de secours ,Par exemple, VIP De la façon dont
d、 Il y a un autre niveau de réseau , Il y aura une certaine perte de performance , Surtout entre les partitions 、 Les requêtes inter - tables peuvent être un peu moins performantes
2. Installationspider
Il y a deux façons d'installer:
Comment1:
MariaDB [(none)]> INSTALL SONAME "ha_spider";
Query OK, 0 rows affected (0.044 sec)
Comment2:
mysql -u root -p < /usr/share/mysql/install_spider.sql
# Vérifier que spiderMoteur

Trois spiderExemple d'utilisation
3.1 spiderNoeud+ Exemples de noeuds d'arrière - plan multiples
Environnement expérimental:
IP | Rôle | Remarques | Configuration du système d'exploitation |
192.168.144.249 | spiderNoeud+sysbench | Deux noeuds sont connectés à l'arrière - plan | Centos 7.6 1GMémoire |
192.168.144.250 | Backend1 | Noeud arrière1 | |
192.168.144.251 | Backend2 | Noeud arrière2 |
3.1.1 Créer une table sur le noeud arrière
# Créer une table sur deux noeuds d'arrière - plan
CREATE DATABASE backend;
CREATE TABLE backend.sbtest1 (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT '0',
c char(120) NOT NULL DEFAULT '',
pad char(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=InnoDB;
3.1.2 Inspider Tableau des noeuds
3.1.2.1 Construireserver
CREATE SERVER backend1
FOREIGN DATA WRAPPER mysql
OPTIONS(
HOST '192.168.144.250',
DATABASE 'backend',
USER 'root',
PASSWORD '123456',
PORT 3306
);
CREATE SERVER backend2
FOREIGN DATA WRAPPER mysql
OPTIONS(
HOST '192.168.144.251',
DATABASE 'backend',
USER 'root',
PASSWORD '123456',
PORT 3306
);
select * from mysql.servers;

3.1.2.2 Construction de montres
CREATE DATABASE IF NOT EXISTS backend;
CREATE TABLE backend.sbtest1
(
id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT '0',
c char(120) NOT NULL DEFAULT '',
pad char(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=spider COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY KEY (id)
(
PARTITION pt1 COMMENT = 'srv "backend1"',
PARTITION pt2 COMMENT = 'srv "backend2"'
) ;
3.1.3 Vérification du fractionnement
#Inspider Insérer des données sur le noeud
MariaDB [(none)]> use backend;
MariaDB [backend]> insert into sbtest1(id,k,c,pad) values(1,1,'a','a');
Query OK, 1 row affected (0.006 sec)
MariaDB [backend]> insert into sbtest1(id,k,c,pad) values(2,2,'a','a');
Query OK, 1 row affected (0.007 sec)
select * from backend.sbtest1;

# Requête sur le noeud arrière , Deux données ont été trouvées réparties sur deux noeuds d'arrière - plan

/*
Trouvé au cours des tests10.3.18VersionspiderInstabilité,select *Etcount(*)Résultats inexacts pour, Parfois des données agrégées , Parfois, les données du premier noeud , Parfois, les données du deuxième noeud ,Je ne sais pas ce qui se passe.

Ces données sont bizarres .
Je suis10.5.7 La version testée n'a pas trouvé le problème .
*/

Cet article fait référence àSpider - MariaDB Knowledge Base
Voilà, Tencent Games Distributed Database TenDB ClusterOpen Source_Laoye teahouse_Blog de-CSDNBlogs
边栏推荐
- require和ES6 import的区别
- How to become an optimist organization?
- Automated testing selenium
- Dynamic: capturing network dynamics using dynamic graph representation learning
- CLP information -5 keywords to see the development trend of the financial industry in 2022
- 【线上问题】Timeout waiting for connection from pool 问题排查
- Use exe4j to convert The jar file is packaged as Exe file
- 6-8 reading and writing of structured files 1
- Remove key lookup bookmark from SQL Server
- Three steps of ffmpeg CBR precise bitstream control
猜你喜欢

Don't you understand the design and principle of thread pool? Break it up and crush it. I'll teach you how to design the thread pool

Service learning notes 01 start method and life cycle

04_ Feature engineering feature selection
![[foundation of deep learning] learning of neural network (3)](/img/a5/1b80ba85faf8fa636b784c76d4df2f.png)
[foundation of deep learning] learning of neural network (3)

Chorus translation

【Mysql】redo log,undo log 和binlog详解(四)

ffmpeg硬件编解码Nvidia GPU

【先收藏,早晚用得到】49个Flink高频面试题系列(一)

删除链表的倒数第N个节点---2022/02/22

【深度学习基础】神经网络的学习(3)
随机推荐
av_ read_ The return value of frame is -5 input/output error
测试基础之:黑盒测试
信息安全数学基础 Chapter 3——有限域(一)
04_ Feature engineering feature selection
6-1 how many words are needed to form a sentence?
Line up to pick up the express. At this meeting, I sorted out all kinds of code sets
Difference between require and ES6 import
[foundation of deep learning] learning of neural network (3)
6-5 统计单词数量(文件)(*)
开源项目那么多,这次带你了解个版本的区别,明白alpha版、beta版、rc版是什么意思
Authing biweekly news: online application market (5.10-5.22)
Go get downloaded package path
How to become an optimist organization?
Simple understanding of events
Delete the penultimate node of the linked list ---2022/02/22
Threejs uses indexeddb cache to load GLB model
6-5 count the number of words (file) (*)
tidb-cdc同步mysql没有的特性到mysql时的处理
threejs利用indexeddb缓存加载glb模型
6-6 batch sum (*)