pg_restore pg_dump এর চেয়ে অনেক বেশি সময় নিচ্ছে


9

আমি নিয়মিত সংরক্ষণ করি এবং পরে একটি ছোট্ট PostgreSQL ডাটাবেস পুনরুদ্ধার করি যা পরীক্ষার জন্য ব্যবহৃত হয়। পরীক্ষার ফলস্বরূপ এর ডেটা নিয়মিত আপডেট করা হয়, তারপরে একটি নতুন ডাম্প তৈরি করতে হবে এবং ডাম্পগুলি নিয়মিতভাবে একটি সংজ্ঞায়িত অবস্থায় ডেটাবেস পুনরায় তৈরি করতে ব্যবহৃত হয়।

আমি লক্ষ্য করেছি যে ডাম্প (ব্যবহার করে pg_dump -Fc database) কেবল কয়েক সেকেন্ড সময় নেয় তবে পুনরুদ্ধার ( pg_restore -d database) প্রায় এক মিনিট সময় নেয়। এটা অদ্ভুত মনে হচ্ছে। আমি উভয় একই সময় গ্রহণ করতে হবে আশা (উভয় কাজ I / O- আবদ্ধ অনুমান)

পুনরুদ্ধার নিয়ে কিছু সমস্যা আছে? আমি কি এটি দ্রুত করতে পারি? বা ডাম্পের চেয়ে অনেক বেশি সময় নেওয়া পুনরুদ্ধার করা কি স্বাভাবিক? (এবং যদি হ্যাঁ, তবে কেন?)

ডাম্প ফাইলে সাধারণত প্রায় 3-4 মিমি থাকে; ডিবিএমএস পোস্টগ্র্রেএসকিউএল ভি 8.4, উবুন্টু লিনাক্সের আওতায় 1 জিআইবি র‌্যামের সাথে পেন্টিয়াম 4 জি 3 জি হার্জে চলছে।

উত্তর:


9

কোনও সূচকের বিষয়বস্তু ব্যাকআপের অংশ নয়, কেবল সূচকের সংজ্ঞা। এবং এটি কেবল কয়েক বাইট লাগবে। পুনঃস্থাপনের সময় সূচকটি তৈরি করা হয় এবং সমস্ত ডেটা সূচী করা হয়, তখন এটি অনেক বড় হবে। এতে সময় লাগবে, তবে এটি কতটা সময় আপনার অবস্থার উপর নির্ভর করে।

pg_restore এর সাথে সামঞ্জস্য পুনরুদ্ধারের বিকল্প রয়েছে (8.4 সংস্করণ হিসাবে), ব্যবহার করুন--jobs=number-of-jobs


আকর্ষণীয়, ধন্যবাদ। সূচকটিও ডাম্প করার, পুনরুদ্ধারের গতি বাড়ানোর (বৃহত্তর ডাম্প ফাইলের দামে) উপায় আছে কি?
স্লেসকে

না, সূচকের বিষয়বস্তু ব্যাকআপের অংশ হতে পারে না। আপনার মতো খুব ছোট ডাটাবেসের জন্য (২-৩ টি এমআইবি) যাইহোক, এটি কোনও সমস্যা হওয়া উচিত নয়।
ফ্রাঙ্ক হিকেনস 12

অতিরিক্ত তথ্য: pg_dump এর সূচকের সামগ্রীতে অ্যাক্সেস নেই। pg_dump ব্যাকআপ তৈরি করতে সিস্টেম টেবিলগুলির সমস্ত সামগ্রী এবং টেবিলের সামগ্রী পেতে SELECT স্টেটমেন্ট ব্যবহার করে। ফলাফলকে ডিস্কে লেখার জন্য এটি কয়েকটি "নির্বাচিত" বিবৃতি এবং কিছু ফাংশনের চারপাশে "কেবল" একটি মোড়ক।
ফ্র্যাঙ্ক হিকেন্স

@ ফ্র্যাঙ্ক: ধন্যবাদ Pg_dump এর বাস্তবায়ন সম্পর্কে জানতেন না। আমাদের ক্ষেত্রে, পুনরুদ্ধারটি দ্রুত করা সহায়ক হবে, কারণ এটি স্বয়ংক্রিয় পরীক্ষার অংশ হিসাবে বারবার চালানো দরকার, সুতরাং এটি 10 ​​মিনিট থেকে 1 মিনিট থেকে নামিয়ে আনতে সহায়তা করবে। তবে দৃশ্যত তা সম্ভবপর নয়। আমাকে অন্যরকম সমাধান খুঁজে পেতে হবে ...
স্লেস্কে

2
@ সালস্ক আপনি ফাইল সিস্টেম ব্যাকআপ পদ্ধতির সাহায্যে চেষ্টা করতে পারেন । এটি সূচকগুলি সংরক্ষণ করে এবং তদ্ব্যতীত, ব্যাকআপ এবং পুনরুদ্ধার উভয়ের জন্য সম্ভবত কিছুটা দ্রুত চালানো উচিত
স্টেফানো ২

4

পুনরুদ্ধারের জন্য, ডাটাবেসগুলিকে অনেক অতিরিক্ত কাজ করতে হয়:

কিছু বিষয় অবিলম্বে মনে আসে:

  • লেখা পড়ার চেয়ে ধীর
  • ইনপুট পার্স করতে সময় লাগে
  • সূচকগুলি এবং অন্যান্য অভ্যন্তরীণ কাঠামো আপডেট করা হচ্ছে
  • রেফারেন্সিয়াল অখণ্ডতা বজায় রাখা

যদিও এটি সময়ের পার্থক্যের সাথে এটির পরিমাণ কিনা তা নিশ্চিত নয়।

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