postgresql: আমি একটি ক্লাস্টারের ভূমিকা কীভাবে ডাম্প করব এবং পুনরুদ্ধার করব?


27

গুচ্ছগুলিতে কোথায় ভূমিকা রাখা হয় এবং আমি সেগুলি কীভাবে ফেলে দেব?

আমি একটি db এর pg_dump করেছি এবং তারপরে এটি একটি পৃথক ক্লাস্টারে লোড করেছি, তবে আমি এই ত্রুটিগুলি পেয়েছি:

psql:mydump.sql:3621: ERROR:  role "myrole" does not exist 

সুতরাং আপাতদৃষ্টিতে আমার ডিবি ডাম্পের ভূমিকা অন্তর্ভুক্ত নয়। আমি 'পোস্টগ্রিস' ডিবি ফেলে দেওয়ার চেষ্টা করেছি, তবে সেখানেও আমি ভূমিকাগুলি দেখতে পাচ্ছি না।

আমার কি ব্যবহার করা দরকার pg_dumpall --roles-only?

পোস্টগ্র্যাস্কল সংস্করণ 8.4.8 এবং 9.1.4 ওএস: উবুন্টু 11.04 নেট

উত্তর:


37

CREATE ROLEডকুমেন্টেশন থেকে :

নোট করুন যে ভূমিকাগুলি ডাটাবেস ক্লাস্টার স্তরে সংজ্ঞায়িত করা হয়েছে, এবং তাই ক্লাস্টারের সমস্ত ডাটাবেসে বৈধ।

যেহেতু pg_dumpএকটি একক ডাটাবেস ডাম্প করে, আপনি সেই ইউটিলিটি দিয়ে ভূমিকাগুলি বের করতে পারবেন না। pg_dumpall --roles-onlyকমান্ড আপনাকে কাজ করতে হবে প্রস্তাবিত - তবে আপনি তার আউটপুট ফিল্টার করতে যাতে শুধুমাত্র পছন্দসই ভূমিকা নতুন ক্লাস্টারের মধ্যে তৈরি করা হবে প্রয়োজন হতে পারে।

ভূমিকাগুলি pg_authidক্যাটালগে সংরক্ষণ করা হয় , যা data/global/পোস্টগ্র্রেএসকিউএল ইনস্টলেশনের সাবফোল্ডারে শারীরিকভাবে সংরক্ষণ করা হয় , অন্য ক্লাস্টার-প্রশস্ত টেবিলগুলির সাথে। আপনি ভিউ এর pg_authidমাধ্যমে বিষয়বস্তু জিজ্ঞাসা করতে পারেন pg_roles

দ্রষ্টব্য : ভূমিকাগুলি ছুঁড়ে ফেলার জন্য আপনার সুপারজারের অধিকারের প্রয়োজন হবে। অন্যথা, আপনি একটি অনুমতি বঞ্চিত পেতে চাই SELECTউপর pg_authid- এবং এমনকি যখন একটি সুপার-ইউজার মঞ্জুর SELECTঅধিকার, আপনি একই ত্রুটি পেতে চাই। তবে এই ক্ষেত্রে, আপনি pg_authidসরাসরি জিজ্ঞাসা করে ভূমিকাগুলি তালিকাভুক্ত করতে পারেন , COPYএটি একটি ফাইলের কাছে এবং প্রয়োজনীয় CREATE ROLEএবং ALTER ROLEবিবৃতি তৈরি করতে কিছু যাদু রোল করতে পারেন ।


আপনি কীভাবে সমস্ত ভূমিকা পুনরুদ্ধার করতে পারবেন (যেমন কোনও ফিল্টারিংয়ের প্রয়োজন নেই)?
ইথান ফুরম্যান

1
সমস্ত ভূমিকা পুনরুদ্ধার করতে, কেবল pg_dumpall --roles-onlyআকাঙ্ক্ষিত পিএসএইচএল শেলের আউটপুট অনুলিপি করুন এবং আটকান । বা সুনির্দিষ্ট CREATE ROLEএবং ALTER ROLEলাইনগুলি
ফার্নান্দো ফাবেরেটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.