হ্যাং করার পরে কীভাবে ব্যর্থ ওপেন ডিরেক্টরি (ডাটাবেস "সিএন = অ্যাথডাটা" খোলা যাবে না, ত্রুটি 12) ঠিক করবেন কীভাবে


6

ওপেন ডিরেক্টরি পরিচালিত একটি ম্যাক ওএস এক্স লায়ন 10.7.5 সার্ভার হ্যাং হয়েছে। এসএসএইচ এখনও সম্ভব ছিল কিন্তু sudo rebootকমান্ডটি 15 মিনিটের মধ্যে সার্ভারটি পুনরায় চালু করতে পারে নি। এজন্য একটি বিদ্যুত্চক্র জারি করা হয়েছিল। পাওয়ার চক্রের পরে ওপেন ডিরেক্টরি আর শুরু হবে না এবং প্রতি 10 সেকেন্ডে সিস্টেম লগটি একটি নতুন বার্তায় পূর্ণ হয়:

com.apple.launchd[1] (org.openldap.slapd[1153]): Exited with code: 1
com.apple.launchd[1] (org.openldap.slapd): Throttling respawn: Will start in 10 seconds

ডিস্কের অনুমতি মেরামত করা, অন্য কোনও পুনরায় বুট করা সমস্যার সমাধান করে না।

সরঞ্জাম মোড আউটপুটগুলিতে চড় মারা:

$ sudo /usr/libexec/slapd -Tt
bdb(dc=nl2,dc=probackup,dc=nl): unable to allocate memory for mutex; resize mutex region
bdb_db_open: database "dc=nl2,dc=probackup,dc=nl" cannot be opened, err 12. Restore from backup!
backend_startup_one (type=bdb, suffix="dc=nl2,dc=probackup,dc=nl"): bi_db_open failed! (12)
slap_startup failed (test would succeed using the -u switch)

কিভাবে এটি ঠিক করবেন?

উত্তর:


11

ওডি ডাটাবেস সমস্যা কিনা তা পরীক্ষা করে দেখুন

$ sudo /usr/libexec/slapd -Tt

আউটপুট যদি এমন কিছু বলে দেয় তবে আর কোনও পদক্ষেপের প্রয়োজন নেই:

...
bdb_db_open: database "dc=hostname,dc=domainname,dc=tldname": recovery skipped in read-only mode. Run manual recovery if errors are encountered.
...

মেরামতের চেষ্টা করুন

ওপেন ডিরেক্টরি অথডাটা ডাটাবেস মেরামত করতে:

$ sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist

এখন আপনার ওএস সংস্করণটির সাথে মিলিত নীচের কমান্ডটি ব্যবহার করে ডাটাবেস পুনরুদ্ধার শুরু করুন।

$ sudo db_recover -h /var/db/openldap/authdata/ # Mac OS X 10.7
$ sudo db_recover -h /var/db/openldap/openldap-data/ # Mac OS X 10.6

এখন সরঞ্জাম মোড আউটপুটগুলিতে slapd:

$ sudo /usr/libexec/slapd -Tt
bdb_db_open: database "dc=nl2,dc=probackup,dc=nl": unclean shutdown detected; attempting recovery.
bdb_db_open: database "dc=nl2,dc=probackup,dc=nl": recovery skipped in read-only mode. Run manual recovery if errors are encountered.
bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded

এখন ওপেন ডিরেক্টরিটি চালু করুন:

$ sudo launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist

এবং দুঃখের চেয়ে আরও নিরাপদ থাকার জন্য আরেকটি পুনঃসূচনা জারি করুন:

$ sudo reboot

ওপেন ডিরেক্টরিটি এখনই চালানো উচিত। যদি এটি চলছে না তবে নীচে চেষ্টা করুন try

সময় মেশিন পুনরুদ্ধার চেষ্টা করুন

প্রথমে উপলব্ধ ব্যাক-আপগুলি উপলব্ধ সংস্করণগুলি দেখুন:

$ ls /Volumes/Time\ Machine/Backups.backupdb/*/

উদাহরণস্বরূপ, যখন ওপেন ডিরেক্টরিটি এখনও সঠিকভাবে চলছিল তখন সবচেয়ে সাম্প্রতিক সংস্করণটি বেছে নিন 2018-07-22-091106

ডেমনটি আনলোড দিয়ে আবার শুরু করুন।

$ sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist

তারপরে ডাটাবেস ডিরেক্টরিটি মুছে ফেলুন (বা নাম পরিবর্তন করুন) যখন এটি উপলব্ধ থাকে টাইম মেশিন সঠিকভাবে পুনরুদ্ধার করবে না) এবং পুনরুদ্ধার শুরু করুন:

$ sudo rm -rf /var/db/openldap/ && sudo tmutil restore -v /Volumes/Time\ Machine/Backups.backupdb/*/2018-07-22-091106/Macintosh\ HD/var/db/openldap/ /var/db/

জোর করে ডাটাবেস মেরামত করুন:

$ sudo db_recover -cv -h /var/db/openldap/openldap-data/

মেরামত অনুমতি এবং রিবুট:

$ sudo diskutil repairPermissions / && sudo reboot

2
এই পদ্ধতিরটি আমার পক্ষে ঠিক কৌশলটি করেনি, তবে এটি আমাকে সঠিক পথে ফেলেছে। আমি সত্যিই কি আমি দ্বারা LDAP প্রশাসনের সঙ্গে কাজ করছি, তাই YMMV জানি না, কিন্তু এই কমান্ডটি চালানোর পরে, আমি slapd পুনর্সূচনা করতে সক্ষম হন এবং আমার ডেটা হারিয়ে হয়নি: sudo db_recover -h /var/db/openldap/openldap-data/। দেখে মনে হচ্ছে এলডিএপ সম্পর্কিত কোনও বিডিবি ডাটাবেস কাঠামোটি আমার বিশেষ ক্ষেত্রে দুর্নীতিগ্রস্থ হয়েছিল, সুতরাং উপরেরটি আপনার পক্ষে কাজ না করে যদি তদন্ত করা যায়। শুভকামনা!
জাস্টিন লেইটেজেব

5

এইভাবে আমি সাধারণত একটি ভাঙা এলডিএপি / ওডি মেরামত করি

1. এই সমস্যা কিনা তা পরীক্ষা করে দেখুন

sudo /usr/libexec/slapd -Tt*

আপনি পেতে পারেন: bdb_db_open: ডাটাবেস "cn = authdata": db_open (/var/db/openldap/authdata/id2entry.bdb) ব্যর্থ হয়েছে: অবৈধ যুক্তি (22)।

2. ওডি মাস্টারের উপর এলডিএপ বন্ধ করুন

sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist

3. অনুমতি মেরামত

diskutil repairPermissions /

৪. ব্যাকআপ ওপেনড্যাপ ডিবি

sudo cp /var/db/openldap/authdata/id2entry.bdb /var/db/openldap/authdata/id2entry.bdb.backup

5. মেরামত

sudo db_recover -cv -h /var/db/openldap/openldap-data/

6. রান মেরামতি আবার চেক করতে

sudo db_recover -cv -h /var/db/openldap/openldap-data/

It. এটি আরও একবার করুন যাতে জিনিসগুলি সঠিকভাবে মেরামত করা হয়

sudo /usr/libexec/slapd -Tt

8. পরিষেবাটি পুনরায় চালু করুন

sudo launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist

9. যদি উপরেরটি কাজ না করে তবে চেষ্টা করুন:

sudo db_recover -cv -h /var/db/openldap/authdata/

তারপরে আমি পরিষেবাটি 8 তম দিয়ে পুনরায় চালু করব।

sudo launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist

এটি সাধারণত সমস্যাটি সংশোধন করে ... তবে কিছু ক্ষেত্রে আপনার পোস্টে ল্যানঞ্জের মতো ব্যাখ্যা পুনরুদ্ধার করা দরকার।


আমার পরিস্থিতিতে বিপর্যয়কর পুনরুদ্ধারটি মূল বিষয় ছিল। প্রথমে স্বাভাবিক পুনরুদ্ধার মোডটি চেষ্টা করে বোঝা যায় তবে এটি -c কী সরবরাহ করে তা বুঝতে সহায়তা করে।
tim.rohrer

1

প্রথমটি হ'ল আপনি যে ডিস্কটি করতে পারেন তা যাচাই করে পুনরুদ্ধার পার্টিশন বা একক ব্যবহারকারীর ( সেন্টিমিটার - এস স্টার্টআপে) ব্যবহার করে তারপরে টাইপ করুন:

fsck -fy

কিউওয়ার্টি কীবোর্ড ড্যাশ ব্যাকস্পেস থেকে 2 কী বাকি left

ব্যাকআপ থেকে দূষিত ডাটাবেসটিকে পুনরায় আমদানি করতে আপনার নিম্নলিখিত ফাইল / ফোল্ডারগুলি ব্যাকআপ করে প্রতিস্থাপন করতে হবে:

  • Var / ডিবি / OpenLDAP /
  • usr / bin / db_recover

এটি প্রয়োজনীয় তা নিশ্চিত নয় তবে আপনি যদি সিস্টেম কীচেইনে LDAPv3 এন্ট্রি সরিয়ে ফেলেছেন:

  • লাইব্রেরি / Keychains / System.keychain

পুনরুদ্ধারের চেষ্টা করুন ...

তারপরে আপনার কোনও টার্মিনাল (একক ব্যবহারকারী নয়) থেকে ডিস্ক অনুমতিগুলি মেরামত করা উচিত:

diskutil repairPermissions /

পুনরুদ্ধারের পরে যদি আপনার পরিষেবাগুলির সাথে সংযোগ করতে সমস্যা হয় তবে ডিরেক্টরি ইউটিলিটিতে " পরিষেবাদি " ট্যাবের অধীনে কনফিগারেশনটি পরীক্ষা করে দেখুন ।


0

গৃহীত উত্তরে প্রস্তাবিত মেরামত আমার সমস্যাগুলি সমাধান করতে সক্ষম হয়নি। তবে একটি টাইম মেশিন ব্যাকআপ থেকে ডাটাবেস পুনরুদ্ধার করা সফল হয়েছিল:

  1. নিরাপদ থাকতে ওপেনডাইরেক্টরিটি আনলোড করুন: sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist
  2. ফাইন্ডার উইন্ডোটি খুলুন, তারপরে Go> ফোল্ডারে যান নির্বাচন করুন /var/db
  3. /var/db/openldapভালো কিছু নামকরণ/var/db/openldap.corrupt
  4. টাইম মেশিন প্রবেশ করুন
  5. আপনি যখন ওপেনডাইরেক্টরি কাজ করবেন জানেন তখন সময়ে ফিরে যান
  6. প্রত্যর্পণ করা /var/db/openldap
  7. অতিরিক্ত সুরক্ষার জন্য, আপনি পুনরুদ্ধার করা ডেটাতে একটি পুনরুদ্ধার চালাতে পারেন: sudo db_recover -cv -h /var/db/openldap/openldap-data/
  8. রিবুট

ম্যাকোস সার্ভারটি পুনরায় চালু হয়ে গেলে ওপেনডাইরেক্টরিটি আপ এবং চলমান হওয়া উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.