MARIADBD-MULTI(1) MariaDB Database System MARIADBD-MULTI(1)

mariadbd-multi - مدیریت چندین سرور ماریا‌دی‌بی (MariaDB)

mariadbd-multi [options] {start|stop|report} [GNR[,GNR] ...]

برنامهٔ mariadbd-multi برای مدیریت چندین فرایند mariadbd طراحی شده است که به اتصالات روی فایل‌های سوکت یونیکس و درگاه‌های TCP/IP مختلف گوش می‌دهند. این برنامه می‌تواند سرورها را راه‌اندازی یا متوقف کند، یا وضعیت فعلی آن‌ها را گزارش دهد.

برنامهٔ mariadbd-multi به دنبال گروه‌هایی با نام [mariadbdN] در my.cnf (یا در فایل مشخص‌شده توسط گزینهٔ --config-file) می‌گردد. N می‌تواند هر عدد صحیح مثبتی باشد. از این عدد در ادامه به عنوان شماره گروه گزینه‌ها یا GNR یاد می‌شود. شماره گروه‌ها، گروه‌های گزینه‌ها را از یکدیگر متمایز می‌کنند و به عنوان آرگومان به mariadbd-multi داده می‌شوند تا مشخص شود قصد راه‌اندازی، توقف یا دریافت گزارش وضعیت کدام سرورها را دارید. گزینه‌های فهرست‌شده در این گروه‌ها همان گزینه‌هایی هستند که در گروه [mariadbd] برای راه‌اندازی mariadbd استفاده می‌کنید. با این حال، هنگام استفاده از چندین سرور، ضروری است که هر کدام از مقادیر اختصاصی خود برای گزینه‌هایی مانند فایل سوکت یونیکس و شماره درگاه TCP/IP استفاده کنند.

برای فراخوانی mariadbd-multi، از نحو زیر استفاده کنید:

shell> mariadbd-multi [options] {start|stop|report} [GNR[,GNR] ...]

دستورهای start، stop و report مشخص می‌کنند چه عملیاتی انجام شود. می‌توانید عملیات تعیین‌شده را بسته به فهرست GNR که پس از نام گزینه می‌آید، برای یک سرور یا چندین سرور اجرا کنید. اگر هیچ فهرستی ارائه نشود، mariadbd-multi عملیات را برای تمامی سرورهای موجود در فایل گزینه‌ها انجام می‌دهد.

هر مقدار GNR نشان‌دهنده یک شماره گروه گزینه یا بازه‌ای از شماره گروه‌ها است. این مقدار باید عددی باشد که در انتهای نام گروه در فایل گزینه‌ها قرار دارد. برای مثال، GNR برای گروهی به نام [mariadbd17] برابر با 17 است. برای تعیین بازه‌ای از اعداد، عدد اول و آخر را با خط تیره از هم جدا کنید. مقدار GNR به صورت 10-13 نشان‌دهنده گروه‌های [mariadbd10] تا [mariadbd13] است. چندین گروه یا بازه گروه را می‌توان در خط فرمان مشخص کرد که با کاما از هم جدا می‌شوند. در فهرست GNR نباید هیچ نویسه فاصله‌ای (فاصله یا تب) وجود داشته باشد؛ هر چیزی پس از نویسه فاصله نادیده گرفته می‌شود.

این دستور یک سرور منفرد را با استفاده از گروه گزینه‌های [mariadbd17] راه‌اندازی می‌کند:

shell> mariadbd-multi start 17

این دستور چندین سرور را با استفاده از گروه‌های گزینه‌های [mariadbd8] و [mariadbd10] تا [mariadbd13] متوقف می‌کند:

shell> mariadbd-multi stop 8,10-13

برای مشاهده نمونه‌ای از نحوه تنظیم فایل گزینه‌ها، از این دستور استفاده کنید:

shell> mariadbd-multi --example

برنامهٔ mariadbd-multi فایل‌های گزینه‌ها را به شرح زیر جستجو می‌کند:

•با --no-defaults، هیچ فایل گزینه‌ای خوانده نمی‌شود.
•با --defaults-file=file_name، تنها فایل نام‌برده خوانده می‌شود.
•در غیر این صورت، فایل‌های گزینه‌ها در فهرست مکان‌های استاندارد خوانده می‌شوند، از جمله هر فایلی که با گزینهٔ --defaults-extra-file=file_name مشخص شده باشد (در صورت ارائه). (اگر این گزینه چندین بار داده شود، آخرین مقدار استفاده خواهد شد.)

در فایل‌های گزینه‌های خوانده‌شده، گروه‌های گزینه‌های [mariadbd-multi] و [mariadbdN] جستجو می‌شوند. گروه [mariadbd-multi] می‌تواند برای گزینه‌های مربوط به خود mariadbd-multi استفاده شود. گروه‌های [mariadbdN] می‌توانند برای گزینه‌های ارسال‌شده به نمونه‌های خاص mariadbd به کار روند.

گروه‌های [mariadbd] یا [mariadbd_safe] می‌توانند برای گزینه‌های مشترکی استفاده شوند که توسط تمام نمونه‌های mariadbd یا mariadbd_safe خوانده می‌شوند. می‌توانید گزینهٔ --defaults-file=file_name را برای استفاده از فایل پیکربندی متفاوت برای آن نمونه مشخص کنید که در این صورت گروه‌های [mariadbd] یا [mariadbd_safe] از همان فایل برای آن نمونه استفاده خواهند شد.

برنامهٔ mariadbd-multi از گزینه‌های زیر پشتیبانی می‌کند.

•--help

نمایش پیام راهنما و خروج.

•--example

نمایش یک نمونه فایل گزینه‌ها.

•--log=file_name

تعیین نام فایل گزارش (لاگ). اگر فایل از قبل وجود داشته باشد، خروجی گزارش به انتهای آن افزوده می‌شود.

•--mariadb-admin=prog_name

فایل باینری mariadb-admin که برای متوقف کردن سرورها استفاده می‌شود.

•--mariadbd=prog_name

فایل باینری mariadbd که باید استفاده شود. توجه داشته باشید که می‌توانید mariadbd_safe را نیز به عنوان مقدار این گزینه مشخص کنید. اگر از mariadbd_safe برای راه‌اندازی سرور استفاده می‌کنید، می‌توانید گزینه‌های mariadbd یا ledir را در گروه گزینه‌های مربوط به [mariadbdN] بگنجانید. این گزینه‌ها نام سروری که mariadbd_safe باید راه‌اندازی کند و نام مسیر دایرکتوری محل قرارگیری سرور را مشخص می‌کنند. (توضیحات این گزینه‌ها را در mariadbd_safe(1) ببینید.) مثال:

[mariadbd38]
mariadbd = mariadbd-debug
ledir  = /opt/local/mysql/libexec
•--no-log

چاپ اطلاعات گزارش در stdout به جای فایل گزارش. به طور پیش‌فرض، خروجی به فایل گزارش فرستاده می‌شود.

•--password=password

رمز عبور حساب ماریا‌دی‌بی هنگام فراخوانی mariadb-admin. توجه داشته باشید که برخلاف سایر برنامه‌های ماریا‌دی‌بی، مقدار رمز عبور برای این گزینه اختیاری نیست.

•--silent

حالت بی‌صدا؛ غیرفعال کردن هشدارها.

•--tcp-ip

اتصال به سرور(های) ماریا‌دی‌بی از طریق درگاه TCP/IP به جای سوکت یونیکس. این گزینه بر عملیات متوقف کردن و گزارش‌گیری تأثیر می‌گذارد. اگر فایل سوکت مفقود باشد، سرور ممکن است همچنان در حال اجرا باشد اما تنها از طریق درگاه TCP/IP قابل دسترسی باشد. به طور پیش‌فرض اتصال از طریق سوکت یونیکس انجام می‌شود. این گزینه بر عملیات stop و report تأثیرگذار است.

•--user=user_name

نام کاربری حساب ماریا‌دی‌بی هنگام فراخوانی mariadb-admin.

•--verbose

توضیحات و گزارش‌های دقیق‌تر و مفصل‌تر.

•--version

نمایش اطلاعات نسخه و خروج.

•--wsrep-new-cluster

راه‌اندازی اولیه (Bootstrap) یک کلاستر.

چند نکته دربارهٔ mariadbd-multi:

•بسیار مهم: پیش از استفاده از mariadbd-multi اطمینان حاصل کنید که معانی گزینه‌های ارسالی به سرورهای mariadbd و دلیل نیاز خود به فرایندهای مجزای mariadbd را به درستی می‌دانید. از خطرات استفاده از چندین سرور mariadbd با یک دایرکتوری داده یکسان آگاه باشید. همواره از دایرکتوری‌های داده مجزا استفاده کنید، مگر اینکه دقیقاً بدانید چه کار می‌کنید. راه‌اندازی چندین سرور با یک دایرکتوری داده یکسان، در یک سیستم چندریسمانی عملکرد اضافی به شما نمی‌دهد.
•مهم: مطمئن شوید دایرکتوری داده برای هر سرور به طور کامل برای حساب یونیکسی که فرایند خاص mariadbd تحت آن راه‌اندازی می‌شود، قابل دسترسی است. برای این منظور از حساب کاربری root یونیکس استفاده نکنید، مگر اینکه بدانید دقیقاً چه کار می‌کنید.
•اطمینان حاصل کنید که حساب کاربری ماریا‌دی‌بی که برای متوقف کردن سرورهای mariadbd (با برنامهٔ mariadbadmin) استفاده می‌شود، در هر سرور دارای نام کاربری و رمز عبور یکسانی باشد. همچنین، مطمئن شوید که این حساب دارای دسترسی SHUTDOWN است. اگر سرورهایی که می‌خواهید مدیریت کنید، نام‌های کاربری یا رمزهای عبور متفاوتی برای حساب‌های مدیریتی دارند، می‌توانید روی هر سرور حسابی با نام کاربری و رمز عبور یکسان بسازید. برای مثال، می‌توانید با اجرای دستورهای زیر برای هر سرور، یک حساب مشترک multi_admin تنظیم کنید:
shell> mariadb -u root -S /tmp/mariadb.sock -p
Enter password:
mariadb> GRANT SHUTDOWN ON *.*
    -> TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';

هنگام اتصال به هر سرور، پارامترهای اتصال را متناسب با آن تغییر دهید. توجه داشته باشید که بخش نام میزبان در نام حساب کاربری باید امکان اتصال به عنوان multi_admin را از میزبانی که می‌خواهید mariadbd-multi را روی آن اجرا کنید، فراهم کند.

•فایل سوکت یونیکس و شماره درگاه TCP/IP برای هر mariadbd باید متفاوت باشد. (یا اگر میزبان دارای چندین آدرس شبکه است، می‌توانید از گزینهٔ --bind-address استفاده کنید تا سرورهای مختلف به رابط‌های متفاوتی گوش دهند.)
•گزینهٔ --pid-file بسیار مهم است اگر از mariadbd-safe برای راه‌اندازی mariadbd استفاده می‌کنید (برای مثال، --mariadbd=mariadbd-safe). هر mariadbd باید فایل شناسه فرایند (PID) جداگانه داشته باشد. مزیت استفاده از mariadbd-safe به جای mariadbd این است که mariadbd-safe فرایند mariadbd خود را پایش کرده و در صورت متوقف شدن فرایند به دلیل دریافت سیگنال از طریق kill -9 یا به دلایل دیگر مانند خطای حافظه (segmentation fault)، آن را دوباره راه‌اندازی می‌کند. لطفاً توجه داشته باشید اسکریپت mariadbd-safe ممکن است نیاز به این داشته باشد که آن را از مکان مشخصی راه‌اندازی کنید. یعنی ممکن است لازم باشد پیش از اجرای mariadbd-multi مکان خود را به دایرکتوری خاصی تغییر دهید. اگر در راه‌اندازی مشکلی دارید، لطفاً اسکریپت mariadbd-safe را بررسی کنید؛ به‌ویژه خطوط زیر را:
----------------------------------------------------------------
MY_PWD=`pwd`
# Check if we are starting this relative (for the binary release)
if test -d $MY_PWD/data/mariadb -a \
   -f ./share/mariadb/english/errmsg.sys -a \
   -x ./bin/mariadbd
----------------------------------------------------------------

آزمایشی که با این خطوط انجام می‌شود باید موفق باشد، در غیر این صورت ممکن است با مشکل مواجه شوید. راهنمای mariadbd-safe(1) را ببینید.

•ممکن است بخواهید از گزینهٔ --user برای mariadbd استفاده کنید، اما برای این کار لازم است اسکریپت mariadbd-multi را به عنوان کاربر root یونیکس اجرا کنید. قرار دادن این گزینه در فایل گزینه‌ها مشکلی ندارد؛ اگر مدیر سیستم نباشید و فرایندهای mariadbd تحت حساب یونیکس خود شما شروع شوند، صرفاً یک هشدار دریافت خواهید کرد.

مثال زیر نشان می‌دهد که چگونه می‌توانید یک فایل گزینه‌ها را برای استفاده با mariadbd-multi تنظیم کنید. ترتیبی که برنامه‌های mariadbd راه‌اندازی یا متوقف می‌شوند به ترتیبی بستگی دارد که در فایل گزینه‌ها ظاهر می‌شوند. شماره گروه‌ها نیازی نیست که یک دنبالهٔ بدون وقفه تشکیل دهند. گروه‌های [mariadbdN] اول و پنجم عمداً در مثال حذف شده‌اند تا نشان داده شود که می‌توان “شکاف‌هایی” در فایل گزینه‌ها داشت. این به شما انعطاف‌پذیری بیشتری می‌دهد.

# This file should probably be in your home dir (~/.my.cnf)
# or /etc/my.cnf
# Version 2.1 by Jani Tolonen
[mariadbd-multi]
mariadbd     = /usr/local/bin/mariadbd-safe
mariadb-admin = /usr/local/bin/mariadb-admin
user       = multi_admin
password   = multipass
[mariadbd2]
socket     = /tmp/mariadb.sock2
port       = 3307
pid-file   = /usr/local/mysql/var2/hostname.pid2
datadir    = /usr/local/mysql/var2
language   = /usr/local/share/mariadb/english
user       = john
[mariadbd3]
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/var3/hostname.pid3
datadir    = /usr/local/mysql/var3
language   = /usr/local/share/mariadb/swedish
user       = monty
[mariadbd4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/var4/hostname.pid4
datadir    = /usr/local/mysql/var4
language   = /usr/local/share/mariadb/estonia
user       = tonu
[mariadbd6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/var6/hostname.pid6
datadir    = /usr/local/mysql/var6
language   = /usr/local/share/mariadb/japanese
user       = jani

Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2025 MariaDB Foundation

این مستندات نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط پروانه عمومی همگانی گنو (GNU GPL) منتشرشده توسط بنیاد نرم‌افزارهای آزاد؛ نگارش ۲ بازتوزیع نموده یا تغییر دهید.

این مستندات با این امید توزیع شده که مفید واقع شود، اما بدون هیچ‌گونه ضمانت؛ حتی ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای هدفی معین. برای جزئیات بیشتر متن پروانه عمومی همگانی گنو را ببینید.

شما باید نسخه‌ای از پروانه عمومی همگانی گنو را به همراه برنامه دریافت کرده باشید؛ در غیر این صورت به نشانی زیر مراجعه نمایید: http://www.gnu.org/licenses

برای اطلاعات بیشتر، لطفاً به مستندات برخط ماریا‌دی‌بی مراجعه کنید: https://mariadb.com/docs

بنیاد ماریا‌دی‌بی (http://www.mariadb.org).

5 March 2025 MariaDB 11.8