Expdp और impdp कमांड का उपयोग करके डेटा ट्रांसफर कैसे करें?


29

मैं एक ओरेकल नोब हूँ, और मेरा इरादा एक ओरेकल डेटाबेस के भीतर एक स्कीमा से दूसरे स्कीमा में सभी डेटा और मेटाडेटा को स्थानांतरित करना है। मैं डेटापंप expdpऔर impdpकमांड का उपयोग करने की योजना बना रहा हूं । मेरे पास इस बारे में प्रश्न हैं:

  • क्या मैं एक उपयोगकर्ता के बिना एक लक्ष्य स्कीमा बना सकता हूं या क्या मुझे पहले एक उपयोगकर्ता बनाना चाहिए (जो एक स्कीमा भी बनाता है)?
  • क्या मैं SYS (sysdba) खाते का उपयोग करके निष्पादित expdpऔर impdpकमांड कर सकता हूं ? यह एक पसंदीदा तरीका है?
  • क्या यह कथन एक स्कीमा से सभी ऑब्जेक्ट (डेटा और मेटाडेटा) लेता है और इनको एक अलग स्कीमा में स्थानांतरित करता है?

    expdp \"/ as sysdba\" schemas=<schemaname> directory=dumpdir dumpfile=<schemaname>.dmp logfile=expdp_<schemaname>.log  

    तो क्या लक्ष्य स्कीमा impdpकमांड के बाद स्रोत स्कीमा की एक सटीक प्रतिलिपि है ?

जवाबों:


31

impdp यदि यह अभी तक मौजूद नहीं है, तो उपयोगकर्ता बनाएंगे, इसलिए आपको इसके बारे में चिंता करने की ज़रूरत नहीं है जब तक कि आप जो चाहते हैं वह नहीं है।

रन impdbया के expdpरूप में sysdba, केवल ऐसा न करें कि यदि ओरेकल विशिष्ट परिस्थितियों में समर्थन का अनुरोध करता है। इसके लिए एक साधारण उपयोगकर्ता का उपयोग करें - एक जिसे dbaउदाहरण के लिए भूमिका दी गई है । ( [IMPORT|EXPORT]_FULL_DATABASEइस प्रकार की चीज़ों के लिए विशेष रूप से विशेषाधिकार हैं , आपको Oracle निर्देशिका ऑब्जेक्ट (ओं) तक भी पहुँच प्रदान करनी होगी।)

एक पूर्ण स्कीमा निर्यात (मेटाडेटा और सामग्री) वास्तव में ऐसा दिखेगा:

expdp user/pass schemas=<schemaname> directory=dumpdir \
      dumpfile=<schemaname>.dmp \
      logfile=expdp_<schemaname>.log

यदि आप एक अलग उपयोगकर्ता / स्कीमा आयात करना चाहते हैं (लक्ष्य डेटाबेस स्रोत के समान हो सकता है), आप उपयोग कर सकते हैं:

impdp user/pass schemas=schema1 directory=dumpdir \
      remap_schema=schema1:schema2 \
      dumpfile=schema1.dmp \
      logfile=impdp_schema2.log

यदि आप पूर्ण आयात नहीं चाहते हैं, तो आप डेटा और मेटाडेटा दोनों पर कुछ फ़िल्टर सेट कर सकते हैं। आयात संचालन के दौरान फ़िल्टरिंग देखें ।

उपयोगिताएँ गाइड सभी विवरण होता है कि मैं दृढ़ता से कम से कम पढ़ने सिंहावलोकन भाग सलाह देते हैं।


2

छंटनी की गई तालिकाओं को आयात करने के लिए, यानी आप केवल यह चाहते हैं कि डेटा वापस तालिका में आयात किया जाए:

impdp user/pass TABLES=dept DIRECTORY=TEST_dir dumpfile=TEST.dmp logfile=expdpTEST.log TABLE_EXISTS_ACTION=REPLACE

मेरी तालिका के ऊपर deptमैं आयात करना चाहता हूं। मैंने इसे पहले ही काट दिया है। डंपफाइल जो है TEST.dmp, और logfileजो expdpTEST.logमैं चाहता हूं कि केवल डेटा आयात किया जाए (तालिका संरचना समान होगी इसलिए हम पैरामीटर का उपयोग करते हैं TABLE_EXISTS_ACTION)।

आप 2 टेबल, उदाहरण के लिए छोटा कर दिया है empऔर dept, और empटेबल है dept_idविदेशी कुंजी के रूप में है, तो आप आयात करने की आवश्यकता deptतालिका पहले और उसके बाद empआयात के दौरान बचने त्रुटियों के लिए तालिका।

अधिक जानकारी http://satya-dba.blogspot.in/2009/05/datapump.html

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