سؤال

لدي مشكلة "صغيرة". قبل أسبوع كانت قاعدة البيانات الخاصة بي تصل إلى قفص القرص الكامل. لقد حذفت العديد من الصفوف في طاولات مختلفة في محاولة لتحرير مساحة القرص. بعد أن حاولت تشغيل فراغ كامل لم يكتمل.

ما أريد أن أعرفه هو. عندما أوقفت الفراغ من المكتوبة بالكامل ، هل يترك أي ملفات مؤقتة على القرص الذي يجب علي حذفه يدويًا؟ لدي الآن قاعدة بيانات Wich هي في قرص بنسبة 100 ٪ ، كما أنه لا داعي للقول إن مشكلة كبيرة.

أي نصائح لإفراج مساحة القرص؟

أقوم بتشغيل SUSE مع قاعدة بيانات Postgres 8.1.4.

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

المحلول

أولاً:

تطوير

حتى لو لم تتمكن من الوصول إلى 8.2 أو 8.3 أو 8.4 - على الأقل ترقية إلى أحدث 8.1 (أي 8.1.17 في الوقت الحالي ، ولكن سيكون 8.1.18 في 1-2 أيام).

ثانياً: تشخيص ما هي المشكلة.

يستخدم دو أداة لتشخيص المكان الذي ذهب فيه المساحة بالضبط. ما هو الدليل الذي يحتل مساحة كبيرة؟

تحقق مع df ما هو إجمالي المساحة المستخدمة ، ثم تحقق من مقدار دليل postgresql.

الخيار الأفضل هو:

cd YOUR_PGDATA_DIR
du -sk *
cd base
du -sk *
cd LARGEST DIR FROM PREVIOUS COMMAND
du -sk * | sort -nr | head

الآن ، أنك تعرف أي دليل في PGDATA يستخدم مساحة يمكنك القيام بشيء حيال ذلك.

إذا كانت السجلات أو pg_temp - أعد تشغيل PG أو إزالة السجلات (PG_CLOG و PG_XLOG ليسوا سجلات بالمعنى الشائع للكلمة ، لا تحذف أي شيء من هناك!).

إذا كان هناك شيء في الدليل الأساسي الخاص بك ، ثم:

الدلائل العددية في الدليل الأساسي تتعلق بقواعد البيانات. يمكنك التحقق من ذلك مع:

select oid, datname from pg_database;

عندما تعرف قاعدة البيانات التي تستخدم معظم المساحة ، قم بتوصيلها ، وتحقق من الملفات التي تستخدم معظم المساحة.

ستكون أسماء الملفات رقمية مع لاحقة ".digits" الاختيارية - هذه اللاحقة (في الوقت الحالي) غير ذي صلة ، ويمكنك التحقق من ما يمثله الملف بالضبط عن طريق إصدار:

select relname from pg_class  where relfilenode = <NUMBER_FROM_FILE_NAME>;

بمجرد معرفة الجداول/الفهارس التي تستخدم معظم المساحة - يمكنك تفريغها ، أو (أفضل بكثير) العنقودية أمر عليهم.

نصائح أخرى

على الظل الجديد لمشكلتك ، يمكنك معرفة ما هو في قاعدة البيانات التي تستخدم مساحة كبيرة باستخدام أ استفسار. يمكن أن يساعدك ذلك في تحديد موقع المرشحين لاقتطاع مساحة عمل كافية لتنظيف تلك بالمعلومات المحذوفة.

لاحظ أن حذف الكثير من الصفوف ولكن ليس الفراغ بشكل متكرر بما يكفي للحفاظ على مساحة القرص قيد الفحص سيؤدي غالبًا إلى حالة تسمى الفهرس ، والتي لا يساعدها الفراغ الكامل على الإطلاق. ستعرف أنك هناك عندما يظهر الاستعلام الذي اقترحته أن معظم المساحات الخاصة بك يتم تناولها بواسطة الفهارس بدلاً من الجداول العادية. ستحتاج إلى مجموعة ، والتي تحتاج إلى أكبر قدر من مساحة القرص الحرة مثل الجدول نفسه لإعادة بناء كل شيء ، للتعافي من هذه المشكلة.

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