भूमिकाएँ - pg_dump और pg_restore बिना भूमिकाओं के


12

मैं डेटाबेस प्राप्त करने पर उपयुक्त भूमिकाओं के बिना एक डंप को पुनर्स्थापित करने की कोशिश कर रहा हूं।

उल्लेख किया है यहाँ , लेकिन यह भी यहाँ है, तो आप की जरूरत है --no-owner, या तो एक विकल्प के रूप pg_dumpया pg_restoreया दोनों

मैंने अपना डंप बनाने के लिए निम्न कमांड लाइन का उपयोग किया है

"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******?@127.0.0.1:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar

पुनर्स्थापना लाइन के अनुसार है

"C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password  --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar"

जैसा कि आप देख सकते हैं, दोनों के पास --no-ownerविकल्प है लेकिन आखिरकार, मेरे पास त्रुटि है

यहां छवि विवरण दर्ज करें

क्या बहुत कीड़े मुझे नीचे लॉग है

pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 2633 ; 0 0 ACL adm avo******
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  role « avo****** » does not exist

यह क्यों कहता है कि यदि --no-ownerउसे निर्दिष्ट किया गया था तो भी उसे एक भूमिका की आवश्यकता है ?

क्या मैं कुछ भुल गया?

परिशिष्ट: मैं पोस्टग्रैजेस 9.3 पर चल रहा हूं

चियर्स

जवाबों:


14

pg_restoreACL सेट करते समय त्रुटि उत्पन्न होती है : आप कमांड --no-aclको रोकने के लिए उपयोग कर सकते हैं GRANT

में -Ftविकल्प के साथ pg_dump, आप केवल भूमिकाओं और एसीएल को छोड़ सकते हैं pg_restore--listयदि आपको अधिक विवरणों की आवश्यकता है तो आप कैटलॉग को संपादित भी कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.