当前位置:网站首页>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
边栏推荐
- CentOS7服务器配置(四)---安装redis
- 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
- 【Mysql】redo log,undo log 和binlog详解(四)
- ffmpeg CBR精准码流控制三个步骤
- Several ways to recover tidb data from accidental deletion
- Biden ordered to enforce the zero trust structure
- 合并K个升序链表---2022/02/26
- 6-1 从文件读取字符串(*)
- Tidb unsafe recover (tikv downtime is greater than or equal to half the number of replicas)
- 6-2 写文章(*)
猜你喜欢

ffmpeg奇偶场帧Interlace progressive命令和代码处理
![[online problem] timeout waiting for connection from pool](/img/f0/7e8444ed7d0921b98d5e998e274bc8.png)
[online problem] timeout waiting for connection from pool

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

Use exe4j to convert The jar file is packaged as Exe file

Chapter II relational database

Hands on deep learning - multiple input and output channels in the convolution layer

送给大模型的「高考」卷:442人联名论文给大模型提出204个任务,谷歌领衔

How to become an optimist organization?

04_ Feature engineering feature selection

sql server中关于FORCESCAN的使用以及注意项
随机推荐
Typescipt Basics
Service learning notes 03 front desk service practice
Vscode configures eslint to automatically format with an error "the setting is deprecated. use editor.codeactionsonsave instead with a source“
Remove key lookup bookmark from SQL Server
简单理解事件
tidb-cdc创建任务报错 Unknown or incorrect time zone
[solution] codeforces round 798 (Div. 2)
CLP information -5 keywords to see the development trend of the financial industry in 2022
tidb-cdc日志tables are not eligible to replicate
6-2 writing articles (*)
How does Sister Feng change to ice?
What problems are exposed when all Sohu employees are cheated?
tidb-cdc同步mysql没有的特性到mysql时的处理
Service learning notes 01 start method and life cycle
Service学习笔记02-实战 startService 与bindService
threejs利用indexeddb缓存加载glb模型
Go get downloaded package path
About element location and size
6-8 reading and writing of structured files 1
TypeScipt基础