ابزارهای دیتابیس ابری
با فعالکردن Toolset مربوط به dbaas، دستیار میتواند کلاسترهای دیتابیس ابری را از طریق MCP بسازد، مقیاسدهی کند، بکآپ بگیرد و Database و User داخل کلاستر را مدیریت کند. برای نمونه، میتوانید بنویسید «یک کلاستر PostgreSQL به نام shop میخواهم» و دستیار گزینههای AZ و پلن را از Catalog به شما نشان میدهد.
برای فعالسازی، در تنظیمات کلاینت مقدار زیر را در هدر X-Mcp-Toolsets قر ار دهید:
X-Mcp-Toolsets: dbaas
اگر همزمان به لاگ ابری هم نیاز دارید، مقدار logs,dbaas را بنویسید:
X-Mcp-Toolsets: logs,dbaas
مفاهیم اصلی
-
Cluster
سرویس دیتابیسی است که میسازید. هر Cluster یک Primary دارد و میتواند هنگام نیاز Standby و Read-only هم بگیرد.
-
Instance / Node
هر نود داخل کلاستر است: Primary، Standby یا Read-only.
-
Database
دیتابیس منطقی داخل موتور است (
CREATE DATABASE). Database با خود کلاستر یکی نیست. -
Catalog
فهرست AZها، موتورها، نسخهها، پلنها و قیمتهاست که از
dbaas_catalog_getمیگیرید. -
Whitelist
فهرست IP یا CIDRهای مجاز برای اتصال به کلاستر است.
شناسهی اصلی تقریبن همهی عملیات، clusterId مربوط به نود Primary است.
گرفتن مقدارها از Catalog
پیش از ساخت کلاستر یا تغییر پلن، دستیار باید مقدارهای واقعی را از Catalog بگیرد و چیزی را حدس نزند. برای این کار ابتدا dbaas_catalog_get را صدا میزند و گزینههای AZ، موتور، نسخه و پلن را به شما نشان میدهد. پس از انتخاب شما، dbaas_cluster_create یا dbaas_cluster_resize را اجرا میکند.
توجه داشته باشید که نوشتن «تهران» یا «پستگرس» بهتنهایی برای ساخت کافی نیست؛ مقدار دقیق، مثل
ir-thr-ba1وg2-4-2-0، باید از Catalog انتخاب شود.
اگر هنگام ساخت کلاستر خطای اعتبارسنجی دریافت کردید، احتمالن AZ یا flavorRef ساختگی است. دوباره dbaas_catalog_get را اجرا کنید و مقدار را انتخاب کنید.
ابزارهای Catalog و کلاستر
برای مدیریت کلاسترها از ابزارهای زیر استفاده کنید:
| ابزار | کار | پارامترهای مهم |
|---|---|---|
dbaas_catalog_get | گرفتن Catalog (AZ، موتور، نسخه، پلن، قیمت) | بدون پارامتر |
dbaas_cluster_list | فهرست کلاسترها | page, perPage, q |
dbaas_cluster_get | جزییات یک کلاستر: نودها، اتصال، Databaseها و Userها | clusterId |
dbaas_cluster_create | ساخت کلاستر (همیشه Primary) | name, az, flavorRef, engine, version, volumeSizeGigaBytes |
dbaas_cluster_resize | تغییر پلن یا حجم دیسک | clusterId, flavorRef, volumeSizeGigaBytes |
dbaas_cluster_delete | حذف کل کلاستر (Primary و همهی نودها) | clusterId |
dbaas_cluster_set_whitelist | جایگزینی کامل Whitelist | clusterId, ips |
dbaas_cluster_metrics | مصرف CPU، RAM، دیسک و شبکه | clusterId |
dbaas_cluster_logs | لاگ موتور (مثلن slow query) | clusterId, category |
ابزارهای Node
برای افزودن و حذف Nodeها از ابزارهای زیر استفاده کنید:
| ابزار | کار | پارامترهای مهم |
|---|---|---|
dbaas_cluster_node_add | افزودن Standby یا Read-only | clusterId, nodeType, name, az, flavorRef, volumeSizeGigaBytes |
dbaas_cluster_node_remove | حذف یک Standby یا Read-only | nodeId, role |
برای nodeType در افزودن نود از standby یا readOnly استفاده کنید. این ابزار برای ساخت کلاستر جدید نیست. برای حذف نود، role باید standby یا read-only باشد و نباید Primary باشد.
برای حذف کل سرویس از
dbaas_cluster_deleteاستفاده کنید.
ابزارهای Database ،User و بکاپ
برای مدیریت Database ،User و بکاپ از ابزارهای زیر استفاده کنید:
| ابزار | کار | پارامترهای مهم |
|---|---|---|
dbaas_database_create | ساخت Database داخل کلاستر | clusterId, databaseName |
dbaas_database_delete | حذف Database | clusterId, databaseName |
dbaas_user_create | ساخت User موتور | clusterId, username |
dbaas_user_delete | حذف User | clusterId, username |
dbaas_backup_create | درخواست بکاپ کامل | clusterId, name, description |
dbaas_backup_list | فهرست بکاپهای یک کلاستر | clusterId |
هنگام ساخت کلاستر رمز نفرستید؛ سرویس کاربر base-user را می سازد. ابزار dbaas_user_create فقط username میگیرد و رمز را تولید میکند، اما رمز را برنمیگرداند. dbaas_cluster_get و dbaas_cluster_list هم رمزها را مخفی میکنند.
توجه داشته باشید که رمز را از پنل کاربری کپی کنید و آن را در چت وارد نکنید.
اگر رمز در پاسخ دستیار نیست، این رفتار عمدی است. رمز را از پنل کاربری کپی کنید.
ساخت کلاستر
برای dbaas_cluster_create فیلدهای زیر الزامیاند:
-
name
نام کلاستر است، مثل
shop. این فیلد را خودتان انتخاب میکنید و اجباری است. -
az
AZ کلاستر است، مثل
ir-thr-ba1. مقدار را از Catalog بگیرید. این فیلد اجباری است. -
flavorRef
شناسهی پلن است، مثل
g2-4-2-0. مقدار را از Catalog بگیرید. این فیلد اجباری است. -
engine
موتور دیتابیس است، مثل
postgresql. مقدار را از Catalog بگیرید. این فیلد اجباری است. -
version
نسخهی موتور است، مثل
17.3. مقدار را از Catalog بگیرید. این فیلد اجباری است. -
volumeSizeGigaBytes
حجم دیسک بر حسب گیگابایت است، مثل
20. یک عدد صحیح مثبت وارد کنید. این فیلد اجباری است.
فیلدهای زیر اختیاریاند:
-
backupRef
برای بازیابی یک بکآپ داخل کلاستر جدید استفاده میشود. این فیلد اختیاری است.
-
selectedStandbyCount
تعداد Standby را هنگام ساخت با HA مشخص میکند. این فیلد اختیاری است.
-
multiZone
Standby چندمنطقهای درخواست میکند. این فیلد اختیاری است.
-
standbysInfo
AZ و Flavor هر Standby را بهصراحت تعیین میکند. این فیلد اختیاری است.
-
nodeType
مقدار پیشفرض آن
primaryاست و برای کلاستر جدید معمولن همین مقدار را استفاده میکنید. این فیلد اختیاری است.
پس از پذیرش درخواست، پاسخ معمولن بهمعنی اتمام کار نیست و وضعیت 202 (پذیرفتهشده) برمیگردد. دستیار باید با dbaas_cluster_get صبر کند تا وضعیت ACTIVE شود و سپس کلاستر را آماده اعلام کند. همین الگو برای resize، حذف، بکآپ، Database، User ،Whitelist و تغییر نود هم برقرار است: ابتدا درخواست پذیرفته میشود، سپس دستیار با get وضعیت را بررسی میکند.
اگر کلاستر هنوز آماده نیست، احتمالن فقط پاسخ 202 را دریافت کردهاید. با dbaas_cluster_get تا ACTIVE شدن وضعیت صبر کنید.
منبع و پرامپت آماده
منبع dbaas://docs/provision (با نام dbaas_provision) راهنمای پیدا کردن مقدار فیلدها از Catalog، ساخت کلاستر، بررسی وضعیت و حفظ رمز را در اختیار دستیار قرار میدهد.
پرامپت dbaas_provision_cluster ورکفلوی ساخت کلاستر است. اگر فیلدها ناقص باشند، دستیار ابتدا Catalog را میگیرد، سپس کلاستر را میسازد و پس از آن با get صبر میکند تا وضعیت ACTIVE شود. آرگومانهای این پرامپت name ،az ،flavorRef ،engine ،version و volumeSizeGigaBytes هستند.
سناریوهای رایج
دیدن کلاسترهای موجود
در چت بنویسید:
لیست کلاسترهای DBaaS من را ن شان بده. جزییات کلاستر shop را با host اتصال و وضعیت نودها بگو؛ رمز را نشان نده.
دستیار برای این کار dbaas_cluster_list و dbaas_cluster_get را اجرا میکند.
ساخت کلاستر جدید
در چت بنویسید:
یک کلاستر PostgreSQL به نام shop میخواهم. اول Catalog را بگیر و گزینههای AZ و پلن را نشان بده؛ تا خودم انتخاب نکردم چیزی نساز.
اگر همهی فیلدها را میدانید، میتوانید از پرامپت آماده استفاده کنید:
از پرامپت provision cluster استفاده کن: name=shop، az=ir-thr-ba1، flavorRef=g2-4-2-0، engine=postgresql، version=17.3، volumeSizeGigaBytes=20.
دستیار نباید پلن یا AZ را خودش انتخاب کند، مگر اینکه شما بهصراحت گفته باشید.
ساخت Database و User داخل کلاستر
در چت بنویسید:
روی کلاستر shop یک Database به نام book_store1 بساز. یک User به نام app_rw بساز و بگو رمز را از پنل کپی کنم.
پیش از این کار وضعیت کلاستر باید ACTIVE باشد. فهرست Database و User را میتوانید با dbaas_cluster_get ببینید.
بکاپ و بازیابی
در چت بنویسید:
از کلاستر shop یک بکاپ به نام shop-before-migrate بگیر. بکآپهای shop را list کن.
برای بازیابی، شناسهی بکاپ را بهعنوان backupRef به dbaas_cluster_create بدهید تا کلاستر جدید از روی آن بالا بیاید.
مقیاسدهی، Whitelist و مانیتورینگ
در چت بنویسید:
پلن کلاستر shop را به g2-4-4-0 و دیسک را به 40 گیگ تغییر بده؛ از Catalog تایید کن. Whitelist کلاستر shop را روی 203.0.113.10/32 بگذار. مصرف CPU و RAM کلاستر shop را نشان بده. slow_queryهای اخیر shop را بیاور.
توجه داشته باشید که
dbaas_cluster_set_whitelistفهرست فعلی را جایگزین میکند. فقط IPهایی را بفرستید که باید بمانند.