سؤال

لدي مجموعة من ملفات Berkeley DB على نظام ملفات Linux الخاص بي والتي أرغب في فحصها.

ما هي الأدوات المفيدة الموجودة للحصول على نظرة عامة سريعة على المحتويات؟يمكنني كتابة نصوص Perl التي تستخدم وحدات BDB لفحصها، لكنني أبحث عن بعض أدوات CLI المساعدة حتى أتمكن من إلقاء نظرة على الداخل دون الحاجة إلى البدء في كتابة البرامج النصية.

هل كانت مفيدة؟

المحلول

تفحص ال db-utils طَرد.إذا كنت تستخدم apt، فيمكنك تثبيته باستخدام ما يلي: apt-get install db4.4-util (أو apt-get install db4.8-util أو أي إصدار لديك أو تفضله.)

روابط إضافية:

نصائح أخرى

استخدم ال db_dump برنامج.وهي موجودة في الحزمة core/db (قوس)، db-util (ديبيان، أوبونتو)، sys-libs/db (جنتو، لاحظ أنه هنا يتم استدعاء الثنائي db4.8_dump أو أي إصدار تستخدمه).

في بعض الأنظمة، لا يتم تثبيت صفحات الدليل، وفي هذه الحالة يمكن العثور على الوثائق هنا.بشكل افتراضي، db_dump يُخرج بعض الأرقام السداسية، وهو أمر غير مفيد حقًا إذا كنت تحاول تحليل محتوى قاعدة البيانات.استخدم ال -p حجة لتغيير هذا.

إظهار كل ما هو موجود في الملف database.db:

db_dump -p database.db

قائمة قواعد البيانات في الملف database.db:

db_dump -l database.db

إظهار محتوى قاعدة البيانات فقط mydb في الملف database.db:

db_dump -p -s mydb database.db

لقد وجدت أن إجابة @strickli هي الأكثر فائدة، حيث لم أرغب في إضافة أي حزم جديدة إلى الجهاز مع قاعدة البيانات التي كنت أستخدمها.ومع ذلك، فإن ملف db الذي كنت أقرأه كان من النوع btree، وليس hash، لذلك اضطررت إلى استخدام bsddb

# file foo.db
foo.db: Berkeley DB (Btree, version 9, native byte-order)

# python
>>> import bsddb
>>> for k, v in bsddb.btopen("*<db filename here...>*").iteritems():
...     print k,v
...

كما هو مذكور في الإجابات الأخرى، تحتوي حزمة db-utils (db4-utils ضمن RHEL) على بعض الأدوات.ومع ذلك، يمكن أن يكون db_dump غير مفيد، نظرًا لأن الإخراج بتنسيق "قيمة بايت".

للمشاهد السريع والقذر، استخدم python:

me@machine$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import dbhash
>>> for k, v in dbhash.open( *<db filename here...>* ).iteritems(): print k, v
...

لاحظ أنه تم إهمال dbhash منذ الإصدار python 2.6.

تقوم الأداة المساعدة db_hotbackup بإنشاء لقطات "نسخ احتياطي سريع" أو "تجاوز الفشل السريع" لبيئات قاعدة بيانات Berkeley DB.تثبيته مع ما يلي

الرابطة بين الحصول على تثبيت db-util

ثم قم بتشغيل الأمر التالي لأخذ نسخة احتياطية ساخنة

db_hotbackup [-cdeguvv] [-d data_dir ...] [-h home] [-l log_dir] [-P Passwor

بمجرد تثبيت أدوات db، يمكنك القيام بذلك ببساطة db_dump على ملف ديسيبل.

لاحظ أن الإجابة الأولية تقول استخدام حزمة "db-utils"، لكن المثال يوضح حزمة "db-util" الصحيحة.(بدون "ق")

ضمن Amazon Linux، يمكنك تثبيته باستخدام:

يم تثبيت db43-utils

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top