.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "OVDB 5" .TH OVDB 5 2024-05-19 "INN 2.7.4" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" ovdb \- روش ذخیره‌سازی داده‌های overview برای INN .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" روش ذخیره‌سازی ovdb overview از کتابخانهٔ Berkeley\ DB برای ذخیره داده‌های overview استفاده می‌کند. این روش به نسخهٔ 4.4 یا بالاتر از کتابخانهٔ Berkeley\ DB نیاز دارد (نسخهٔ 4.7+ پیشنهاد می‌شود، زیرا نسخه‌های قدیمی‌تر از مشکلات گوناگونی رنج می‌برند). .PP روش ovdb overview از قابلیت‌های کامل تراکنش/گزارش‌گیری/قفل‌گذاری (transaction/logging/locking) محیط Berkeley\ DB بهره می‌برد. کتابخانهٔ Berkeley\ DB را می‌توان از بارگیری کرد و وجود آن برای ساخت زیرسیستم ovdb الزامی است. .PP این روش به همراه یک ابزار کمکی ارائه می‌شود که امکان دستکاری اطلاعات overview را فراهم می‌کند. برای جزئیات بیشتر به ovdb_stat(8) مراجعه کنید. .SH "ارتقا (UPGRADING)" .IX Header "UPGRADING" روش ذخیره‌سازی ovdb دارای چند نسخه است: .IP \(bu 2 نسخهٔ ۱: نسخهٔ اولیه که همراه با INN\ 2.3.0 تا INN\ 2.3.5 عرضه شد. .IP \(bu 2 نسخهٔ ۲: با کارایی بهبودیافته، از زمان INN\ 2.4.0 به بعد. .IP \(bu 2 نسخهٔ ۳: مطابق با نسخهٔ ۲ به همراه فعال‌سازی فشرده‌سازی، از زمان INN\ 2.5.0 به بعد. .PP اگر پایگاه داده‌ای دارید که با نسخه‌های قبلی ovdb ایجاد شده است، باید آن را با استفاده از \fBovdb_init\fR ارتقا دهید. برای راهنمای ارتقا به صفحهٔ راهنمای ovdb_init(8) و همچنین بخش "فشرده‌سازی (COMPRESSION)" در ادامه مراجعه کنید. .PP توجه داشته باشید هنگامی که کتابخانهٔ Berkeley\ DB به نسخهٔ جدیدتری به‌روزرسانی می‌شود، پایگاه دادهٔ ovdb نیز نیاز به ارتقا دارد. .SH "نصب (INSTALLATION)" .IX Header "INSTALLATION" اگر کتابخانهٔ Berkeley\ DB در زمان پیکربندی (configure) یافت شود، INN با پشتیبانی از Berkeley\ DB ساخته خواهد شد، مگر اینکه گزینهٔ \fB\-\-without\-bdb\fR به‌صورت صریح به اسکریپت configure ارسال شود. به‌طور پیش‌فرض، configure در مسیرهای استاندارد به دنبال Berkeley\ DB می‌گردد؛ در خروجی configure پیامی نمایش داده خواهد شد که مسیر مورد استفاده را مشخص می‌کند. .PP می‌توانید با افزودن یک مسیر به این گزینه، مسیر پیش‌فرض را لغو کنید؛ برای نمونه: \fB\-\-with\-bdb=/usr/BerkeleyDB.4.4\fR. این شاخه باید شامل زیرشاخه‌های \fIinclude\fR و \fIlib\fR (پوشه‌های \fIlib32\fR و \fIlib64\fR نیز بررسی می‌شوند) باشد که به ترتیب دربردارندهٔ \fIdb.h\fR و خود کتابخانه هستند. در صورتی که مسیرهای غیراستاندارد برای کتابخانه‌های Berkeley\ DB استفاده شده باشد، می‌توان از یک یا هر دو گزینهٔ \fB\-\-with\-bdb\-include\fR و \fB\-\-with\-bdb\-lib\fR به همراه مسیر مشخص در هنگام اجرای configure استفاده کرد. .PP پایگاه دادهٔ ovdb ممکن است برای یک مخزن (spool) مشخص، فضای دیسک بیشتری نسبت به سایر روش‌های overview مصرف کند. برای هر مقاله در مخزن خود حداقل 1.1\ کیلوبایت فضا در نظر بگیرید (بدون احتساب crosspostها). بنابراین، اگر ۵ میلیون مقاله دارید، حداقل به 5.5\ گیگابایت فضای دیسک برای ovdb نیاز خواهید داشت. با فعال بودن فشرده‌سازی، این برآورد به 0.9\ کیلوبایت به ازای هر مقاله کاهش می‌یابد؛ بنابراین برای ۵ میلیون مقاله حداقل به 4.5\ گیگابایت فضای دیسک نیاز خواهید داشت. بخش "فشرده‌سازی (COMPRESSION)" را در ادامه ببینید. علاوه بر این، به فضای اضافی برای لاگ‌های تراکنش (transaction logs) نیز نیاز دارید: حداقل 100\ مگابایت. به‌طور پیش‌فرض، لاگ‌های تراکنش در همان شاخهٔ پایگاه داده قرار می‌گیرند. برای بهبود کارایی می‌توان آن‌ها را روی یک دیسک دیگر قرار داد \-\- بخش "DB_CONFIG" را ببینید. .SH "پیکربندی (CONFIGURATION)" .IX Header "CONFIGURATION" برای فعال کردن روش ovdb overview، پارامتر \fIovmethod\fR را در \fIinn.conf\fR روی مقدار \f(CW\*(C`ovdb\*(C'\fR تنظیم کنید. پایگاه دادهٔ ovdb در شاخه‌ای که توسط پارامتر \fIpathoverview\fR در \fIinn.conf\fR مشخص شده ذخیره می‌شود. این شاخه همان شاخهٔ \f(CW\*(C`DB_HOME\*(C'\fR است. برای شروع، این شاخه باید خالی باشد (به‌جز یک فایل اختیاری \fIDB_CONFIG\fR؛ برای جزئیات به "DB_CONFIG" مراجعه کنید)، و \fBinnd\fR (یا \fBmakehistory\fR) فایل‌های لازم را در آن شاخه ایجاد خواهد کرد. همچنین اطمینان حاصل کنید که مالکیت این شاخه متعلق به کاربر news باشد. .PP سایر پارامترهای پیکربندی ovdb در فایل پیکربندی \fIovdb.conf\fR قرار دارند. پارامترهای زیر را می‌توان در آن فایل تنظیم کرد: .IP \fIcompress\fR 4 .IX Item "compress" اگر INN با zlib کامپایل شده باشد و پارامتر \fIcompress\fR روی true تنظیم شده باشد، ovdb رکوردهای overview را که طول آن‌ها بیشتر از ۶۰۰ بایت است فشرده‌سازی می‌کند. بخش "فشرده‌سازی (COMPRESSION)" را در ادامه ببینید. .IP \fIcachesize\fR 4 .IX Item "cachesize" اندازهٔ حافظهٔ نهان (کش) استخر حافظه بر حسب کیلوبایت. کش دارای یک فایل پشتیبان در شاخهٔ DB خواهد بود که اندازه‌ای حداقل به همان میزان خواهد داشت. به‌طور کلی، هرچه کش بزرگ‌تر باشد، بهتر است. از دستور \f(CW\*(C`ovdb_stat \-m\*(C'\fR برای مشاهدهٔ درصد اصابت حافظهٔ نهان (cache hit) استفاده کنید. برای اعمال تغییرات این پارامتر، INN را خاموش کرده و دوباره راه‌اندازی کنید (حتماً هنگام خاموش کردن تمام فرآیندهای \fBnnrpd\fR را متوقف کنید). مقدار پیش‌فرض \f(CW\*(C`8000\*(C'\fR (کیلوبایت) است که برای سرورهای کوچک تا متوسط مناسب است. سرورهای بزرگ احتمالاً حداقل به \f(CW\*(C`20000\*(C'\fR (کیلوبایت) نیاز خواهند داشت. .IP \fIncache\fR 4 .IX Item "ncache" تعداد بخش‌هایی که کش بین آن‌ها تقسیم می‌شود. اندازهٔ هر بخش برابر است با \fIcachesize\fR تقسیم بر \fIncache\fR. مقدار پیش‌فرض برای \fIncache\fR عدد \f(CW\*(C`1\*(C'\fR است، به این معنی که حافظهٔ نهان به‌صورت پیوسته در حافظه تخصیص می‌یابد. .IP \fInumdbfiles\fR 4 .IX Item "numdbfiles" داده‌های overview بین این تعداد فایل تقسیم می‌شوند. در حال حاضر، \fBinnd\fR همهٔ این فایل‌ها را باز نگه می‌دارد، بنابراین این مقدار را بیش از حد بالا تنظیم نکنید؛ در غیر این صورت ممکن است \fBinnd\fR با کمبود توصیف‌کننده‌های فایل (file descriptors) مواجه شود. با این حال، \fBnnrpd\fR در هر لحظه فقط یک فایل را باز می‌کند. می‌توان آن را روی یک یا تعداد کمی فایل تنظیم کرد، اما تنها در صورتی این کار را انجام دهید که سیستم‌عامل شما از فایل‌های بزرگ (بیشتر از 2\ گیگابایت) پشتیبانی کند. تغییر این پارامتر تأثیری بر پایگاه داده‌ای که قبلاً ایجاد شده است ندارد. مقدار پیش‌فرض \f(CW\*(C`32\*(C'\fR است. .IP \fItxn_nosync\fR 4 .IX Item "txn_nosync" اگر txn_nosync روی false تنظیم شود، Berkeley\ DB بعد از هر تراکنش، گزارش لاگ را روی دیسک تخلیه (flush) می‌کند. این کار احتمال از دست رفتن تراکنش‌ها در زمان خرابی یا کرش سیستم را به حداقل می‌رساند، اما منجر به کاهش چشمگیر کارایی می‌شود. مقدار پیش‌فرض true است که در این حالت \fBovdb_monitor\fR لاگ‌های تراکنش را هر ۳۰ ثانیه یک بار روی دیسک تخلیه می‌کند. .IP \fIuseshm\fR 4 .IX Item "useshm" اگر \fIuseshm\fR روی true تنظیم شود، Berkeley\ DB به جای mmap از حافظهٔ اشتراکی (shared memory) برای بخش‌های محیطی خود (کش، قفل و غیره) استفاده خواهد کرد. در برخی سیستم‌عامل‌ها این کار ممکن است کارایی را بهبود ببخشد. مقدار پیش‌فرض false است. .IP \fIshmkey\fR 4 .IX Item "shmkey" کلید حافظهٔ اشتراکی مورد استفاده توسط Berkeley\ DB را در زمانی که \fIuseshm\fR فعال (true) است مشخص می‌کند. کتابخانهٔ Berkeley\ DB چندین سگمنت حافظهٔ اشتراکی (معمولاً ۵ عدد) را با استفاده از کلیدهای شماره‌گذاری‌شدهٔ متوالی که با \f(CW\*(C`shmkey\*(C'\fR شروع می‌شوند ایجاد خواهد کرد. کلیدی را انتخاب کنید که با سگمنت‌های حافظهٔ اشتراکی موجود در سیستم تداخل نداشته باشد. مقدار پیش‌فرض \f(CW\*(C`6400\*(C'\fR است. .IP \fIpagesize\fR 4 .IX Item "pagesize" اندازهٔ صفحه را برای فایل‌های DB (بر حسب بایت) تعیین می‌کند. این مقدار باید توانی از عدد ۲ باشد. بهترین گزینه‌ها \f(CW\*(C`4096\*(C'\fR یا \f(CW\*(C`8192\*(C'\fR هستند. مقدار پیش‌فرض \f(CW\*(C`8192\*(C'\fR است. تغییر این پارامتر بر پایگاه داده‌های از پیش ایجاد شده بی‌تأثیر است. .IP \fIminkey\fR 4 .IX Item "minkey" حداقل تعداد کلیدها در هر صفحه را تعیین می‌کند. برای اطلاعات بیشتر به مستندات Berkeley\ DB مراجعه کنید. مقدار پیش‌فرض بر اساس اندازهٔ صفحه و فعال بودن یا نبودن فشرده‌سازی تعیین می‌شود: .Sp .Vb 2 \& default_minkey = MAX(2, pagesize / 2600) if compress is false \& default_minkey = MAX(2, pagesize / 1500) if compress is true .Ve .Sp کمترین مقدار مجاز برای \fIminkey\fR عدد \f(CW\*(C`2\*(C'\fR است. تنظیم \fIminkey\fR روی مقداری بالاتر از پیش‌فرض توصیه نمی‌شود، زیرا باعث ایجاد صفحات سرریز (overflow pages) بسیار زیادی در پایگاه‌های داده خواهد شد. تغییر این پارامتر بر پایگاه داده‌های موجود اثری ندارد. .IP \fImaxlocks\fR 4 .IX Item "maxlocks" پارامتر \fIlk_max\fR در Berkeley\ DB را تنظیم می‌کند که حداکثر تعداد قفل‌های همزمان موجود در پایگاه داده است. مقدار پیش‌فرض \f(CW\*(C`4000\*(C'\fR است. .IP \fInocompact\fR 4 .IX Item "nocompact" پارامتر \fInocompact\fR بر رفتار \fBexpireover\fR تأثیر می‌گذارد. تابع \fBexpireover\fR در ovdb می‌تواند کار خود را به یکی از دو روش زیر انجام دهد: با حذف سادهٔ رکوردهای منقضی‌شده از پایگاه داده؛ یا با بازنویسی رکوردهای overview در یک مکان دیگر بدون در نظر گرفتن رکوردهای منقضی‌شده. روش اول سریع‌تر است اما «حفره‌هایی» برجای می‌گذارد که فضای آن‌ها بلافاصله قابل استفادهٔ مجدد نیست. روش دوم با بازنویسی رکوردها، آن‌ها را یکپارچه و فشرده (compact) می‌کند. .Sp اگر این پارامتر روی \f(CW\*(C`0\*(C'\fR تنظیم شود، \fBexpireover\fR تمام گروه‌های خبری را یکپارچه‌سازی می‌کند؛ اگر روی \f(CW\*(C`1\*(C'\fR تنظیم شود، \fBexpireover\fR هیچ گروه خبری را فشرده نمی‌کند؛ و اگر روی مقداری بزرگ‌تر از یک تنظیم شود، \fBexpireover\fR تنها گروه‌هایی را که تعداد مقالات آن‌ها کمتر از آن مقدار است یکپارچه می‌کند. .Sp تجربه نشان داده است که یکپارچه‌سازی اثر بسیار کمی دارد (به‌جز طولانی‌تر کردن زمان اجرای \fBexpireover\fR)، بنابراین مقدار پیش‌فرض \f(CW\*(C`1\*(C'\fR است. این پارامتر احتمالاً در آینده حذف خواهد شد. .IP \fIreadserver\fR 4 .IX Item "readserver" هنگامی که پارامتر \fIreadserver\fR روی false تنظیم شود، هر فرآیند \fBnnrpd\fR مستقیماً به محیط Berkeley\ DB دسترسی پیدا می‌کند. فرآیند اتصال به پایگاه داده (و قطع اتصال پس از اتمام) نسبتاً سنگین است و می‌تواند در شرایطی که اتصالات خوانندهٔ زیادی با مدت زمان کوتاه وجود دارد، بار کاری بسیار بالایی ایجاد کند. .Sp هنگامی که پارامتر \fIreadserver\fR روی true تنظیم شود، فرآیندهای \fBnnrpd\fR از طریق یک سرور کمکی (\fBovdb_server\fR \-\- که توسط \fBovdb_init\fR راه‌اندازی می‌شود) به overview دسترسی خواهند داشت. تمام خواندن‌های ovdb سپس از طریق یک فرآیند واحد با رابطی تمیزتر به پایگاه دادهٔ Berkeley\ DB زیرین هدایت می‌شوند. این امر منجر به خاموش شدن تمیزتر پایگاه داده، بهبود پایداری و جلوگیری از بن‌بست‌ها (deadlocks)، مشکلات زمان‌بندی و خرابی پایگاه داده خواهد شد. به همین دلیل اگر با هرگونه ناپایداری در روش ovdb overview مواجه شدید، باید این پارامتر را روی true تنظیم کنید. .Sp مقدار پیش‌فرض true است. .IP \fInumrsprocs\fR 4 .IX Item "numrsprocs" این پارامتر تنها زمانی استفاده می‌شود که \fIreadserver\fR روی true باشد. این گزینه تعداد فرآیندهای \fBovdb_server\fR را تعیین می‌کند. از آنجا که هر \fBovdb_server\fR تنها می‌تواند یک تراکنش را در لحظه پردازش کند، اجرای تعداد بیشتری سرور می‌تواند زمان پاسخ‌دهی به خوانندگان را بهبود ببخشد. مقدار پیش‌فرض \f(CW\*(C`5\*(C'\fR است. .IP \fImaxrsconn\fR 4 .IX Item "maxrsconn" این پارامتر تنها زمانی استفاده می‌شود که \fIreadserver\fR روی true باشد. این گزینه حداکثر تعداد خوانندگانی را تعیین می‌کند که یک فرآیند مشخص \fBovdb_server\fR در یک زمان می‌تواند به آن‌ها سرویس دهد. این بدان معنی است که حداکثر تعداد خوانندگان برای تمام فرآیندهای \fBovdb_server\fR برابر با (\fInumrsprocs\fR * \fImaxrsconn\fR) خواهد بود. این مقدار تعداد واقعی خوانندگان را محدود \fIنمی‌کند\fR، چرا که \fBnnrpd\fR در صورت عدم توانایی در اتصال به یک \fBovdb_server\fR، به باز کردن مستقیم پایگاه داده روی می‌آورد. مقدار پیش‌فرض \f(CW\*(C`0\*(C'\fR است، که به معنای مجاز بودن تعداد نامحدود اتصالات است. .SH "فشرده‌سازی (COMPRESSION)" .IX Header "COMPRESSION" روش ذخیره‌سازی ovdb توانایی فشرده‌سازی داده‌های overview را قبل از ذخیره در پایگاه داده دارد. علاوه بر مصرف کمتر فضای دیسک، فشرده‌سازی میانگین اندازهٔ کلیدهای پایگاه داده را کوچک‌تر نگه می‌دارد. این امر به نوبهٔ خود میانگین تعداد کلیدها در هر صفحه را افزایش می‌دهد که می‌تواند کارایی را به میزان قابل توجهی ارتقا داده و به کم‌حجم ماندن پایگاه داده کمک کند. این قابلیت نیازمند آن است که INN با zlib ساخته شده باشد. فقط رکوردهای بزرگتر از ۶۰۰ بایت فشرده می‌شوند، زیرا از این نقطه به بعد فشرده‌سازی تأثیر ملموس خود را نشان می‌دهد. .PP اگر فشرده‌سازی فعال نباشد (چه از طریق گزینهٔ \fIcompress\fR در \fIovdb.conf\fR و چه به دلیل عدم ساخت INN با پشتیبانی از zlib)، پایگاه داده با نسخه‌های قدیمی‌تر ovdb سازگار خواهد بود. با این حال، در صورت فعال بودن فشرده‌سازی، پایگاه داده با نسخهٔ جدیدتری نشانه‌گذاری می‌شود که از باز شدن آن توسط نسخه‌های قدیمی‌تر ovdb جلوگیری می‌کند. .PP شما می‌توانید با تنظیم سادهٔ \fIcompress\fR روی true در \fIovdb.conf\fR، یک پایگاه دادهٔ موجود را به استفاده از فشرده‌سازی ارتقا دهید. توجه داشته باشید که رکوردهای موجود در پایگاه داده به‌صورت فشرده‌نشده باقی می‌مانند؛ تنها رکوردهای جدیدی که پس از فعال‌سازی اضافه می‌شوند فشرده خواهند شد. .PP اگر فشرده‌سازی را در پایگاه داده‌ای که قبلاً آن را فعال داشته غیرفعال کنید، رکوردهای جدید به‌صورت فشرده‌نشده ذخیره می‌شوند، اما پایگاه داده همچنان با نسخه‌های قدیمی‌تر ovdb ناسازگار خواهد بود (و همچنین اگر INN بدون پشتیبانی از zlib ساخته شده باشد با این نسخه از ovdb نیز ناسازگار است). بنابراین برای بازگشت به یک پایگاه دادهٔ کاملاً فشرده‌نشده، باید پایگاه داده را با استفاده از \fBmakehistory\fR بازسازی کنید. .SH "پیکربندی پایگاه داده (DB_CONFIG)" .IX Header "DB_CONFIG" می‌توان فایلی به نام \fIDB_CONFIG\fR را در شاخهٔ پایگاه داده (\fIpathoverview\fR در \fIinn.conf\fR) قرار داد تا محل ذخیرهٔ فایل‌های مختلف پایگاه داده و لاگ‌های تراکنش را سفارشی‌سازی کرد. به‌طور پیش‌فرض، تمام فایل‌ها در شاخهٔ \f(CW\*(C`DB_HOME\*(C'\fR نوشته می‌شوند. یکی از روش‌های بهبود کارایی این است که لاگ‌های تراکنش را روی یک دیسک جداگانه قرار دهید. برای این کار، خط زیر را: .PP .Vb 1 \& DB_LOG_DIR /path/to/logs .Ve .PP در فایل \fIDB_CONFIG\fR قرار دهید. اگر مسیری که وارد می‌کنید با \f(CW\*(C`/\*(C'\fR شروع شود، یک مسیر مطلق در نظر گرفته می‌شود؛ در غیر این صورت، نسبت به شاخهٔ \f(CW\*(C`DB_HOME\*(C'\fR سنجیده خواهد شد. قبل از راه‌اندازی INN، مطمئن شوید شاخه‌هایی که مشخص کرده‌اید وجود دارند و دارای مجوزها و مالکیت مناسب هستند، زیرا آن‌ها به‌طور خودکار ایجاد نخواهند شد. همچنین در زمانی که هر برنامه‌ای در حال استفاده از ovdb است، فایل \fIDB_CONFIG\fR را تغییر ندهید. .PP کار دیگری که می‌توانید با این فایل انجام دهید، تقسیم پایگاه دادهٔ overview بین چند دیسک مختلف است. در فایل \fIDB_CONFIG\fR می‌توانید شاخه‌هایی را که Berkeley\ DB هنگام باز کردن پایگاه داده باید جستجو کند فهرست نمایید. .PP به‌عنوان مثال، فرض کنید \fIpathoverview\fR روی \fI/mnt/overview\fR تنظیم شده و شما چهار سیستم‌فایل اضافی در \fI/mnt/ovX\fR ایجاد کرده‌اید. می‌توانید فایلی به نام \fI/mnt/overview/DB_CONFIG\fR با خطوط زیر ایجاد کنید: .PP .Vb 5 \& set_data_dir /mnt/overview \& set_data_dir /mnt/ov1 \& set_data_dir /mnt/ov2 \& set_data_dir /mnt/ov3 \& set_data_dir /mnt/ov4 .Ve .PP سپس فایل‌های \fIovNNNNN\fR خود را در این چهار سیستم‌فایل توزیع کنید (برای مثال در هر کدام ۸ فایل). کتابخانهٔ db هنگام باز کردن یک فایل پایگاه داده، به ترتیب در هر یک از شاخه‌های مشخص‌شده جستجو می‌کند. اگر فایل پیدا نشود، یکی در اولین شاخه از آن فهرست ایجاد خواهد شد. .PP هر زمان که \fIDB_CONFIG\fR را تغییر می‌دهید یا فایل‌های پایگاه داده را جابه‌جا می‌کنید، ابتدا اطمینان حاصل کنید که تمام فرآیندهای news که از پایگاه داده استفاده می‌کنند خاموش شده باشند (از جمله فرآیندهای \fBnnrpd\fR). .PP قابلیت \fIDB_CONFIG\fR بخشی از خود Berkeley\ DB است، نه چیزی که توسط ovdb ارائه شده باشد. برای جزئیات کامل به مستندات نسخهٔ مربوط به Berkeley\ DB مورد استفادهٔ خود مراجعه کنید. .SH "اجرا (RUNNING)" .IX Header "RUNNING" هنگام راه‌اندازی سامانهٔ اخبار (news system)، اسکریپت \fBrc.news\fR برنامهٔ \fBovdb_init\fR را فراخوانی می‌کند. برای اطلاعات دربارهٔ وظایفی که این برنامه انجام می‌دهد به صفحهٔ راهنمای ovdb_init(8) مراجعه کنید. برنامهٔ \fBovdb_init\fR باید حتماً قبل از استفاده از پایگاه داده اجرا شود. .PP و در زمان متوقف کردن INN، اسکریپت \fBrc.news\fR فرآیندهای \fBovdb_monitor\fR را پس از خاموش شدن سایر فرآیندهای INN متوقف می‌کند. .SH "خطاها (DIAGNOSTICS)" .IX Header "DIAGNOSTICS" مشکلات مربوط به ovdb در فایل \fInews.err\fR به همراه عبارت \f(CW\*(C`OVDB\*(C'\fR در پیام خطا ثبت می‌شوند. .PP برنامه‌های INN که از overview استفاده می‌کنند، در صورت عدم اجرای فرآیندهای \fBovdb_monitor\fR با خطا مواجه شده و شروع به کار نخواهند کرد. پیش از اجرای هر برنامه‌ای که به overview دسترسی دارد، از اجرای \fBovdb_init\fR اطمینان حاصل کنید. .PP همچنین، اگر کاربری که برنامه‌های INN استفاده‌کننده از overview را اجرا می‌کند کاربر news نباشد، برنامه‌ها اجرا نخواهند شد. .PP اگر برنامه‌ای که به پایگاه داده دسترسی دارد دچار خرابی (crash) شود یا به هر دلیلی به‌صورت غیرعادی خاتمه یابد، ممکن است یک قفل منسوخ و کهنه (stale lock) در پایگاه داده باقی بماند. این قفل می‌تواند باعث قفل متقابل و بن‌بست سایر فرآیندها روی آن قفل کهنه شود. برای حل این مشکل، تمام فرآیندهای news را خاموش کرده (در صورت لزوم با استفاده از \f(CW\*(C`kill \-9\*(C'\fR) و سپس سامانه را دوباره راه‌اندازی کنید. برنامهٔ \fBovdb_init\fR باید یک عملیات بازیابی (recovery) انجام دهد که قفل‌ها را پاک کرده و آسیب‌های ناشی از متوقف کردن اجباری فرآیندهای به بن‌بست رسیده را ترمیم نماید. .SH "فایل‌ها (FILES)" .IX Header "FILES" .IP \fIpathetc\fR/inn.conf 4 .IX Item "pathetc/inn.conf" پارامترهای \fIovmethod\fR و \fIpathoverview\fR در این فایل به ovdb مربوط می‌شوند. .IP \fIpathetc\fR/ovdb.conf 4 .IX Item "pathetc/ovdb.conf" فایل پیکربندی اختیاری برای بهینه‌سازی و تنظیمات پیشرفته. بخش "پیکربندی (CONFIGURATION)" در بالا را ببینید. .IP \fIpathoverview\fR 4 .IX Item "pathoverview" شاخه‌ای که پایگاه داده در آن قرار می‌گیرد. در Berkeley\ DB به آن شاخهٔ \f(CW\*(C`DB_HOME\*(C'\fR گفته می‌شود. .IP \fIpathoverview\fR/DB_CONFIG 4 .IX Item "pathoverview/DB_CONFIG" فایل اختیاری برای پیکربندی چیدمان و ساختار فایل‌های پایگاه داده. .IP \fIpathrun\fR/ovdb.sem 4 .IX Item "pathrun/ovdb.sem" فایلی که توسط هر فرآیند در حال دسترسی به پایگاه داده قفل می‌شود. این فایل توسط \fBovdb_init\fR استفاده می‌شود تا مشخص شود پایگاه داده فعال است یا غیرفعال/آرام. .IP \fIpathrun\fR/ovdb_monitor.pid 4 .IX Item "pathrun/ovdb_monitor.pid" شناسهٔ فرآیند (PID) مربوط به \fBovdb_monitor\fR در این فایل ذخیره می‌شود. .SH "کارهای باقی‌مانده (TO DO)" .IX Header "TO DO" پیاده‌سازی روشی برای محدود کردن تعداد پایگاه‌های داده‌ای که می‌توانند به‌طور همزمان باز باشند (برای کاهش استفاده از توصیف‌کننده‌های فایل)؛ شاید با استفاده از سازوکاری شبیه به کد حافظهٔ نهان در فایل قدیمی \fIov3.c\fR. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" نوشته‌شده توسط Heath Kehoe برای InterNetNews. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" inn.conf(5), innd(8), makehistory(8), nnrpd(8), ovdb_init(8), ovdb_monitor(8), ovdb_stat(8). .PP مستندات Berkeley\ DB: در شاخهٔ \fIdocs\fR توزیع سورس‌کد Berkeley\ DB، یا در صفحهٔ وب Oracle Berkeley\ DB ().