PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

जावा का उपयोग करके PostgreSQL डेटाबेस को पुनर्स्थापित करें

यह आश्चर्य की बात है कि आप जो कमांड दिखाते हैं वह बिल्कुल काम करता है, क्योंकि आप कमांड पथ में रिक्त स्थान को उद्धृत करने में विफल हो रहे हैं। कोशिश करें:

String[] cmd = {
    "D:\\Program Files\\PostgreSQL\\9.1\\bin\\pg_restore.exe",
    "--host", "localhost",
    "--port", "5432",
    "--username", "postgres",
    "--dbname", "mytestqq",
    "--role", "postgres",
    "--no-password",
    "--verbose",
    "D:\\sathish\\rawDatabase.backup"
};
p = r.exec(cmd);

परिवर्तन:

  • एकल-स्ट्रिंग प्रपत्र को exec . के अधिक सुरक्षित तर्क सरणी प्रपत्र में बदलें कॉल करें;
  • बैकस्लैश को rawDatabase में दोगुना करें पथ क्योंकि आपका मूल आदेश बैकस्लैश से बचने में विफल रहता है, इसलिए \r \ . के बजाय स्ट्रिंग में कैरिज रिटर्न है चार के बाद r चार।
  • एकरूपता के लिए प्रोग्राम पथ पर फॉरवर्ड स्लैश के बजाय डबल बैकस्लैश पर स्विच करें। यह बदलाव शायद कोई मायने नहीं रखता।

प्रक्रिया की वापसी स्थिति भी जांचें। आपको Process.waitFor() फिर एक बार बाहर निकलने के बाद Process.exitValue() परिणाम निर्धारित करने के लिए। आपको Process . द्वारा कैप्चर किए गए stderr और stdout की जांच करनी चाहिए त्रुटियों और लॉगिंग जानकारी के लिए आपत्ति।

आपके प्रोग्राम के काम न करने का कारण शायद इसलिए है:

  • आपके पास पुराना pg_restore है ताले पकड़ने के आसपास लटकने वाली प्रक्रियाएं; और/या
  • आप stdout और stderr का सेवन नहीं कर रहे हैं इसलिए pg_restore बफर्ड पाइप स्पेस खत्म हो जाता है और आउटपुट स्ट्रीम पर राइटिंग ब्लॉक हो जाती है।

यह सब बहुत आसान हो जाएगा यदि आप प्रोसेसबिल्डर का उपयोग करें इसके बजाय . प्रोसेसबिल्डर आपको आउटपुट लिखने के लिए फ़ाइल स्ट्रीम प्रदान करने देता है और आम तौर पर आपके लिए इसका बहुत ख्याल रखता है। आपको अभी भी प्रक्रिया के समाप्त होने की प्रतीक्षा करनी चाहिए और इसके रिटर्न कोड की जांच करनी चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि:डुप्लिकेट कुंजी मान postgreSQL में अद्वितीय बाधा का उल्लंघन करता है

  2. हम DeNormalized टेक्स्ट फ़ाइल एक से सामान्यीकृत तालिका कैसे बना सकते हैं?

  3. पंक्तियों की PL/pgSQL सरणी

  4. Linux CentOS 7 पर luasql कैसे स्थापित करें?

  5. सेवा रुकावट / बिना डाउनटाइम के Django एप्लिकेशन को परिनियोजित करें