Може би сте чували за MariaDB TX и може би сте се чудили какво е това?
Има ли разлика между него и MariaDB Server 10.3?
В тази публикация в блога бихме искали да ви дадем общ преглед на MariaDB TX и за какво става въпрос.
Накратко:MariaDB TX е абонамент, в който MariaDB комбинира множество предложения за изграждане на пълнофункционална транзакционна база данни.
Базата данни, използвана в MariaDB TX, е MariaDB Server 10.3, който също включва Galera Cluster за синхронна мулти-главна репликация. За прокси слоя MariaDB TX използва MaxScale.
Нека се съсредоточим малко върху тези две основни предложения, като разгледаме техните функции.
MariaDB сървър 10.3
Той се превърна в пълнофункционален форк, който внедрява нови функционалности върху това, което Oracle внедрява в началото. MariaDB 10.3 идва със списък с функции, насочени към предприятието. MariaDB Server 10.3 вече не е заместител на MySQL.
Съвместимост с Oracle
MariaDB 10.3 идва с SQL_MODE=ORACLE, което подобрява съвместимостта за SQL синтаксиса, използван в MariaDB 10.3 с Oracle PL/SQL. Следните функции за съвместимост са включени в MariaDB TX:
- Параметри на съхранената процедура
- Конструкция на съхранена процедура, която не отговаря на ANSI
- Синтаксис на курсора
- Синтаксис на цикъла
- Декларация на променлива
- Наследяване на тип данни (%TYPE, %ROWTYPE)
- Изключения в стил PL/SQL
- Синоними за основни типове SQL (VARCHAR2, NUMBER, …)
Това позволява по-лесна миграция на вашите приложения от бази данни на Oracle в MariaDB TX.
До 80% от Oracle PL/SQL кода вече може да се изпълнява на MariaDB без необходимост от въвеждане на промени; това се отразява сериозно на цялостната крива на обучение и намалява времето, необходимо за пренаписване на наследения код, за да се изпълнява на MariaDB TX.
Това, което също е важно да имате предвид, MariaDB TX идва с пакет за поддръжка и ще получите достъп до консултанти, които ще могат да споделят най-добрите практики за миграция с вас или дори директно да ви помогнат в процеса на планиране, за да направят прехода още по-малко обезпокоителен.
Подобрения в SQL
MariaDB TX ни носи и подобрения в синтаксиса на SQL, включително нови функции, които трябва да бъдат много полезни за разработчиците като функции на прозорец или изрази за обща таблица. Също така временните подклаузи могат да бъдат много полезни, тъй като позволяват достъп до множество версии на даден ред въз основа на конкретен момент от време.
Всички функции са изброени по-долу:
- Временни подклаузи (напр. AS OF)
- Дефинирани от потребителя обобщени функции
- Агрегирани функции с подреден набор
- ПРЕСЕЧИ/ИЗКЛЮЧВАНЕ
- Конструктори за стойности на таблица
- Време за изчакване на DDL/SELECT заключване
- Общи таблични изрази
- Прозоречни функции
- JSON функции
Външни системи за съхранение
Машината по подразбиране за MariaDB е InnoDB, транзакционна, универсална машина за съхранение.
Подходящ е за повечето натоварвания и работи чудесно за OLTP (онлайн обработка на транзакции) работно натоварване. Това обаче не е единственият двигател за съхранение, наличен в MariaDB TX. Получавате достъп до Spider engine, който може да се използва за разделяне на вашите данни между множество екземпляри на MariaDB, като същевременно се поддържа поддръжка за XA транзакции.
Друг двигател за съхранение, който можете да използвате, е MyRocks, двигател, оптимизиран за намаляване на усилването на съхранение и запис. Тестван в битки във Facebook, базиран на LSN, той е идеален за съхраняване на големи обеми данни на SSD съхранение, намалявайки разходите чрез прилагане на силна компресия и чрез намаляване на броя на записванията, необходими за дадено работно натоварване (и по този начин минимизиране на износването на SSD). ).
Galera Cluster
MariaDB TX ви дава лесен достъп до Galera Cluster, практически синхронна, мулти-главна репликация. Galera Cluster може да се използва за проектиране на високодостъпни клъстери, обхващащи WAN.
Galera Cluster е изграден върху протокола, който знае към кворума, което гарантира, че разделянето на мрежата няма да бъде проблем и че разделеният мозък вече не трябва да бъде проблем. Galera Cluster предоставя средства за автоматично предоставяне на нови или неуспешни възли, намалявайки отпечатъка на управление.
Оперативни функции
MariaDB TX също така предоставя някои функции, свързани с оперативните задачи. Колоната за незабавно ДОБАВАНЕ помага да се намали въздействието на една от най-често срещаните промени в схемата. Невидимите колони помагат за поддържане на съвместимост между стария и новия код. Индексите на виртуални колони ще повишат производителността.
Mariabackup
MariaDB TX внедрява криптиране на данни в покой, което включва криптиране на двоични регистрационни файлове. За да се гарантира, че потребителите на MariaDB TX могат да се възползват от архивиране без заключване, беше създаден Mariabackup. Това е подобрена вилка на Xtrabackup, която не работи правилно с функциите за криптиране на MariaDB TX. Сега можете да се насладите на горещите си физически архиви с Mariabackup, докато данните ви са безопасно криптирани.
MariaDB MaxScale
В допълнение към MariaDB 10.3, MariaDB TX идва с MaxScale 2.3, SQL-съзнателен прокси, който може да се използва за изграждане на високодостъпни среди. Той идва с множество функции и бихме искали да разгледаме най-важните от тях тук.
Автоматично отказване
MaxScale може да се използва за проследяване на здравето на главния възел MariaDB и, ако не успее, да извърши бързо, автоматично преминаване при отказ. Автоматизираното преминаване при отказ е от решаващо значение за изграждането на високодостъпно решение, което може да се възстанови незабавно след повреда.
Разделяне на четене-запис
Разделянето на четене и запис е критична функция, която позволява мащабиране при четене. Достатъчно е приложението да се свърже с MaxScale и то ще открие топологията, ще определи коя MariaDB действа като главен и коя като подчинени. След това ще насочи трафика в съответствие с това. Заявките SELECT ще бъдат изпратени до подчинените, записите ще бъдат изпратени до главния. Всичко се случва автоматично, топологията се следи през цялото време и ако се случи отказ, трафикът ще бъде пренасочен въз основа на промяната.
Прозрачно маршрутизиране на заявки
MaxScale, като точка на влизане на трафика в MariaDB TX, може да се използва за извършване на разделяне на четене-запис. Понякога това все още не е достатъчно и би било чудесно да имате начин да контролирате къде да бъде изпратена дадена заявка. Това е възможно в MaxScale - можете да съпоставите заявките с помощта на регулярни изрази и след това да решите дали да бъдат изпратени на главния или на подчинените. Това може да помогне в някои конкретни случаи, когато заявката SELECT трябва да се изпълни на главния елемент поради проблеми с четене след запис или просто защото трябва да има най-актуалния изглед на набора от данни.
Кеширане на резултатите от заявката
За да се подобри производителността, кеширането на заявки е задължително. Кешът на заявките, наличен в MariaDB, просто няма да работи в силно конкурентна среда, тъй като налага сериализиране на заявките, намалявайки сериозно производителността дори за работни натоварвания само за четене. Използването на външно решение за кеш не винаги е осъществимо:в края на краищата ще получите още една база данни, която да поддържате, защитавате и поддържате здрави. Може би е по-добре да използвате MaxScale като кеш, ако приемем, че вече го използвате за друга функционалност.
Блокиране на заявка
Понякога базите данни страдат от неефективно запитване, което създава голямо натоварване на системата. Възможно е пренаписването на тази заявка да отнеме твърде дълго време (някой ще трябва да я пренапише, да тества промяната на етапа и след това накрая да се внедри в производство), време, което нямате. MaxScale може да ви помогне тук с функции като блокиране на заявки, които основно ви позволяват да спрете дадена заявка да попадне в базата данни. Тази функция може да се използва и за изграждане на защитна стена на SQL – махнете всички заявки, които съответстват на модели, които сочат към SQL инжектиране или други, потенциално опасни и злонамерени дейности.
Както можете да видите, MariaDB TX се предлага със списък с функции и софтуер, който е проектиран да работи заедно и да изгражда високодостъпна, мащабируема база данни за обработка на транзакционни данни.
Наблюдение и управление на предприятия за MariaDB TX
ClusterControl поддържа напълно MariaDB TX. Можете лесно да внедрите както MariaDB Server 10.3, така и MaxScale 2.3. ClusterControl поддържа настройки за репликация на MariaDB, както и MariaDB Galera Cluster.
Докато имате SSH свързаност от вашия екземпляр на ClusterControl до възлите, на които искате да разположите MariaDB TX, можете да го направите само с няколко щраквания.
Първо трябва да дефинирате как ClusterControl ще достигне до възлите на MariaDB TX.
След това изберете MariaDB като доставчик и изберете една от поддържаните версии. Предайте root паролата на MariaDB.
Накрая вземете решение за топологията. Можете да разположите MariaDB TX в настройка главен - главен, активен - готовност с допълнителни подчинени устройства. Репликацията ще използва MariaDB GTID.
За MariaDB Galera Cluster първата стъпка е абсолютно същата, след това просто трябва да изберете MariaDB като доставчик, да вземете решение за версията и да дефинирате възли в MariaDB Galera Cluster:
С разгърнатите клъстери можете да използвате силата на ClusterControl за наблюдение и управление на вашите MariaDB TX клъстери.Например добавянето на балансьори на натоварване MaxScale е само на няколко щраквания разстояние:
След като бъде разгърнат, можете да управлявате своя MaxScale с помощта на ClusterControl:
Можете също така да мащабирате своя клъстер Galera чрез добавяне на нови възли на Galera или подчинени устройства за асинхронна репликация. Можете да добавите подчинени или забавени подчинени устройства към вашите настройки за репликация или да извършите промени в топологията, като повишите подчинен до главен и повторно подчините останалата част от настройката. ClusterControl ще наблюдава клъстера и ще се опита да възстанови неуспешни възли или клъстери, ако се случи инцидент. За архивиране ClusterControl може да ви помогне да дефинирате график за архивиране, като използвате mysqldump и Mariabackup, за да можете лесно да се възползвате от функциите за криптиране на MariaDB TX.
За частта за наблюдение и тенденция, ClusterControl може да се използва или в режим без агент:
Или може да се използва заедно с Prometheus и агенти, за да предостави още по-добра представа за случващото се в клъстера MariaDB TX.
Надяваме се, че тази уводна публикация в блога ви помогна да разберете какво представлява MariaDB TX и как ClusterControl може да ви помогне да го управлявате.