بخش های سایت
انتخاب سردبیر:
- تنظیم مجدد کارخانه سامسونگ گلکسی A3
- بایوس: از دیسک بوت شود
- نحوه بوت کردن از دی وی دی یا درایو فلش "نصب" - راه اندازی بایوس در تصاویر
- چگونه زمان بندی رم را به درستی تنظیم کنیم؟
- نصب Navitel بر روی ناوبر و کامپیوتر
- رمز عبور سرور Minecraft را از طریق حساب شخصی خود و در مشتری تغییر دهید
- کابل اسپیکر چیست
- استفاده از رایانه به عنوان تلفن
- نحوه استفاده از گوشی هوشمند به عنوان مودم برای لپ تاپ
- نحوه اتصال تلویزیون دوم به گیرنده یا ستاپ باکس تلویزیون دیجیتال
تبلیغات
مبانی تکرار در MySQL. راه اندازی Replication پایگاه داده mysql نصب و پیکربندی Master |
روز همگی بخیر! امروز در مقاله ما به نمونه هایی از راه اندازی تکرار از نوع "master-slave" نگاه خواهیم کرد. کمی تئوریچرا تکرار مورد نیاز است؟ اول از همه، این یک شبکه ایمنی است در صورتی که سرور اصلی mysql از کار بیفتد، سپس می توانید به سرور برده تغییر دهید و به کار خود ادامه دهید. ثانیاً، این فرصتی است برای کاهش بار روی سرور اصلی Mysql با استفاده از سرور اصلی فقط برای نوشتن و انجام عملیات خواندن در سرور برده. تکثیر چگونه اتفاق می افتد؟ سرور اصلی Binlog می نویسد، که در آن عملیات انجام شده بر روی پایگاه داده (پایگاه های داده) را نشان می دهد و افست موجود در گزارش را از ابتدای آن تا رکورد فعلی (موقعیت) به خاطر می آورد. سرور برده به Master متصل می شود، مقادیر موقعیت را مقایسه می کند و تغییرات در گزارش را می خواند که از مقدار موقعیت خود شروع می شود و به مقدار موقعیت master ختم می شود. این تغییرات (دستورات) را در پایگاه داده در سرور برده اعمال می کند. نصب و پیکربندی Masterما my.cnf را در سرور اصلی تغییر می دهیم: Server-id = 1 - شناسه سرور را نشان می دهد log_bin = /var/log/mysql/mysql-bin.log - نام ورود و مسیر یک توضیح کوچک: به طور پیش فرض، جادوگر برای همه پایگاه داده ها binlog می نویسد، این را می توان با استفاده از "binlog-do-db" تغییر داد. هنگامی که از یک پایگاه داده خاص استفاده می شود، مقادیر در گزارش ها ثبت می شوند؛ تغییرات در پایگاه های داده دیگر ثبت نمی شوند.در اینجا می توانید تعیین کنید که چند روز لاگ ذخیره شود، حداکثر اندازه آنها چقدر است (پارامترهای expire_logs_days و max_binlog_size). کاربری را به MySQL اضافه کنید که تحت حقوق او Replication انجام خواهد شد: GRANT Replication Slave ON *.* TO user_name@ip_slave_server IDENTIFED by "password"; Replication Slave امتیازی است که به کاربر این امکان را میدهد که بیلوگها را بخواند. ip_slave_server - ip سروری که کاربر از آن متصل می شود. سرور mysql را راه اندازی مجدد کنید: /etc/init.d/mysql راه اندازی مجدد بیایید کار استاد را بررسی کنیم: نمایش وضعیت استاد؛ شما باید نام binlog و موقعیت آن را ببینید. هنگام اجرای دستورات در پایگاه داده، موقعیت تغییر خواهد کرد. راه اندازی بردهما تغییراتی را در فایل my.cnf ایجاد می کنیم: Server-id = 2 - شناسه سرور برده باید با شناسه اصلی متفاوت باشد. relay-log = /var/lib/mysql/mysql-relay-bin - مانند یک گزارش باینری، از مجموعهای از فایلهای شمارهدار حاوی رویدادهایی تشکیل شده است که تغییرات پایگاه داده را توصیف میکنند. relay-log-index = /var/lib/mysql/mysql-relay-bin.index - یک فایل فهرست که شامل نام همه فایلهای گزارش رله در حال استفاده است. replicate-do-db = پایگاه داده ای که تکرار خواهد شد. یادداشت مهم! هنگام سازماندهی یک cross db (زمانی که یک پایگاه داده استفاده می شود و داده ها در پایگاه داده دیگری به روز می شوند)، binlog-do-db نیازی به مشخص شدن در تنظیمات سرور اصلی ندارد، binlog-و باید برای همه پایگاه های داده نوشته شود، و در تنظیمات برده لازم است به جای آن از replicate-do استفاده شود -db specify replicate-wild-do-table=db_name.%, که در آن db_name نام پایگاه داده تکرار شده است.سرور mysql را راه اندازی مجدد کنید: /etc/init.d/mysql راه اندازی مجدد فعال کردن تکثیرSET GLOBAL read_only = روشن. بیایید به وضعیت استاد نگاه کنیم: نمایش وضعیت استاد؛ ما مقادیر File و Position را به خاطر می آوریم (یا بهتر است بگوییم آنها را یادداشت کنید). مقدار Position نباید اکنون تغییر کند. با استفاده از دستور mysqldump، Master را حذف می کنیم: Mysqldump -uname -ppassword db_master_name > dump_db، که در آن name نام کاربری است، رمز عبور رمز عبور، db_master_name نام پایگاه داده، dump_db نام dump است. پس از تکمیل Dump، اجازه نوشتن در پایگاه داده را می دهیم: SET GLOBAL read_only = OFF. دامپ را به Slave منتقل می کنیم و آن را گسترش می دهیم Mysql -uname -ppassword db_slave_name< dump_db راه اندازی Replication CHANGE MASTER TO MASTER_HOST = "Master ip"، MASTER_USER = "user_name"، MASTER_PASSWORD = "password"، MASTER_LOG_FILE = "log name"، MASTER_LOG_POS = موقعیت. master ip - ip سروری که Master در آن قرار دارد، نام کاربری - نام کاربری که در master ایجاد کردهایم، نام log - مقدار File در master هنگام ایجاد تخلیه پایگاه داده، موقعیت - مقدار موقعیت در استاد زمانی که تخلیه پایگاه داده ساخته شد. بیایید برده را شروع کنیم: شروع به برده؛ بیایید ببینیم همانندسازی چگونه پیش میرود: در Master: SHOW MASTER STATUS\G در Slave: SHOW SLAVE STATUS\G تنظیمات امنیتی در سرور اصلیپارامتر bind-address در /etc/mysql/my.cnf مشخص می کند که سرور mysql در زمان انتظار برای اتصال به چه آدرس IP گوش دهد. به طور معمول دارای مقدار bind-address = 127.0.0.1 است. اما پس از راه اندازی سرور برده، باید به اتصالات از سرور برده اجازه دهیم و اتصالات محلی باید کار کنند. Bind-address می تواند فقط از یک IP یا از همه اتصالات اجازه دهد. زیرا باید بیش از یک ip برای اتصال مشخص کنیم، خط را با bind-address = 127.0.0.1 کامنت می کنیم. اکنون سرور mysql اتصالات را از تمام آدرس های IP می پذیرد که بسیار خطرناک است. iptables به ما در حل این مشکل کمک می کند: Iptables -I INPUT -p tcp -s ip_slave_server-a --dport 3306 -j ACCEPT -ابتدا اجازه اتصال از آدرس IP سرور برده iptables -I INPUT -p tcp --dport 3306 -j DROP -سپس اتصال را از تمام آدرس های IP دیگر اکنون 2 سرور MySQL در حال اجرا در حالت master-slave خواهیم داشت که به طور قابل توجهی قابلیت اطمینان سایت را افزایش می دهد و برای برخی از سایت های دروپال به افزایش سرعت کار کمک می کند. در مقاله بعدی به تغییر حالت های master و slave در صورت خرابی سرور اصلی خواهیم پرداخت. من نسبتاً اخیراً با تکثیر سرورهای MySQL آشنا شدم و همانطور که آزمایشات مختلفی را با پیکربندی انجام می دادم، آنچه را که برای من مفید بود را یادداشت کردم. وقتی مطالب بسیار زیادی جمع آوری کردم، ایده نوشتن این مقاله به ذهنم خطور کرد. من سعی کرده ام نکات و راه حل هایی را برای برخی از اساسی ترین مسائلی که با آن مواجه شده ام جمع آوری کنم. من پیوندهایی به اسناد و سایر منابع در طول مسیر ارائه خواهم کرد. نمی توانم وانمود کنم که آن را به طور کامل توصیف می کنم، اما امیدوارم مقاله مفید باشد. یک مقدمه کوتاهReplication (از لاتین replico - تکرار می کنم) تکرار تغییرات داده ها از سرور اصلی پایگاه داده به یک یا چند سرور وابسته است. با سرور اصلی تماس می گیریم استادو وابسته - ماکت ها.تغییرات دادهای که روی Master اتفاق میافتد روی Replicaها تکرار میشوند (اما نه برعکس). بنابراین، پرس و جوهایی برای تغییر داده ها (INSERT، UPDATE، DELETE، و غیره) فقط بر روی Master اجرا می شوند، در حالی که پرس و جوهایی برای خواندن داده ها (به عبارت دیگر، SELECT) می توانند هم روی replica ها و هم بر روی Master اجرا شوند. فرآیند تکثیر روی یکی از ماکت ها بر عملکرد سایر ماکت ها تأثیر نمی گذارد و عملاً تأثیری بر کار استاد ندارد. همانندسازی با استفاده از لاگ های باینری که روی master نگهداری می شوند انجام می شود. آنها تمام پرس و جوهایی را که منجر به تغییرات در پایگاه داده می شوند (یا به طور بالقوه منجر می شوند) ذخیره می کنند (پرس و جوها به طور صریح ذخیره نمی شوند، بنابراین اگر می خواهید به آنها نگاه کنید، باید از ابزار mysqlbinlog استفاده کنید). binlog ها به replica ها منتقل می شوند (binlog بارگیری شده از Master "Relay binlog" نامیده می شود) و پرس و جوهای ذخیره شده با شروع از یک موقعیت خاص اجرا می شوند. درک این نکته مهم است که در حین تکرار، خود داده های تغییر یافته منتقل نمی شوند، بلکه فقط درخواست ها هستند که باعث تغییرات می شوند. با تکرار، محتویات پایگاه داده در چندین سرور کپی می شوند. چرا باید به تکرار متوسل شد؟ چند دلیل وجود دارد:
راه اندازی Replicationفرض کنید یک پایگاه داده MySQL در حال کار داریم که از قبل پر از داده و روشن شده است. و به یکی از دلایلی که در بالا توضیح داده شد، میخواهیم Replication سرور خود را فعال کنیم. داده های اولیه ما:
تنظیمات جادوگرحتماً شناسه سرور منحصر به فرد، مسیر لاگ های باینری و نام پایگاه داده برای تکرار را در قسمت ذکر کنید:شناسه سرور = 1 log-bin = /var/lib/mysql/mysql-bin replicate-do-db = testdb مطمئن شوید که فضای دیسک کافی برای لاگ های باینری دارید. بیایید کاربر replication را اضافه کنیم که تحت حقوق آن Replication انجام خواهد شد. امتیاز "Replication Slave" کافی است: برای اعمال تغییرات در پیکربندی، MySQL را ریبوت کنید: اگر همه چیز خوب پیش رفت، دستور "show master status" باید چیزی شبیه به این را نشان دهد: تنظیمات کپیبیایید شناسه سرور، نام پایگاه داده برای تکثیر و مسیر باینلاگ های رله را در قسمت پیکربندی مشخص کنیم، سپس MySQL را دوباره بارگیری کنیم:شناسه سرور = 2 relay-log = /var/lib/mysql/mysql-relay-bin relay-log-index = /var/lib/mysql/mysql-relay-bin.index replicate-do-db = testdb سرویس Root@replica# راه اندازی مجدد mysqld انتقال دادهدر اینجا باید پایگاه داده را برای نوشتن قفل کنیم. برای انجام این کار، میتوانید برنامهها را متوقف کنید یا از پرچم read_only روی Master استفاده کنید (توجه: این پرچم روی کاربران دارای امتیاز SUPER تأثیری ندارد). اگر جداول MyISAM داریم، بیایید جداول را نیز "فلاش" کنیم:mysql@master> FLUSH TABLES WITH READ LOCK. mysql@master> SET GLOBAL read_only = ON; بیایید وضعیت استاد را با دستور "show master status" ببینیم و مقادیر File و Position را به خاطر بسپاریم (پس از مسدود کردن موفقیت آمیز master، آنها نباید تغییر کنند): پایگاه داده را تخلیه می کنیم و پس از اتمام عملیات، قفل master را حذف می کنیم: ما Dump را به Replica منتقل می کنیم و داده ها را از آن بازیابی می کنیم. بیایید ببینیم که تکرار با دستور "show Slave status" چگونه پیش می رود: اکنون جالب ترین ارزش ها را برجسته کرده ام. اگر تکرار با موفقیت شروع شود، مقادیر آنها باید تقریباً مشابه فهرست باشد (توضیح دستور "Show Slave status" را در مستندات ببینید). مقدار Seconds_Behind_Master می تواند هر عدد صحیحی باشد. از طریق این مراحل ساده ما یک ماکت به دست می آوریم که داده های آن با داده های اصلی یکسان است.
اضافه کردن ماکتفرض کنید ما قبلاً یک استاد کار و یک ماکت داریم و باید یکی دیگر به آنها اضافه کنیم. انجام این کار حتی ساده تر از اضافه کردن اولین نسخه به Master است. و آنچه بسیار زیباتر است این است که نیازی به توقف استاد برای این نیست.ابتدا اجازه دهید MySQL را روی نسخه دوم پیکربندی کنیم و مطمئن شویم که پارامترهای لازم را در پیکربندی وارد کرده ایم: شناسه سرور = 3 replicate-do-db = testdb حالا بیایید تکرار را روی ماکت اول متوقف کنیم: ماکت به طور معمول به کار خود ادامه می دهد، اما داده های موجود در آن دیگر جاری نخواهد بود. بیایید به وضعیت نگاه کنیم و موقعیت اصلی را که ماکت قبل از توقف تکرار به آن رسیده است، به خاطر بسپاریم: مقادیری که ما نیاز داریم Master_Log_File و Exec_Master_Log_Pos خواهند بود: بیایید یک Dump پایگاه داده ایجاد کنیم و همانند سازی را در اولین ماکت ادامه دهیم: بیایید داده ها را از Dump روی ماکت دوم بازیابی کنیم. سپس Replication را فعال کنید: مقادیر MASTER_LOG_FILE و MASTER_LOG_POS به ترتیب مقادیر Master_Log_File و Exec_Master_Log_Pos هستند که از نتیجه دستور "show slave status" در اولین ماکت به دست می آیند. ادغام کپی هاگاهی اوقات وضعیت زیر ایجاد می شود: دو پایگاه داده روی Master وجود دارد که یکی از آنها روی یک ماکت و دیگری روی دیگری تکرار می شود. چگونه می توان تکرار دو پایگاه داده را روی هر دو کپی بدون ریختن آنها روی Master یا خاموش کردن آن تنظیم کرد؟ خیلی ساده، با استفاده از دستور "start slave while".بنابراین، ما یک استاد با پایگاه داده testdb1 و testdb2 داریم که به ترتیب روی replicas replica-1 و replica-2 تکرار می شوند. بیایید همانند سازی هر دو پایگاه داده را بدون توقف Master به replica-1 پیکربندی کنیم. با دستور Replica-2 را متوقف کنید و موقعیت Master را به خاطر بسپارید: mysql@replica-2> STOP SLAVE. mysql@replica-2> نشان دادن وضعیت برده\G Master_Log_File: mysql-bin.000015 Exec_Master_Log_Pos: 231 بیایید یک Dump از پایگاه داده testdb2 ایجاد کنیم و تکرار را از سر بگیریم (این کار دستکاری ها را با replica-2 کامل می کند). ما Dump را به replica-1 بازیابی می کنیم. وضعیت روی replica-1 به این صورت است: پایگاه داده testdb1 در یک موقعیت اصلی قرار دارد و به تکرار ادامه میدهد، پایگاه داده testdb2 از یک تخلیه از یک موقعیت دیگر بازیابی شده است. بیایید آنها را همگام کنیم. بیایید تکرار را متوقف کنیم و موقعیت استاد را به خاطر بسپاریم: بیایید مطمئن شویم که در پیکربندی برای replica-1 نام پایگاه داده دوم در بخش نشان داده شده است: بیایید MySQL را مجددا راه اندازی کنیم تا تغییرات در پیکربندی اعمال شود. به هر حال، امکان راه اندازی مجدد MySQL بدون توقف تکرار وجود داشت - از گزارشی که می دانیم در چه موقعیتی در تکثیر اصلی متوقف شده است. حالا بیایید از موقعیتی که replica-2 در آن مکث شده بود به موقعیتی که فقط تکرار را متوقف کردیم، تکرار کنیم: به محض اینکه replica به موقعیت مشخص شده در بخش while برسد، Replication به پایان می رسد، پس از آن هر دو پایگاه داده ما با موقعیت اصلی یکسانی مطابقت خواهند داشت (که در آن ما تکرار را در replica-1 متوقف کردیم). بیایید از این مطمئن شویم: بیایید نام هر دو پایگاه داده را به پیکربندی replica-1 در بخش اضافه کنیم: مهم: هر پایگاه داده باید در یک خط جداگانه فهرست شود. استاد قلعه سازی و ماکتممکن است لازم باشد یک ماکت را به حالت اصلی تغییر دهید، به عنوان مثال، در صورت خرابی اصلی یا هنگام انجام کارهای فنی روی آن. برای امکان پذیر ساختن چنین سوئیچ، باید ماکت را مانند Master پیکربندی کنید یا آن را بسازید استاد منفعل.بیایید ثبت باینری (علاوه بر binlog های رله) را در پیکربندی در بخش فعال کنیم: و یک کاربر برای تکرار اضافه کنید: مستر غیرفعال مانند یک ماکت معمولی همانندسازی را انجام می دهد، اما علاوه بر این، منطق های باینری ایجاد می کند - یعنی می توانیم از آن همانندسازی را شروع کنیم. بیایید این را با دستور "show master status" تأیید کنیم: حال برای اینکه Master Passive را به حالت Active تغییر دهید، باید Replication را روی آن متوقف کنید و Replication را در Master Active سابق فعال کنید. برای اطمینان از اینکه داده ها در زمان سوئیچ از بین نمی روند، استاد فعالباید قفل نوشتن باشد. نتیجهما کمی در مورد نحوه راه اندازی Replication در MySQL و انجام برخی از عملیات های اساسی یاد گرفته ایم. متأسفانه سؤالات مهم زیر از حوصله این مقاله خارج است:
با تشکر از توجه شما! برچسب ها: اضافه کردن برچسب همانندسازی مکانیزمی است برای همگام سازی محتویات چندین نسخه از یک شی. این فرآیند به کپی کردن داده ها از یک منبع به بسیاری دیگر و بالعکس اشاره دارد. نام گذاری ها:
برای تنظیم Replication در MySQL، باید دنباله ای از اقدامات توضیح داده شده در زیر را دنبال کنید، اما این یک جزم نیست و پارامترها می توانند بسته به شرایط تغییر کنند. در سرور اصلی، فایل my.cnf را ویرایش کنید و خطوط زیر را به بخش mysqld اضافه کنید: Server-id = log-bin = mysql-bin log-bin-index = mysql-bin.index log-error = mysql-bin.err relay-log = relay-bin relay-log-info-file = relay-bin. اطلاعات relay-log-index = relay-bin.index expire_logs_days=7 binlog-do-db =
در Slave، فایل my.cnf را ویرایش کنید و خطوط زیر را به بخش mysqld اضافه کنید: Server-id = master-host = master master-user = replication master-password = master-port = 3306 relay-log = relay-bin relay-log-info-file = relay-log.info relay-log-index = relay-log.index replicate-do-db = در سرور اصلی، کاربر replication را با حقوق تکرار داده اضافه کنید: اعطای SLAVE REPLICATION ON *.* به "replication"@"replica" شناسایی شده توسط "password" بیایید پایگاههای داده تکراری روی سرور اصلی را از تغییر دادهها، به صورت برنامهنویسی یا با استفاده از عملکرد MySQL مسدود کنیم: Mysql@master> FLUSH TABLES WITH READ LOCK. mysql@master> SET GLOBAL read_only = ON; برای باز کردن قفل، از دستور زیر استفاده کنید: Mysql@master> SET GLOBAL read_only = OFF. بیایید از تمام پایگاه های داده روی سرور اصلی (یا آنهایی که نیاز داریم) نسخه پشتیبان تهیه کنیم: Root@master# tar -czf mysqldir.tar.gz /var/lib/mysql/ یا با استفاده از ابزار mysqldump: Root@master# mysqldump -u root -p --lock-all-tables > dbdump.sql بیایید هر دو سرور را متوقف کنیم (در برخی موارد می توانید بدون آن کار کنید): Root@master# mysqlamdin -u root -p shutdown root@replica# mysqlamdin -u root -p shutdown بیایید با کپی کردن دایرکتوری، پایگاه داده های تکراری را در سرور برده بازیابی کنیم. قبل از شروع تکرار، پایگاه های داده باید یکسان باشند: Root@replica# سی دی /var/lib/mysql root@replica# tar -xzf mysqldir.tar.gz یا عملکرد mysql، پس نیازی به توقف mysql در سرور برده وجود نداشت: Root@replica# mysql -u root -p< dbdump.sql بیایید mysql را بر روی سرور اصلی (و سپس در سرور برده، در صورت لزوم) اجرا کنیم: Root@master# /etc/init.d/mysql start root@replica# /etc/init.d/mysql start بیایید عملکرد سرورهای master و slave را بررسی کنیم: Mysql@replica> start slave. mysql@replica> نشان دادن وضعیت برده\G mysql@master> نشان دادن وضعیت استاد\G در سرور برده، گزارشهای موجود در فایل master.info را بررسی کنید، باید شامل درخواستهایی برای تغییر دادهها در پایگاه داده باشد. بنابراین این فایل باینری ابتدا باید به فرمت متن تبدیل شود: Root@replica# mysqlbinlog master.info > master_info.sql در صورت بروز خطا، می توانید از دستورات زیر استفاده کنید: Mysql@replica> stop slave. mysql@replica> RESET SLAVE. mysql@master> RESET MASTER. و تمام مراحل را که با مسدود کردن پایگاه های داده شروع می شود، تکرار کنید. برای افزودن داغ سرورهای تکراری می توانید از نحو زیر استفاده کنید: Mysql@replica> SHOW SLAVE STATUS\G mysql@master> SHOW MASTER STATUS\G mysql@replica-2> CHANGE MASTER TO MASTER_HOST = "master", MASTER_USER =Replication, MASTER_PASSWORDAS = "MASTER_LOG_sword" bin.000004 "، MASTER_LOG_POS = 155; mysql@replica-2> START SLAVE. اطلاعات وضعیت ها موقعیت و نام فایل گزارش فعلی را نشان می دهد. با تکثیر ناهمزمان، بهروزرسانی از یک ماکت پس از مدتی به جای یک تراکنش، به دیگران منتشر میشود. بنابراین، تکثیر ناهمزمان یک تأخیر یا زمان انتظار را معرفی میکند، که طی آن ممکن است تکثیرهای تکی به طور مؤثر یکسان نباشند. اما این نوع تکرار جنبههای مثبتی نیز دارد: سرور اصلی نگران همگامسازی دادهها نیست؛ میتوانید پایگاه داده (به عنوان مثال، برای ایجاد یک نسخه پشتیبان) را در یک ماشین برده بدون مشکل برای کاربران مسدود کنید. فهرست منابع استفاده شده
هنگام استفاده از هر گونه مطالب از سایت به طور کامل یا جزئی، باید به طور واضح پیوندی را به عنوان منبع ذکر کنید. این روزها، پایگاه داده MySQL تقریباً در همه جا ممکن استفاده می شود. تصور وب سایتی که بدون MySQL کار کند غیرممکن است. البته استثناهایی هم وجود دارد، اما بخش عمده ای از بازار در اختیار این سیستم پایگاه داده است. و محبوب ترین پیاده سازی MariaDB است. هنگامی که پروژه کوچک است، یک سرور برای اجرای آن کافی است که همه سرویس ها روی آن قرار دارند: وب سرور، سرور پایگاه داده و سرور ایمیل. اما هنگامی که پروژه بزرگتر می شود، ممکن است لازم باشد برای هر سرویس یک سرور جداگانه اختصاص دهید یا حتی یک سرویس را به چندین سرور تقسیم کنید، به عنوان مثال MySQL. به منظور حفظ یک وضعیت همزمان پایگاه های داده در همه سرورها به طور همزمان، باید از Replication استفاده کنید. در این مقاله به نحوه پیکربندی تکرار MySQL با استفاده از MariaDB Galera Cluster خواهیم پرداخت. MARIADB GALERA چیست؟MariaDB Galera یک سیستم خوشه اصلی برای MariaDB است. با شروع با MariaDB 10.1، نرم افزار Galera Server و MariaDB Server در یک بسته ارائه می شوند، بنابراین شما بلافاصله تمام نرم افزارهای مورد نیاز خود را دریافت می کنید. در حال حاضر، MariaDB Galera فقط می تواند با موتورهای پایگاه داده InnoDB و XtraDB کار کند. یکی از مزایای استفاده از Replication، اضافه شدن افزونگی به پایگاه داده سایت است. اگر یکی از پایگاه داده ها خراب شد، می توانید بلافاصله به دیگری تغییر دهید. همه سرورها یک حالت هماهنگ با یکدیگر را حفظ می کنند و اطمینان حاصل می کنند که هیچ تراکنش گم شده ای وجود ندارد. ویژگی های کلیدی MariaDB Galera:
پیکربندی تکرار MYSQLدر این آموزش ما از Ubuntu 16.04 و MariaDB نسخه 10.1 به عنوان مثال استفاده خواهیم کرد. قبل از شروع، سیستم خود را به طور کامل به روز کنید: sudo apt-get update -y از آنجایی که ما پیکربندی خود را در چندین گره مستقر خواهیم کرد، باید عملیات به روز رسانی را روی همه آنها انجام دهیم. اگر سرور پایگاه داده MariaDB قبلاً نصب نشده است، باید آن را نصب کنید. ابتدا مخزن و کلید آن را اضافه کنید: sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository "deb http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" sudo apt-get update -y هنگامی که به روز رسانی لیست بسته کامل شد، MariaDB را با دستور نصب کنید: sudo apt نصب mariadb-server rsync -y برای انجام همگام سازی مستقیم به بسته rsync نیاز داریم. پس از اتمام نصب، باید پایگاه داده را با استفاده از اسکریپت mysql_secure_installation ایمن کنید: sudo mysql_secure_installation به طور پیش فرض، ورود مهمان مجاز است، یک پایگاه داده آزمایشی وجود دارد و هیچ رمز عبوری برای کاربر اصلی تنظیم نشده است. همه اینها باید اصلاح شود. ادامه مطلب را در مقاله بخوانید. به طور خلاصه، شما باید به چند سوال پاسخ دهید: رمز عبور فعلی را برای root وارد کنید (برای هیچکدام وارد کنید): وقتی همه چیز آماده شد، می توانید به راه اندازی گره هایی که پایگاه داده های mysql بین آنها تکثیر می شود، ادامه دهید. ابتدا، بیایید راه اندازی اولین گره را بررسی کنیم. شما می توانید تمام تنظیمات را در my.cnf قرار دهید، اما بهتر است یک فایل جداگانه برای این اهداف در پوشه /etc/mysql/conf.d/ ایجاد کنید. این خطوط را اضافه کنید:
در اینجا آدرس 192.168.56.101 آدرس گره فعلی است. سپس به سرور دیگری بروید و همان فایل را در آنجا ایجاد کنید: sudo vi /etc/mysql/conf.d/galera.cnf
به طور مشابه، آدرس گره در اینجا 192.168.0.103 است. بیایید روی یک مثال با دو سرور تمرکز کنیم، زیرا این برای نشان دادن عملکرد سیستم کافی است و می توانید با وارد کردن یک آدرس IP اضافی در فیلد wsrep_cluster_address یک سرور دیگر اضافه کنید. حالا بیایید ببینیم که مقادیر پارامترهای اصلی به چه معنا هستند و به راه اندازی ادامه دهیم:
تنظیمات تکرار MySQL تقریباً کامل شده است. آخرین مرحله باقی مانده قبل از راه اندازی، راه اندازی فایروال است. ابتدا ابزار مدیریت قوانین iptables را در اوبونتو - UFW فعال کنید: سپس پورت های زیر را باز کنید: sudo ufw allow 3306/tcp راه اندازی MARIADB GALERAپس از راه اندازی موفقیت آمیز تمام گره ها، تنها کاری که باید انجام دهیم این است که خوشه Galera را در اولین گره راه اندازی کنیم. قبل از اینکه بتوانیم کلاستر را شروع کنیم، باید مطمئن شوید که سرویس MariaDB در همه سرورها متوقف شده است: sudo galera_new_cluster با دستور زیر می توانید بررسی کنید که خوشه در حال اجرا است یا خیر و چند ماشین به آن متصل شده است: حالا فقط یک ماشین وجود دارد، حالا به سرور دیگری بروید و یک گره را در آنجا اجرا کنید: sudo systemctl mysql را شروع کنید با دستور زیر می توانید بررسی کنید که آیا راه اندازی موفقیت آمیز بوده است یا خیر و آیا خطایی وجود داشته است: وضعیت sudo systemctl mysql سپس با اجرای همین دستور، بررسی می کنید که گره جدید به طور خودکار به خوشه اضافه شده است: mysql -u root -p -e "نمایش وضعیت مانند "wsrep_cluster_size"" برای بررسی نحوه عملکرد تکرار، کافی است یک پایگاه داده در اولین گره ایجاد کنید و ببینید که آیا واقعاً به تمام گره های دیگر اضافه شده است یا خیر: mysql -u root -p MariaDB [(هیچکدام)]> ایجاد پایگاه داده test_db; mysql -u root -p MariaDB [(هیچ)]> نمایش پایگاه داده. همانطور که می بینید، پایگاه داده در واقع به طور خودکار در ماشین دیگری ظاهر می شود. تکثیر داده های Mysql کار می کند. |
خواندن: |
---|
جدید
- بایوس: از دیسک بوت شود
- نحوه بوت کردن از دی وی دی یا درایو فلش "نصب" - راه اندازی بایوس در تصاویر
- چگونه زمان بندی رم را به درستی تنظیم کنیم؟
- نصب Navitel بر روی ناوبر و کامپیوتر
- رمز عبور سرور Minecraft را از طریق حساب شخصی خود و در مشتری تغییر دهید
- کابل اسپیکر چیست
- استفاده از رایانه به عنوان تلفن
- نحوه استفاده از گوشی هوشمند به عنوان مودم برای لپ تاپ
- نحوه اتصال تلویزیون دوم به گیرنده یا ستاپ باکس تلویزیون دیجیتال
- بهترین نت بوک ها با توجه به نظرات مشتریان