मैं दो Oracle 10g स्कीमा कैसे अलग कर सकता हूँ?


14

मुझे लगता है कि दो बड़े जटिल ओरेकल स्कीमाओं के बीच कुछ अंतर है जो समान होना चाहिए, इसलिए जांच करने के लिए उन्हें डंप करने और अलग करने का फैसला किया। मुझे एक लेख ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ) मिला, जो तालिका और सूचकांक परिभाषाओं को डंप करने के लिए निम्न आदेश देता है।

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

हालाँकि, जब मैंने डंप किया और आउटपुट स्कीमा के स्पूल को अलग किया, तो लगभग हर लाइन पर तुच्छ अंतर थे जो अंतर को बेकार कर रहे थे। उदाहरण के लिए स्कीमा नाम प्रत्येक तालिका परिभाषा में शामिल है।

क्या ऐसा करने के लिए बेहतर तरीका है जो एक प्रारूप में सबसे महत्वपूर्ण स्कीमा डेटा देगा जो कि एक अलग टूल का उपयोग करके आसानी से तुलना की जा सकती है। मुझे टेबल, इंडेक्स और ट्रिगर्स में दिलचस्पी है।

मैं Oracle डेटाबेस 10g एंटरप्राइज़ संस्करण रिलीज़ 10.2.0.3.0 का उपयोग कर रहा हूं

जवाबों:


14

निशुल्क और ओपन-सोर्स स्कीमा क्रॉलर टूल जो मैंने लिखा था, वह करेगा जो आपको चाहिए। स्कीमाक्रॉलर आपके स्कीमा (तालिका, विचार, प्रक्रिया, और बहुत कुछ) के विवरण को एक सक्षम-सक्षम सादे-पाठ प्रारूप (पाठ, सीएसवी, या एक्सएचटीएमएल) में प्रस्तुत करता है। स्कीमा क्रॉलर डेटा (CLOBs और BLOB सहित) को एक ही सादे-पाठ प्रारूपों में भी आउटपुट कर सकता है। आप आउटपुट के संदर्भ संस्करण के साथ वर्तमान आउटपुट को अलग करने के लिए एक मानक अंतर प्रोग्राम का उपयोग कर सकते हैं।

https://www.SchemaCrawler.com

आपको अपने डेटाबेस के लिए JDBC ड्राइवर प्रदान करना होगा।


2
मुझे बहुत बाद में एहसास हुआ कि एफएक्यू का कहना है कि आपको ओपन सोर्स प्रोजेक्ट के साथ अपनी संबद्धता का खुलासा करने की आवश्यकता है, और मैंने अब ऐसा करना शुरू कर दिया है। हालांकि, मैं अपने जवाब से खड़ा हूं, और सोचता हूं कि यह खोज के लायक समाधान है। मैंने अपनी पिछली दो कंपनियों में स्कीमा क्रॉलर का उपयोग किया है, और दोनों विकास टीमों ने इस बात पर सहमति व्यक्त की है कि यह इस उद्देश्य के लिए एक उपयोगी उपकरण था। (नहीं, मैं बॉस नहीं था।)
सुलेह फतेही

6

आपको इस सामान की कोई आवश्यकता नहीं है।

otn.oracle.com

ओरेकल में एक फ्री टूल है जिसे SQL Developer कहा जाता है। इसमें स्कीमा भिन्न है।


4

आप उपयोग कर सकते हैं TOAD ओरेकल विकास के लिए एक महान सामान्य उपकरण है। परीक्षण के लिए एक परीक्षण संस्करण है। सुविधाओं की सूची से:

  • डेटा तुलना और सिंक विज़ार्ड
  • डेटाबेस प्लेटफार्मों पर डेटा सिंक्रनाइज़ करें

एक और उत्पाद जिसका आप परीक्षण कर सकते हैं वह है ओरेपावरटूल :

ओरापॉवरटूल देशी ओरेकल डेटाबेस उपयोगिताओं का एक संग्रह है। इस संग्रह में ओरेईडिट प्रो, एक पूरा ओरेकल डेवलपमेंट वातावरण, ओरेकल के लिए डीबीडीफ, किसी भी 2 ओरेकल डेटाबेस की तुलना और अपग्रेड करना, और ओरेकल के लिए डीबीएसस्क्रिप्ट, अपने ऑरेकल डेटाबेस की वस्तुओं और / या डेटा से बाहर SQL स्क्रिप्ट बनाएं।

नि: शुल्क विकल्प के रूप में आप इस कोडप्रोजेक्ट लेख की जांच कर सकते हैं: स्कीमा ओरेकल के लिए उपकरण की तुलना करें

यह छोटा VB.NET एप्लिकेशन आपको एक दूसरे के खिलाफ Oracle डेटाबेस स्कीमा की तुलना करने की अनुमति देता है। यह सुनिश्चित करने में बहुत सहायक होता है कि आपका विकास उदाहरण आपके उत्पादन उदाहरण के समान है; खासकर जब फ्रंट-एंड परिवर्तन लागू करते हैं।

1 : 1 : http://www.toadsoft.com/toad_oracle.htm


2

हम DKGAS 'DBDiff for Oracle' का उपयोग करते हैं , यह संपूर्ण स्कीमा या उसके भाग (तालिकाओं, अनुक्रमों, अनुक्रमित, अवरोधों, विशेषाधिकारों, पैकेजों, वस्तुओं और डेटा) की तुलना कर सकते हैं, या तो एक तुलना रिपोर्ट या एक अपग्रेड स्क्रिप्ट के रूप में।

हम डेटाबेस अपग्रेड स्क्रिप्ट के आधार के रूप में उत्तरार्द्ध का उपयोग करते हैं।


1

यदि आप पर्ल को चलाने में सक्षम हैं, तो आप SQLForce को देख सकते हैं , जो SQL के रूप में आपके स्कीमा के डंप का उत्पादन करने में सक्षम होना चाहिए। YOu तब मानक टेक्स्ट डिफरिंग टूल का उपयोग कर सकता है। एक उपकरण भी है जो दो स्कीमा लेगा और उन्हें समान बनाने के लिए ALTER कमांड का उत्पादन करेगा।


1

यदि आपके पास खर्च करने के लिए कुछ पैसे हैं, तो Oracle के लिए PowerDIFF का उपयोग करने पर विचार करें: http://www.orbit-db.com । यह टूल तालिकाओं, अनुक्रमितों की तुलना करता है और उत्कृष्ट रूप से und 'भिन्न' ऑपरेशन को अनुकूलित करने के लिए कई तुलनात्मक विकल्पों के साथ आता है। कुल अंतर स्क्रिप्ट (डीडीएल और डीएमएल कमांड) वैकल्पिक रूप से उत्पन्न होता है। डेटाबेस से जुड़ने के लिए आपको ODBC ड्राइवर की आवश्यकता होती है।

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