MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

MySQL Enterprise से MariaDB 10.3 . में माइग्रेट करना

जबकि यह समान विरासत को MySQL के साथ साझा करता है, मारियाडीबी एक अलग डेटाबेस है। इन वर्षों में जैसे ही MySQL और MariaDB के नए संस्करण जारी किए गए, दोनों प्रोजेक्ट दो अलग-अलग RDBMS प्लेटफार्मों में भिन्न हो गए हैं।

कई लिनक्स प्लेटफार्मों पर मारियाडीबी मुख्य डेटाबेस वितरण बन गया है और यह इन दिनों उच्च लोकप्रियता प्राप्त कर रहा है। साथ ही, यह कई निगमों के लिए एक बहुत ही आकर्षक डेटाबेस सिस्टम बन जाता है। इसे ऐसी सुविधाएँ मिल रही हैं जो एंटरप्राइज़ की ज़रूरतों के करीब हैं जैसे एन्क्रिप्शन, हॉट बैकअप या मालिकाना डेटाबेस के साथ संगतता।

लेकिन नई सुविधाएँ MySQL के साथ MariaDB संगतता को कैसे प्रभावित करती हैं? क्या यह अभी भी MySQL के लिए प्रतिस्थापन ड्रॉप है? नवीनतम परिवर्तन माइग्रेशन प्रक्रिया को कैसे बढ़ाते हैं? हम इस लेख में इसका उत्तर देने का प्रयास करेंगे।

अपग्रेड करने से पहले आपको क्या जानना चाहिए

पिछले दो वर्षों में मारियाडीबी और माईएसक्यूएल एक-दूसरे से काफी भिन्न हैं, विशेष रूप से उनके सबसे हाल के संस्करणों के आगमन के साथ:MySQL 8.0, मारियाडीबी 10.3 और मारियाडीबी 10.4 आरसी (हमने हाल ही में मारियाडीबी 10.4 आरसी की नई विशेषताओं पर चर्चा की है। 10.4 में आने वाले समय के बारे में अधिक पढ़ें, कृपया मेरे सहयोगी क्रिज़्सटॉफ़ के दो ब्लॉग देखें, मारियाडीबी 10.4 में नया क्या है और मारियाडीबी क्लस्टर 10.4 में नया क्या है।

मारियाडीबी 10.3 रिलीज के साथ, मारियाडीबी ने कई लोगों को आश्चर्यचकित किया क्योंकि यह अब MySQL के लिए ड्रॉप-इन प्रतिस्थापन नहीं है। MariaDB अब MySQL बग्स को हल करने वाले MariaDB noir के साथ नई MySQL सुविधाओं का विलय नहीं कर रही है। फिर भी संस्करण 10.3 अब Oracle MySQL Enterprise के साथ-साथ अन्य एंटरप्राइज़ स्वामित्व डेटाबेस जैसे Oracle 12c (संस्करण 10.4 में MSSQL) के लिए एक वास्तविक विकल्प बन रहा है।

प्रारंभिक जांच और सीमाएं

माइग्रेशन एक जटिल प्रक्रिया है, इससे कोई फर्क नहीं पड़ता कि आप किस संस्करण में अपग्रेड कर रहे हैं। इसकी योजना बनाते समय आपको कुछ बातों का ध्यान रखना चाहिए, जैसे कि RDBMS संस्करणों के बीच आवश्यक परिवर्तन और साथ ही विस्तृत परीक्षण जो किसी भी अपग्रेड प्रक्रिया का नेतृत्व करने के लिए आवश्यक हैं। यह विशेष रूप से महत्वपूर्ण है यदि आप अपग्रेड की अवधि के लिए उपलब्धता बनाए रखना चाहते हैं।

एक नए प्रमुख संस्करण में अपग्रेड करने में जोखिम शामिल है, और पूरी प्रक्रिया की सोच-समझकर योजना बनाना महत्वपूर्ण है। इस दस्तावेज़ में, हम 10.3 (और आगामी 10.4) संस्करण में महत्वपूर्ण नए परिवर्तनों को देखेंगे और आपको दिखाएंगे कि परीक्षण प्रक्रिया की योजना कैसे बनाई जाए।

जोखिम को कम करने के लिए, आइए प्लेटफ़ॉर्म अंतर और सीमाओं पर एक नज़र डालें।

कॉन्फ़िगरेशन से शुरू होकर कुछ पैरामीटर हैं जिनके अलग-अलग डिफ़ॉल्ट मान हैं। मारियाडीबी पैरामीटर अंतर का एक मैट्रिक्स प्रदान करता है। इसे यहां पाया जा सकता है।

MySQL 8.0 में, caching_sha2_password डिफ़ॉल्ट प्रमाणीकरण प्लगइन है। इस एन्हांसमेंट को SHA-256 एल्गोरिथम का उपयोग करके सुरक्षा में सुधार करना चाहिए। MySQL में यह प्लगइन डिफ़ॉल्ट रूप से सक्षम है, जबकि MariaDB नहीं है। हालांकि मारियाडीबी एमडीईवी-9804 के साथ पहले से ही एक फीचर अनुरोध खोला गया है। MariaDB इसके बजाय ed25519 प्लगइन प्रदान करता है जो पुराने प्रमाणीकरण पद्धति का एक अच्छा विकल्प प्रतीत होता है।

टेबल और टेबल स्पेस पर एन्क्रिप्शन के लिए मारियाडीबी का समर्थन संस्करण 10.1.3.1 में जोड़ा गया था। आपकी तालिकाओं के एन्क्रिप्ट होने के कारण, आपका डेटा किसी के लिए चोरी करना लगभग असंभव है। इस प्रकार का एन्क्रिप्शन आपके संगठन को GDPR जैसे सरकारी नियमों का अनुपालन करने की भी अनुमति देता है।

मारियाडीबी कनेक्शन थ्रेड पूल का समर्थन करता है, जो उन परिस्थितियों में सबसे प्रभावी होते हैं जहां प्रश्न अपेक्षाकृत कम होते हैं और लोड सीपीयू बाध्य होता है। MySQL के सामुदायिक संस्करण पर, थ्रेड्स की संख्या स्थिर है, जो इन स्थितियों में लचीलेपन को सीमित करती है। MySQL की एंटरप्राइज़ योजना में थ्रेडपूल क्षमताएं शामिल हैं।

MySQL 8.0 में sys स्कीमा शामिल है, ऑब्जेक्ट्स का एक सेट जो डेटाबेस एडमिनिस्ट्रेटर और सॉफ़्टवेयर इंजीनियरों को प्रदर्शन स्कीमा द्वारा एकत्र किए गए डेटा की व्याख्या करने में मदद करता है। Sys स्कीमा ऑब्जेक्ट का उपयोग अनुकूलन और निदान उपयोग मामलों के लिए किया जा सकता है। MariaDB में यह एन्हांसमेंट शामिल नहीं है।

एक और अदृश्य स्तंभ है। अदृश्य कॉलम किसी एप्लिकेशन को तोड़ने के डर के बिना मौजूदा तालिकाओं में कॉलम जोड़ने की सुविधा देते हैं। यह सुविधा MySQL में उपलब्ध नहीं है। यह ऐसे कॉलम बनाने की अनुमति देता है जो SELECT * स्टेटमेंट के परिणामों में सूचीबद्ध नहीं हैं, और न ही उन्हें INSERT स्टेटमेंट में एक मान निर्दिष्ट करने की आवश्यकता होती है, जब उनके नाम का स्टेटमेंट में उल्लेख नहीं किया जाता है।

मारियाडीबी ने मूल JSON समर्थन (MySQL 5.7 और 8.0 की प्रमुख विशेषताओं में से एक) को लागू नहीं करने का निर्णय लिया क्योंकि उनका दावा है कि यह SQL मानक का हिस्सा नहीं है। इसके बजाय, MySQL से प्रतिकृति का समर्थन करने के लिए, उन्होंने केवल JSON के लिए एक उपनाम परिभाषित किया, जो वास्तव में एक LONGTEXT कॉलम है। यह सुनिश्चित करने के लिए कि एक वैध JSON दस्तावेज़ डाला गया है, JSON_VALID फ़ंक्शन का उपयोग CHECK बाधा के रूप में किया जा सकता है (MariaDB 10.4.3 के लिए डिफ़ॉल्ट)। मारियाडीबी सीधे MySQL JSON प्रारूप तक नहीं पहुंच सकता।

Oracle MySQL शेल के साथ बहुत सारे कार्यों को स्वचालित करता है। SQL के अलावा, MySQL शेल जावास्क्रिप्ट और पायथन के लिए स्क्रिप्टिंग क्षमता भी प्रदान करता है।

mysqldump का उपयोग करके माइग्रेशन प्रक्रिया

एक बार जब हम अपनी सीमाओं को जान लेते हैं तो इंस्टॉलेशन प्रक्रिया काफी सरल हो जाती है। यह काफी हद तक mysqldump का उपयोग करके मानक स्थापना और आयात से संबंधित है। MySQL एंटरप्राइज़ बैकअप टूल, MariaDB के साथ संगत नहीं है, इसलिए अनुशंसित तरीका mysqldump का उपयोग करना है। यहाँ उदाहरण प्रक्रिया Centos 7 और MariaDB 10.3 पर की गई है।

MySQL एंटरप्राइज़ सर्वर पर डंप बनाएँ

$ mysqldump --routines --events --triggers --single-transaction db1 > export_db1.sql

क्लीन यम कैश इंडेक्स

sudo yum makecache fast

मारियाडीबी 10.3 इंस्टॉल करें

sudo yum -y install MariaDB-server MariaDB-client

मारियाडीबी सेवा शुरू करें।

sudo systemctl start mariadb
sudo systemctl enable mariadb

Mysql_secure_installation चलाकर मारियाडीबी को सुरक्षित करें।

# mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

डंप आयात करें

Mysql -uroot -p
> tee import.log
> source export_db1.sql
Review the import log.

$vi import.log

परिवेश को परिनियोजित करने के लिए आप ClusterControl का भी उपयोग कर सकते हैं जिसमें खरोंच से परिनियोजित करने का विकल्प होता है।

ClusterControl डिप्लॉय मारियाडीबी

ClusterControl का उपयोग प्रतिकृति सेट करने या MySQL एंटरप्राइज़ संस्करण से बैकअप आयात करने के लिए भी किया जा सकता है।

प्रतिकृति का उपयोग कर माइग्रेशन प्रक्रिया

MySQL एंटरप्राइज और मारियाडीबी के बीच माइग्रेशन के लिए दूसरा तरीका प्रतिकृति प्रक्रिया का उपयोग करना है। मारियाडीबी संस्करण उन्हें MySQL डेटाबेस से दोहराने की अनुमति देते हैं - जिसका अर्थ है कि आप आसानी से MySQL डेटाबेस को मारियाडीबी में माइग्रेट कर सकते हैं। MySQL एंटरप्राइज़ संस्करण मारियाडीबी सर्वर से प्रतिकृति की अनुमति नहीं देंगे, इसलिए यह एकतरफा मार्ग है।

मारियाडीबी दस्तावेज पर आधारित:https://mariadb.com/kb/en/library/mariadb-vs- mysql-संगतता/. X, MySQL के दस्तावेज़ीकरण को संदर्भित करता है। संबंधित संसाधन MariaDB के लिए ClusterControl MariaDB में नया क्या है 10.4 MySQL को कैसे प्रबंधित करें - Oracle DBA के लिए

मारियाडीबी द्वारा बताए गए कुछ सामान्य नियम यहां दिए गए हैं।

  • MySQL 5.5 से MariaDB 5.5+ में प्रतिकृति बनाना बस काम करना चाहिए। आप चाहते हैं कि मारियाडीबी आपके MySQL सर्वर के समान या उच्चतर संस्करण हो।
  • एक MariaDB 10.2+ का उपयोग दास के रूप में करते समय, binlog_checksum को NONE पर सेट करना आवश्यक हो सकता है।
  • जीटीआईडी ​​के बिना MySQL 5.6 से MariaDB 10+ में प्रतिकृति बनाना काम करना चाहिए।
  • MySQL 5.6 से GTID, binlog_rows_query_log_events और इग्नोरेबल इवेंट्स के साथ प्रतिकृति मारियाडीबी 10.0.22 और मारियाडीबी 10.1.8 से शुरू होती है। इस मामले में, मारियाडीबी MySQL GTID और अन्य अनावश्यक घटनाओं को हटा देगा और इसके बजाय अपने स्वयं के GTID जोड़ देगा।

भले ही आप माइग्रेशन/कटओवर प्रक्रिया में प्रतिकृति का उपयोग करने की योजना नहीं बनाते हैं, एक अच्छा आत्मविश्वास-निर्माता है, अपने उत्पादन सर्वर को परीक्षण सैंडबॉक्स पर दोहराना है, और फिर उस पर अभ्यास करना है।

हमें उम्मीद है कि इस परिचयात्मक ब्लॉग पोस्ट ने आपको MySQL Enterprise Migration to MariaDB के मूल्यांकन और कार्यान्वयन प्रक्रिया को समझने में मदद की है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरा MySQL डेटाबेस डिस्क स्थान से बाहर है

  2. मारियाडीबी में प्राथमिक कुंजी वाली डुप्लिकेट पंक्तियों को वापस करने के 7 तरीके

  3. मारियाडीबी मैक्सस्केल 2.2 और मारियाडीबी सर्वर 10.3 . के साथ उपयोगकर्ता खाता प्रबंधन को सरल बनाएं

  4. सेंटोस 7 / आरएचईएल 7 . पर मारियाडीबी कैसे स्थापित करें

  5. मारियाडीबी JSON फ़ंक्शंस