pg_dump এবং ERROR: টোস্টের মানটির জন্য খালি সংখ্যা 0 অনুপস্থিত


10

আমি PostgreSQL 8.4.15 ব্যবহার করছি। pg_dumpএকটি ডাটাবেস ব্যাকআপ চালানোর সময় , আমি নিম্নলিখিত ত্রুটি পেয়েছি:

pg_dump: SQL command failed
pg_dump: Error message from server: ERROR:  missing chunk number 0 for toast value 123456789 in pg_toast_987654321
pg_dump: The command was: COPY public.my_table (id, .... all the columns ...)

এই ত্রুটি বার্তাটি অনুসন্ধান করার সময়, আমি বেশ কয়েকটি উল্লেখ খুঁজে পেয়েছি ( এখানে এবং এখানে ) যা সারণীটিকে পুনরায় তালিকাভুক্ত করার পরামর্শ দিয়েছে। (এই আলোচনায়, pg_classসঠিক pg_toast_XXXXXXমানটি সন্ধানের জন্য সারণীটি জিজ্ঞাসা করার বিষয়ে একটি উল্লেখ ছিল , তবে মনে হয়েছিল এটি ত্রুটি বার্তাগুলিতে প্রদর্শিত হয়নি কারণ আমি এই অংশটি এড়িয়ে গিয়েছিলাম কারণ ত্রুটি বার্তায় আমার একটি মান প্রদর্শিত হয়েছিল) ) আমার ধারণা পোস্টগ্র্রেএসকিউএল পরবর্তী সংস্করণের কারণে এটি কোনও সুবিধে হতে পারে))

আমি নিম্নলিখিত চালানো:

REINDEX table pg_toast.pg_toast_987654321;
VACUUM ANALYZE my_table;

আমি এখন pg_dumpত্রুটি ছাড়াই ব্যবহার করতে সক্ষম ।

pg_toastএই আদেশগুলি আসলে কী এবং কী করেছিল? এগুলি কি কেবল সাধারণ পরিষ্কার-পরিচ্ছন্নতার বিষয়ে বা তারা এই টেবিলের কিছু সারি থেকে মুক্তি পেতে পারে? সমস্যাটি কি প্রথম জায়গায় ঘটতে পারে?

এই টেবিলটিতে প্রায় 300000 সারি রয়েছে, তবে আমি পূর্ববর্তী সফল ব্যাকআপের পরে প্রায় 250 টি নতুন সারি আশা করব (এই টেবিলটি কেবল ইনসার্ট / নির্বাচন করুন, কোনও আপডেট নেই)।


আমি এই ধারণা পেয়েছি । আপনার কেসটি একই রকম কিনা তা আপনি পরীক্ষা করতে পারেন?
ডিজনো

এই শক্তি এছাড়াও সাহায্যের stackoverflow.com/questions/47533639/...
papanito

উত্তর:


6

আপনি যা করেছেন তা একটি পুনর্নির্মাণ ছিল তা সম্ভবত, যা ঘটেছিল তা সম্ভবত টেবিলের টোস্টযুক্ত মানগুলি সনাক্ত করার চেষ্টা করার জন্য একটি সূচক স্ক্যান ব্যবহার করেছিল এবং এটির সন্ধান করতে পারে না। এটি দূষিত সূচকের মতো শোনাচ্ছে। ভ্যাকুয়াম বিশ্লেষণ সারণিতে পরিবর্তন করে তবে রিইন্ডেক্সে আসে না এবং পরিবর্তনগুলি খুব সামান্য।

এটি সম্পর্কে চিন্তা করার উপায়টি হ'ল টোস্টযুক্ত বৈশিষ্ট্যগুলি প্রায় 4k আকারের অংশগুলিতে বিভক্ত হয় এবং এগুলি সারিগুলিতে সঞ্চিত থাকে। এগুলি অনুসন্ধানের সময় প্রধান সারিটির সাথে সন্ধান করা এবং সাজানো / পুনরায় সংযুক্ত করা হয়। দেখে মনে হচ্ছে যে এখানে ব্যবহৃত একটি সূচকটি দূষিত হয়েছিল এবং তাই পুনর্নির্মাণটি সমস্যার সমাধান করেছে।

আমি খুঁজে পেয়েছি দূষিত সূচীগুলি সাধারণত একটি চিহ্ন যে সার্ভারের সাথে কিছু ঠিক আছে না। মেমরি পরীক্ষা করা এবং নিশ্চিত করা ভাল, সিপিইউ এবং হার্ড ড্রাইভগুলি সকলেই খুশি এবং সমস্যাগুলির প্রতিবেদন না করে not আমি অতিরিক্ত ওষুধের সার্ভারগুলি সূচক দুর্নীতির জন্য বিশেষত প্রবণ বলে মনে করেছি এবং সূচকগুলি যদি দুর্নীতিগ্রস্থ হতে পারে তবে ডেটাও দুর্নীতিগ্রস্থ হওয়ার বিষয়ে চিন্তা করতে হবে।

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