Mysqldump से scp का पुनर्निर्देशित आउटपुट


13

मैंने एक साल पहले linux के साथ काम किया था जिसने इस निफ्टी ट्रिक को अंजाम दिया। वह mysqldump कर सकता था, लेकिन डिस्क पर लिखने के बजाय आउटपुट को scp / ssh कनेक्शन पर रीडायरेक्ट करता था । हमने इस शांत का थोड़ा उपयोग किया जहां मैं काम करता था, लेकिन मुझे याद नहीं है कि यह कैसे करना है।

मुझे अब इस मुद्दे का सामना करना पड़ रहा है, जहां मेरे सर्वर में मेरी हार्ड ड्राइव पिछले पैरों पर है और गहन उद्देश्यों के लिए, स्थायी रूप से केवल पढ़ने के लिए घुड़सवार है।

मैं इस कमांड लाइन की प्रवंचना का उपयोग करने की उम्मीद कर रहा था, फिर भी अपने डेटाबेस को एक नए सर्वर पर वापस करने में सक्षम हो सकता हूं, क्योंकि डंप को स्थानीय डिस्का एनडी में स्थानांतरित करना लिखना स्पष्ट रूप से प्रश्न से बाहर है।

क्या यह वास्तव में वास्तव में कम चाल है? यदि ऐसा है तो वाक्य रचना क्या है?

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


1
"इरादे और उद्देश्य"
इग्नासियो वाज़केज़-अब्राम्स

जवाबों:


11

mysqldump dbname | ssh root@remoteserver.com "mysql -D dbname"

वह काम करना चाहिए :-)

सिस्टम के बीच कुंजियाँ सेट करें ताकि आप ऐसा कर सकें कि w / o को लॉगिन / पास की आवश्यकता पड़े :-)


यह वास्तव में निफ्टी है, डंप को सीधे दूरस्थ सर्वर पर mysql में पाइप करना, अनिवार्य रूप से डेटाबेस को क्लोन करना एक कमांड है। क्या मैं सही हूँ?
xzyfer

1
आप इसे मिल गया; बेशक आप हमेशा बस एक फ़ाइल को धक्का दे सकते हैं, लेकिन मैं डंप पसंद करता हूं क्योंकि वे आपको बैकअप के लिए रोल करने की अनुमति देते हैं यदि आवश्यक हो तो :-) अपनी कॉन्फिग फाइलों में एक आईपी पर बदलने से बस वास्तविक समय में। ... बहुत बड़ा लाभ। हम अपने लिंडोड सामान पर हर समय ऐसा करते हैं
ग्लेन केली

मुझे लगता है कि यहाँ कुछ पाइप बफरिंग मुद्दे हो सकते हैं?
फिल होलेनबैक

10
mysqldump ... | ssh ... "cat > out.dmp"

यह मेरे लिए बहुत अच्छा काम किया। मैंने अपने मैक ओएस एक्स लैपटॉप पर सार्वजनिक कुंजी प्रमाणीकरण स्थापित किया और mysqldump -p <dbname> | ssh <user>@<ip_address> "cat > <filename>.sql" वास्तव में मुझे जो चाहिए था वह भागा ।
harperville

2

मुझे @ GlennKelley का उत्तर पसंद है, लेकिन निम्नलिखित बातों को बताना चाहता हूं:

हमारे पास एक डेटाबेस था जो 450GB का था, लेकिन मेजबान पर केवल 500GB का प्रावधान था। हम स्थानीय रूप से निर्यात नहीं कर सकते थे, इसलिए हम दूर से निर्यात करते थे। हमने आउटपुट को मान्य किया और सैकड़ों उदाहरण थे जहां पाइप बफरिंग मुद्दों के कारण आउटपुट भ्रष्ट था।

यहाँ सबसे अच्छा समाधान है, लक्ष्य होस्ट से, जहाँ आप चाहते हैं कि आपका डंप समाप्त हो, चलाए, mysqldumpलेकिन -hहोस्ट के लिए विकल्प का उपयोग करें । होस्ट को MySQL सर्वर पर इंगित करें और a का उपयोग करके डेटा निर्यात करें >

mysqldump -u root -p -h 10.1.1.199 --all-databases ...<more options>... > dump.sql
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.