ZONE2SQL(1) PowerDNS Authoritative Server ZONE2SQL(1)

zone2sql - تبدیل ناحیه‌های BIND به SQL

zone2sql {--named-conf=PATH,--zone-file=PATH [--zone-name=NAME]} [گزینه‌ها]

دستور zone2sql فایل‌های named.conf و پرونده‌های ناحیه (zonefile) در BIND را تجزیه کرده و خروجی SQL را در خروجی استاندارد تولید می‌کند، که سپس می‌توان آن را به پایگاه‌داده وارد کرد.

دستور zone2sql پسوند پروندهٔ اصلی BIND یعنی $GENERATE را درک کرده و همچنین به $ORIGIN و $TTL توجه و عمل می‌کند.

برای پس‌زمینه‌هایی که از عملیات ثانویه (secondary) پشتیبانی می‌کنند، گزینه‌ای نیز برای نگه‌داشتن ناحیه‌های ثانویه به‌عنوان ثانویه و عدم تبدیل آن‌ها به عملیات محلی (native) وجود دارد.

دستور zone2sql می‌تواند برای پس‌زمینه‌های Generic MySQL، Generic PostgreSQL و Generic SQLite3 کد SQL تولید کند.

خواندن PATH جهت دریافت پیکربندی BIND.
تنها پروندهٔ ناحیه در PATH تجزیه شود. با پارامتر --named-conf تداخل دارد.
هنگام تجزیهٔ یک ناحیهٔ منفرد بدون گزارهٔ $ORIGIN، مقدار ZONE را به‌عنوان نام ناحیه تنظیم می‌کند.

تولید خروجی در قالبی مناسب برای پیکربندی پیش‌فرض پس‌زمینهٔ Generic MySQL.
تولید خروجی در قالبی مناسب برای پیکربندی پیش‌فرض پس‌زمینهٔ Generic PostgreSQL.
تولید خروجی در قالبی مناسب برای پیکربندی پیش‌فرض پس‌زمینهٔ Generic SQLite3.

تجزیهٔ JSON در کامنت‌های پروندهٔ ناحیه برای تنظیم فیلدهای 'disabled' و 'comment' در پایگاه‌داده. برای اطلاعات بیشتر، بخش کامنت‌های جیسون (JSON COMMENTS) را ببینید.
چنانچه پس‌زمینهٔ SQL مقصد از تراکنش‌ها پشتیبانی کند، برای حفظ یکپارچگی و احتمالاً سرعت بالاتر، هر دامنه را درون یک تراکنش قرار می‌دهد.

یک دستور delete به خروجی sql اضافه می‌کند تا وارد کردن مجدد ناحیه‌ها ممکن شود. این گزینه بیشتر هنگام آزمایش مفید است. از آن‌جا که این کار فقط دامنه را حذف می‌کند و نه رکوردهای آن را، باید رابطهٔ کلید خارجی (foreign key) اختیاری را در طرحوارهٔ (schema) خود فعال کرده باشید تا از باقی ماندن رکوردهای معلق جلوگیری شود.
اگر بیش از یک رکورد SOA در ناحیه وجود داشته باشد (احتمالاً به دلیل دریافت از طریق AXFR)، آن را نادیده می‌گیرد. اگر این گزینه تنظیم نشود، تمام رکوردهای SOA موجود در ناحیه منتشر می‌شوند.
نمایش فهرست تمام گزینه‌ها.
نادیده گرفتن پرونده‌های ناحیهٔ مفقود در طول تجزیه. خطرناک است.
حفظ وضعیت ثانویه برای ناحیه‌هایی که در named.conf به عنوان slave فهرست شده‌اند. رفتار پیش‌فرض تبدیل همهٔ ناحیه‌ها به عملیات بومی (native) است.
نمایش اطلاعات مشروح در طول فرایند تبدیل.

پس‌زمینه‌های Generic SQL فیلدهای 'comment' و 'disabled' را در جدول 'records' دارند. فیلد 'comment' حاوی توضیحی برای این رکورد (در صورت وجود) است و فیلد 'disabled' به PowerDNS اطلاع می‌دهد که آیا این رکورد می‌تواند به کلاینت‌ها ارائه شود یا خیر.

زمانی که یک zonefile شامل کامنتی مانند ; json={"comment": "Something", "disabled": true} باشد و گزینهٔ --json-comments داده شده باشد، فیلد 'comment' حاوی "Something" خواهد بود و فیلد 'disabled' بر روی مقدار true بومی پایگاه‌داده تنظیم می‌شود.

هشدار: استفاده از کامنت‌های JSON برای غیرفعال کردن رکوردها به این معنی است که ناحیه در PowerDNS با ناحیه ارائه‌شده توسط BIND متفاوت خواهد بود، چرا که BIND وضعیت غیرفعال در کامنت را پردازش نمی‌کند.

pdns_server(1)

PowerDNS.COM BV

PowerDNS.COM BV

August 5, 2026