क्या डॉकर मुझे उबंटू पर ओरेकल 11 जी डेटाबेस स्थापित करने में मदद कर सकता है?

हम अपने डेवलपर्स के साथ परीक्षण करने के लिए ओरेकल 11 जी इंस्टेंस प्रदान करने की कोशिश करने की एक आम समस्या से जूझ रहे हैं । हमारे मानक बिल्ड एजेंट उबंटू 12.04 पर आधारित हैं लेकिन ओरेकल केवल रेडहैट आधारित ओएस का समर्थन करता है ।

नेट के चारों ओर तैरते हुए उबंटू पर ओरेकल को स्थापित करने के बारे में कुछ हैक हैं, लेकिन वे बहुत नाजुक और हिट-एंड-मिस का मामला प्रतीत होते हैं ।

हम चाहते हैं कि करने के लिए होने से बचने का समर्थन करने के लिए एक पूरे का निर्माण सर्वर कठपुतली विन्यास के शीर्ष पर RedHat(/CentOS) सिर्फ समर्थन करने के क्रम में ओरेकल तो मैं शुरू किया गया था आश्चर्य है कि क्या हम कर सकते हैं गोदी श्रमिक को रोजगार प्रदान करने के लिए एक RedHat-पर्यावरण की तरह बस के लिए आवश्यक के लिए ओरेकल के शीर्ष पर हमारे मानक Ubuntu प्रणाली. विचार यह है कि ओरेकल अपने कंटेनर में चलेगा लेकिन बाकी बिल्ड एजेंट अभी भी मानक उबंटू पर चलेंगे, टीसीपी पर ओरेकल से बात करने में सक्षम होंगे ।

मैं जानता हूँ कि क्या LXC कर रहे हैं और उन दोनों के बीच अंतर और पूर्ण वर्चुअलाइजेशन तरह के वी एम/VirtualBox आदि, लेकिन मैं सोच रहा था कि क्या यह अभी भी संभव हो सकता है.

धन्यवाद ।

यदि ओरेकल एक्सप्रेस आपके लिए उपयुक्त है:

  1. डाउनलोड Oracle XE 11g rpm.
  2. एलियन का उपयोग करके आरपीएम को देब में बदलें ।
  3. डीपीकेजी-डीईबी कमांड का उपयोग करके डीईबी पैकेज को" निकालें" ।
  4. डीईबी स्क्रिप्ट को संशोधित करें:
    • बदलें ["$1"!= "1"] से ["$1"!= "इंस्टॉल करें"] प्रीइन्स्ट की शुरुआत में ।
    • बदलें [ "$1" = "1" -ओ-जेड" $2"] से ["$1 " = " कॉन्फ़िगर करें "- ए-जेड" $ 2"] पोस्टिंट की शुरुआत में ।
    • बदलें [ "$1" = "0" ] ["$1 " = "निकालें" - ओ" $1 " = "पर्ज"] प्रीरम और पोस्टआरएम में ।
    • 'चककॉन्फिग' को 'अपडेट-आरसी' में बदलें । डी' कमांड में postinst & prerm.
    • में init स्क्रिप्ट: निकालें निरपेक्ष पथ के कुछ सिस्टम कमांड; ठीक /etc/sysconfig/ओरेकल-xe के लिए /etc/default/ओरेकल-xe; ठीक /var/लॉक/subsys /var/लॉक; और इतने पर । ..
    • फ़ाइल को नियंत्रित करने के लिए निर्भरता जोड़ें: बीसी और लिबायो 1।
  5. देब कमांड का उपयोग करके देब पैकेज बनाएं ।

अब आप एक देब पैकेज के Oracle XE 11g. इसे स्थापित!

लेकिन अभी भी एक समस्या है: /देव/शम । यहां इसे कैसे ठीक किया जाए:

  1. लाइन में टिप्पणी करें / आदि / इनिट / माउंटेड-देव।conf: [ -ई /देव/shm ] || एलएन-s /भागो/shm /देव/shm.
  2. /आदि/एफएसटीएबी में एक पंक्ति जोड़ें: एसएचएम /देव/एसएचएम टीएमपीएफएस आकार=2 जी 0 0
  3. आर एम-एफ /देव/shm; mkdir /देव/shm; माउंट shm

शुरू Oracle XE: सेवा oracle-xe कॉन्फ़िगर करें

यहाँ मेरा कांटा है:

  • छवि का आकार 3.8 ग्राम से 825 एमबी तक कम करें
  • डेटाबेस आरंभीकरण छवि निर्माण चरण से बाहर चला गया
  • अब डेटाबेस कंटेनर स्टार्टअप पर इनिशियलाइज़ करता है जिसमें कोई डेटाबेस फाइल माउंटेड नहीं होती है
  • कंटेनर के बाहर मीडिया पुन: उपयोग समर्थन
  • कंटेनर स्टॉप पर सुंदर शटडाउन जोड़ा गया
  • हटा दिया sshd

आप यहां देख सकते हैं:
https://registry.hub.docker.com/u/sath89/oracle-xe-11g/
https://github.com/MaksymBilenko/docker-oracle-xe-11g

मैं निम्नलिखित का उपयोग कर रहा हूँ डॉकर छवि सफलता के अच्छे स्तर के साथ ।

इसे चलाने के लिए प्राप्त करें:

 docker pull wnameless/oracle-xe-11g

और

 docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g

मैं पुष्टि कर सकता हूं कि ओरेकल एक्सई डॉकर के भीतर काम करता है । एकमात्र मुद्दा यह है कि कंटेनर के अंदर एसएचएम केवल 65356 केएसईई के लिए कॉन्फ़िगर किया गया है https://github.com/dotcloud/docker/issues/2606अब तक का एकमात्र समाधान एलएक्ससी टेम्पलेट को बदलना और डॉकर को पुन: संकलित करना है (जो आसान है)

यह निश्चित रूप से एक व्यवहार्य दृष्टिकोण है । हम अपने मेजबान मशीनों के लिए उबंटू 14.04 का उपयोग करते हैं और विकास उद्देश्यों के लिए डॉकर कंटेनरों के भीतर कई ओरेकल 11 जी इंस्टेंस चलाते हैं ।

वर्तमान में (डॉकर 1.5) 11 जी और 12 सी दोनों के लिए मुख्य मुद्दा डॉकर की हार्ड-कोडेड साझा मेमोरी सीमा है अंक #2606. वर्तमान में इसके लिए दो वर्कअराउंड हैं:

  1. उपयोग करें docker run --privileged ... और उदाहरण शुरू करने से पहले अधिक मेमोरी के साथ रिमाउंट /देव/शम
  2. डॉकर को स्वयं संशोधित और पुनर्निर्माण करें । इस मामले के लिए मैंने 12 सी के लिए एक डॉकरफाइल को एक साथ रखा है जो एक बार में एक छवि बनाने की अनुमति देता है: https://github.com/arpagaus/docker-oracle-12c

आप ओईएल 6.5 एलएक्ससी लिनक्स कंटेनरों का उपयोग उबंटू 14.04 के ऊपर कर सकते हैं जैसा कि मेरे ब्लॉग पर चरण-दर-चरण वर्णित है:

https://sites.google.com/site/nandydandyoracle/technologies/lxc/oracle-lxc-vlc

यदि आप इस पर ओरेकल से किसी भी प्रकार का समर्थन प्राप्त करने की उम्मीद करते हैं, तो इस विचार को भूल जाएं । …

Oracle RDMS एक राक्षस है… यह एक सरल होने का मतलब नहीं है, इसे यहां स्थापित करें और डेटाबेस पर उपयोग करें । यह तीव्र है और ओरेकल चाहता है कि आप यह जानें । यदि आपके डेवलपर्स वास्तव में उबंटू से बंधे हैं, तो मैं ओरेकल 11 जी के लिए आपकी आवश्यकता का पुनर्मूल्यांकन करने का प्रयास करूंगा (यदि आपको एंटरप्राइज़ डिस्ट्रो की आवश्यकता नहीं है तो आपको शायद एंटरप्राइज़ आरडीएमएस की आवश्यकता नहीं है) । यह एक बहुत भयानक लगता है जैसे आप बिल्ड एजेंट के साथ चुंबन को नियोजित कर रहे हैं और पूरी तरह से सब कुछ भूल रहे हैं ।

मैंने आज सुबह ही डॉकर में देखा, इसने मुझे प्रोडक्शन रेडी के रूप में बिल्कुल भी प्रभावित नहीं किया । tbh.

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

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

स्पष्ट करने के लिए-मैं एक शुद्ध सॉफ्टवेयर कंपनी के निर्माण इंजीनियरिंग व्यवसाय में हूं । यह आंतरिक खपत के लिए नहीं है, बल्कि यह सत्यापित करने के लिए है कि हमारे वेब एप्लिकेशन ओरेकल से बात कर सकते हैं । हम इसके लिए ओरेकल एक्सप्रेस का उपयोग करते हैं और ओरेकल के समर्थन की आवश्यकता नहीं है ।