क्या ओरेकल 11gR2 में स्कीमा आयात करने का एक सुविधाजनक तरीका एक एकल नए या विभिन्न तालिकाओं का उपयोग करना है जहां डेटा उत्पन्न हुआ है?
उदाहरण के रूप में, मैंने OLDDB से BLOG_DATA को निर्यात किया है, जहां सभी उपयोगकर्ता डेटा USERS तालिकाओं में संग्रहीत किए जाते हैं।
NEWDB पर, मैं BLOG_DATA स्कीमा आयात करना चाहता हूं, लेकिन विशेष रूप से इस उपयोगकर्ता के लिए बनाए गए BLOG_DATA टेबलस्पेस में उपयोगकर्ता ऑब्जेक्ट संग्रहीत करता है।
मैंने BLOG_DATA उपयोगकर्ता बनाया है, BLOG_DATA टेबलस्पेस बनाया है और इसे उस उपयोगकर्ता के लिए डिफ़ॉल्ट टेबलस्पेस के रूप में सेट किया है और एक उपयुक्त असीमित कोटा जोड़ा है।
CREATE TABLESPACE blog_data DATAFILE SIZE 1G;
CREATE USER blog_data IDENTIFIED BY secretpassword DEFAULT TABLESPACE blog_data QUOTA UNLIMITED ON blog_data;
GRANT connect,resource TO blog_data
स्कीमा OLDDB से कुछ के साथ निर्यात किया गया था
exp blog_data/secretpassword@OLDDB file=blog_data.dmp
नीचे फिल का उत्कृष्ट उत्तर पढ़ने के बाद, मैंने खुद को आश्चर्यचकित पाया :
चूंकि डेटा के पास डिफ़ॉल्ट टेबलस्पेस की तुलना में जाने के लिए कोई अन्य जगह नहीं है - उपयोगकर्ता के पास एकमात्र टेबलस्पेस है जिस पर कोटा है - क्या यह प्रभावी रूप से उस डिफ़ॉल्ट टेबलस्पेस में सभी उपयोगकर्ता वस्तुओं को लगाने के लिए मजबूर करेगा?
imp blog_data/secretpassword@NEWDB file=blog_data.dmp
इसके बाद NEWDB पर blog_data टेबलस्पेस में पूरे ब्लॉग_डेटा स्कीमा को रखा जाएगा? क्या कोई कारण है कि यह काम नहीं करेगा या कि मैं कुछ वस्तुओं आदि के साथ समस्याओं में चला जाऊंगा?
अपडेट करें:
मैंने एक त्वरित परीक्षण किया और यह मामला पाया। Imp
उस उपयोगकर्ता के लिए डिफ़ॉल्ट टेबलस्पेस में ऑब्जेक्ट रखता है, बशर्ते वह इसे मूल टेबलस्पेस (उदाहरण के लिए टेबलस्पेस मौजूद नहीं है) में नहीं रख सकता है। पूर्ण विवरण: http://www.dolicapax.org/?p=57
फिर भी, मुझे लगता है कि फिल जैसे डेटा पंप का उपयोग करना पसंदीदा विकल्प हो सकता है।
exp
उपयोगिता याexpdp
डेटा पंप के साथ निर्यात किया गया था ?