डिफ़ॉल्ट रूप से PostgreSQL को पूरी तरह से रीसेट करें?


17

सवाल

क्या लिनक्स पर एक PostgreSQL स्थापना को पूरी तरह से रीसेट करने का एक तरीका है, इसलिए यह उसी स्थिति में है जब मैंने इसे स्थापित किया था?

विचार

मैंने विचार किया है

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*

लेकिन शायद यह अनुशंसित तरीका नहीं है।

उद्देश्य

यह पिछले कार्यक्रमों से बाएं ओवरों से छुटकारा पाने के लिए आसान होगा जिन्होंने इसका उपयोग किया है।


के संभावित डुप्लिकेट serverfault.com/q/233234/69930
halfer

जवाबों:


5

यह करना चाहिए - बस यह सुनिश्चित करें कि वर्तमान कॉन्फ़िगरेशन वास्तव में उन निर्देशिकाओं में फ़ाइलों को संग्रहीत करता है

एक बार यह हो जाने के बाद, डेटाबेस को फिर से शुरू करें:

sudo -U pgsql initdb

1
नहीं, कृपया नहीं। कम से कम उबंटू पर यह एक गुप्त गड़बड़ी का कारण होगा क्योंकि यह आपको अपने स्वयं के आवरण उपकरण का उपयोग करने की उम्मीद करता है।
क्रेग रिंगर

1
ऐसा होता है? खैर, कुछ अन्य प्रणाली का उपयोग करने का एक और कारण है, तो ... व्यक्तिगत रूप से मैं FreeBSD के लिए वोट करूंगा, लेकिन प्रत्येक अपने स्वयं के लिए।
जेनी डी

@ क्रेग: यह किस तरह की गड़बड़ पैदा करेगा? मैंने सिर्फ उबंटू पर इस पद्धति का उपयोग किया है, और यह मुझे ठीक लगता है । क्या आप अपने उत्तर में कुछ विवरण जोड़ेंगे?
halfer

1
@halfer Postgresql.conf और pg_hba.conf के साथ शुरू करने के लिए जहां ububtu स्क्रिप्ट की उम्मीद नहीं होगी। या वे बनाए गए initdb की उपेक्षा करेंगे और पुराने का उपयोग करते रहेंगे।
क्रेग रिंगर

क्या होगा यदि यह एक दूरस्थ डेटाबेस है जिसे हमने कनेक्ट किया है और एक ऐसा नहीं है जिसे हमने स्थानीय रूप से आरंभीकृत किया है?
अनोन 58192932

24

यह सब इस बात पर निर्भर करता है कि इसे कैसे स्थापित किया गया था।

उबटन, पैकेज से (बिल्ट-इन या apt.postgresql.org)

का उपयोग करें pg_wrapperPostgreSQL के लिए Ubuntu डॉक्स देखें । आप pg_dropclusterसभी मौजूदा पीजी क्लस्टर चाहते हैं, फिर pg_createclusterएक साफ नया।

डेटा डायर और री-इनटीडीबी को केवल डिलीट करें ।

CentOS / आरएच / फेडोरा, अंतर्निहित पैकेज

मेरे पास यह स्थापित नहीं है और मैं अभी इसका परीक्षण आसानी से नहीं कर सकता। मेमोरी से मुझे लगता है कि सर्वर को बंद करना और डेटा को डिलीट करना सुरक्षित है।

CentOS / आरएच / फेडोरा, yum.postgresql.org संकुल

देखते हैं /usr/share/doc/postgresql??-?.?.?/README.rpm-dist

सर्वर systemctlया serviceरैपर कमांड को रोकें , डेटा डायर को हटाएं, फिर चलाएं /usr/pgsql-9.3/bin/postgresql93-setup initdb(आपके संस्करण के लिए उपयुक्त पथों को समायोजित करें)।

EDB इंस्टॉलर से कोई भी डिस्ट्रो

सर्वर बंद करो, डेटा dir और initdbएक नया क्लस्टर हटाएं । इंस्टॉलर डॉक्स देखें।

स्रोत से

सर्वर बंद करो, डेटा dir हटाओ, फिर से initdb।

ओएस एक्स

होमब्रू: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app? EDB इंस्टॉलर? MacPorts?

एक बीयर खोजें। बीयर पीते हैं। दोहराएँ। यदि इससे दर्द दूर नहीं होता है, तो कुछ मजबूत करें।

खिड़कियाँ

  • सेवा रोकें
  • डेटा dir हटाएं
  • runas.exeपोस्टग्रेज उपयोगकर्ता (पूर्व NETWORKSERVICE-9.2) या (9.2+) के रूप में उपयोग करते हुए initdb को फिर से चलाएँ । या बस बाद में स्वामित्व बदलें।

1
OS X के लिए, ब्रुअ अनइंस्टॉल और क्लीनअप मेरे डेटा dir /usr/local/var/postgresql@9.5 को नहीं छूता है। (यह एप्लिकेशन को /usr/local/opt/postgresql@9.5 पर निकालता है, "ऑप्ट" नहीं "var" नोट करें) "rm -rf /usr/local/var/postgresql@9.5" को पुनः इंस्टॉल करने से पहले आवश्यक था।
कर्टिस येलोप

4

क्या इसे हटाना और पुनः स्थापित करना सबसे अच्छा नहीं है?

इस तरह आप नवीनतम संस्करण प्राप्त करेंगे और रास्ते में किसी भी निर्भरता को अपडेट करेंगे।

भागो: sudo apt-get --purge remove postgresql

तब: sudo apt-get install postgresql


1
इसने मौजूदा DB + उपयोगकर्ताओं को नहीं हटाया (पोस्टग्रेज 9.5 के अनुसार)
सेबस्टियन वैगनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.