WIUNIX ACADEMY
آموزش نصب و راهاندازی رپلیکیشن MariaDB در اوبونتو و دبیان
صفحهٔ 4 از 4؛ مراحل قبلی و پیشنیازها را پیش از ادامه مرور کن.
آموزش متناسب با محیط تو
کجا اجرا میکنی؟
سیستمعامل و نسخه را انتخاب کن تا مراحل، دستورها و راهحلها برای همان محیط نمایش داده شوند.
آموزش متناسب با مقادیر تو
تنظیمات این آموزش
مقادیر نمونه را برای محیط خودت تنظیم کن؛ متن و دستورهای مرتبط با هم تغییر میکنند. رمز، کلید خصوصی و توکن وارد نکن. مقادیر فقط در همین زبانه نگهداری میشوند و به سرور یا لینک اشتراکگذاری فرستاده نمیشوند. پیش از اجرا، DNS، گواهیها و سیاست شبکهٔ واقعی را بررسی کن.
ویرایش 3 مقدار این آموزش
قدم بعدی
شروع دوباره و کنترل هر دو مرحله
پس از تصمیم مرحلهٔ قبل، فقط روی رپلیکا اجرا کنید. شروع صریح کانال موجود به راهاندازی مجدد سرویس نیاز ندارد. سپس انتظار GTID و تطبیق داده را با مقدار واقعی سرور اصلی تکرار کنید؛ شروع موفق بهتنهایی برابری داده را ثابت نمیکند.
رپلیکا
(
set -euo pipefail
sudo mariadbd --verbose --help >/dev/null
sudo mariadb -e "START SLAVE; SHOW SLAVE STATUS\G; SELECT @@read_only,@@GLOBAL.gtid_slave_pos;"
)
هر دو رشته Yes و بیخطا، read_only برابر1؛ انتظار GTID و تطبیق داده دوباره موفق شود.
تغییر نقش بدون مهار نویسندهٔ قبلی امن نیست
تغییر نقش خارج از این راهنمای نصب است. جابهجایی برنامهریزیشده به بستن واقعی همهٔ نویسندهها، ثبت موقعیت نهایی، رسیدن قطعی رپلیکا، تغییر مسیر برنامه و برنامهٔ اتصال دوبارهٔ میزبان قدیمی نیاز دارد. در خرابی ناگهانی ممکن است تراکنش تأییدشده هم از دست برود. هرگز هر دو میزبان را نویسنده نکنید یا سرور قدیمی را بدون بررسی به مدار برنگردانید. خواندن رپلیکا میتواند قدیمی باشد؛ درخواست حساس به خواندن بلافاصله پس از نوشتن روی سرور اصلی بماند.
عیبیابی بر اساس مرحلهٔ خراب
فقط پنل مرتبط را روی میزبان مشخصشده اجرا کنید. لاگها اطلاعات داخلی دارند و پیش از اشتراک باید بررسی و پاکسازی شوند. نبود لاگ یا اختلاف ردیف با حدس GTID یا ردکردن خطا حل نمیشود؛ یک رپلیکای تازه و بذر سازگار لازم است.
سرویس بالا نمیآید
روی میزبان خراب، خطای گزینه، دسترسی کلید و آدرس bind را ببینید. با ویرایشگر مرحلهٔ همان میزبان اصلاح کنید و پنل بررسی و راهاندازی همان بخش را اجرا نمایید. نمونهٔ دوم را روی پوشهٔ دادهٔ مشترک روشن نکنید.
sudo mariadbd --verbose --help >/dev/null
sudo systemctl status mariadb --no-pager
sudo journalctl -u mariadb -n 60 --no-pager
ip -br addressدریافتکننده Yes نیست
روی رپلیکا، خطای DNS و TCP را از رمز/مبدأ اشتباه یا خطای گواهی جدا کنید. Last_IO_Error راهنماست. برای فایروال از پنل سرور اصلی استفاده کنید؛ تأیید TLS را خاموش نکنید و محدودهٔ حساب را باز نگذارید.
getent ahostsv4 db-primary.example.internal
sudo mariadb -e "SHOW SLAVE STATUS\G"
sudo -u mysql test -r /etc/mariadb/tls/ca.pem
sudo journalctl -u mariadb -n 60 --no-pagerتوقف اجرا یا پایان مهلت GTID
روی رپلیکا، ردیف تکراری1062، ردیف گمشده1032 یا ترتیب نامعتبر GTID نشانهٔ اختلاف داده یا بذر اشتباه است؛ خطا را رد نکنید. با روش توقف پایدار، نمونه را از خواندن برنامه جدا و برای بررسی حفظ کنید. پایان مهلت گاهی فقط از صف کار است؛ وضعیت هر دو رشته و دیسک را ببینید.
sudo mariadb -e "SHOW SLAVE STATUS\G; SELECT @@GLOBAL.gtid_slave_pos;"
df -h /var/lib/mariadb
df -i /var/lib/mariadb
sudo journalctl -u mariadb -n 60 --no-pagerلاگ لازم روی سرور اصلی منقضی شده
روی سرور اصلی، لاگهای موجود را با خطای1236 و موقعیت نسخهٔ اولیه مقایسه کنید. تاریخچه را بازنشانی نکنید و GTID تازه را به دادهٔ قدیمی وصل نکنید. نمونهٔ فعلی را نگه دارید و رپلیکای جدا با بذر جدید بسازید؛ افزایش نگهداری هم به ظرفیت دیسک نیاز دارد.
sudo mariadb -e "SHOW BINARY LOGS; SELECT @@GLOBAL.gtid_binlog_pos,@@binlog_expire_logs_seconds;"
df -h /var/lib/mariadbتمدید گواهی و تغییر اعتماد
اعتبار، نام و کلید سرور اصلی را با پنل گواهی بسنجید. در تعویض CA ابتدا زنجیرهٔ معتبر دورهٔ گذار به رپلیکا تحویل شود و تأیید سختگیرانه حفظ گردد. راهاندازی سرور اصلی قطعی اتصال دارد و به زمانبندی و بررسی دوبارهٔ داده نیاز دارد. کلید خصوصی را در تیکت عمومی نگذارید.
sudo openssl x509 -in /etc/mariadb/tls/server.pem -noout -dates -ext subjectAltName
sudo openssl x509 -in /etc/mariadb/tls/server.pem -checkend 604800 -nooutبهرهبرداری با پایش و مسئولیت مشخص
توقف هر رشته، خطای تکثیر، بیحرکتی موقعیت، رشد رلهلاگ، کمبود فضا، انقضای گواهی و شکست بکاپ یا بازیابی باید هشدار داشته باشد. حساب تکثیر به جریان باینریلاگ دسترسی دارد؛ رپلیکا را دارندهٔ مورد اعتماد داده بدانید. پخش خواندن فقط پس از سنجش تأخیر قابلقبول و آزمایش رفتار برنامه انجام شود. گام بعد، تمرین بازیابی و تغییر نقش با مهار نویسنده در آزمایشگاه جداست.
پشتوانهٔ این آموزش
منابع رسمی
وضعیت بررسی هر محیط بالای صفحه مشخص است؛ بررسی مستندات به معنی اجرای عملی همهٔ نسخهها نیست.
- MariaDB maintenance and security policy
- Current LTS maintenance releases
- Setting up replication
- MariaDB GTID
- mariadb-dump snapshot options
- Replication with verified TLS
- CHANGE MASTER TO
- Replication variables
- MariaDB read_only
- Ubuntu26.10 release notes
- Debian LTS coverage
- Ubuntu 26.10 MariaDB packages
- Ubuntu 26.04 MariaDB packages
- Ubuntu 24.04 MariaDB packages
- Debian 13 MariaDB packages
- Debian 12 MariaDB packages
ادامهٔ مسیر