2013-01-31 17 views
5

मैं एसक्यूएल सर्वर 2008MySQL -> एसक्यूएल सर्वर प्रवासन बड़ी मेज मुद्दा

मैं MySQL सॉफ्टवेयर के लिए एसक्यूएल सर्वर प्रवासन सहायक उपयोग कर रहा हूँ पर मेरी कंपनी के पुराने MySQL डेटाबेस विस्थापित करने के लिए कोशिश कर रहा हूँ और सब कुछ के साथ सहायक को छोड़कर अच्छा काम करता है बड़ी तालिकाओं के लिए (जिनमें लगभग 150 मिलियन + पंक्तियां होती हैं) - यह स्कीमा बनाता है, आदि और जब मैं डेटा माइग्रेट करने का चयन करता हूं तो मुझे Migrating myTable > myTable with 0 of 159216578 rows processed पर अटक जाता है - यह लगभग 1-2 घंटे तक रहता है और क्रैश करता है और कहता है यह एक त्रुटि फ़ाइल नहीं बना सका।

क्या कोई काम/सेटिंग्स मैं इस काम को बदलने के लिए बदल सकता हूं? क्या कोई बेहतर तरीका है (मेरे पास .frm, .MYD, .MYI फ़ाइलों तक पहुंच है यदि मैं ऐसा कुछ भी कर सकता हूं) - मैं इन तालिकाओं को माइग्रेट करने के बाद तक कुछ भी खुला हूं।

धन्यवाद !!

+0

एसएसएमए का कौन सा संस्करण आप उपयोग कर रहे हैं? नेटवर्क MySQL, SQL सर्वर, और जहां आप SSMA चला रहे हैं के बीच व्यवस्थित किया गया है? मैंने इस सप्ताह माइग्रल टेबल के साथ 5.1 मिलियन पंक्तियों के साथ माइग्रेशन किया और यह बहुत अच्छा काम किया। – mellamokb

+0

क्या आप डिफ़ॉल्ट सेटिंग्स का उपयोग कर रहे हैं, यानी बैच आकार = 1000? मुझे कोई संदर्भ नहीं मिल रहा है कि टेबल आकार पर एक सीमा होनी चाहिए, लेकिन ऐसा लगता है कि आपका कंप्यूटर माइग्रेशन के दौरान बहुत अधिक डेटा डाउनलोड करने का प्रयास कर रहा है (इसलिए '0' पर फंस रहा है और फिर क्रैश हो रहा है)। मशीन में कितनी रैम है कि आप एसएसएमए चला रहे हैं? इस तालिका की एक पंक्ति में कितना डेटा है, यानी, क्या वहां बहुत सारे विस्तृत या बाइनरी कॉलम हैं, या स्कीमा अपेक्षाकृत हल्का और सरल है? – mellamokb

+0

MySQL डेटा मेरी स्थानीय मशीन - 'localhost' पर है - और SQL सर्वर दूरस्थ सर्वर पर है। डिफ़ॉल्ट सेटिंग्स के लिए, मैं हूं और बैच आकार 1000 है - कोई विचार ?? 5 मिलियन-पंक्ति तालिकाओं के रूप में, वे ठीक काम करते हैं ... यह 100 मिलियन पंक्ति सारणी है जो इस मुद्दे को उत्पन्न कर रही हैं ... –

उत्तर

0

मुझे लगता है कि आप WHERE क्लॉज में कुछ का उपयोग करके एक समय में लगभग 10 मिलियन पंक्तियों (MySQL हार्डवेयर के आधार पर) निर्यात करना चाहते हैं जो आपको डेटा (आईडी, दिनांक, आदि) को अलग करने की अनुमति देगा।

SELECT * FROM Table1 WHERE ID BETWEEN x and y INTO OUTFILE 'C:\temp\data.csv'; 

आप एसक्यूएल सर्वर आयात/निर्यात विज़ार्ड का उपयोग यह MSSQL में प्राप्त करने के लिए कर सकते हैं।

संबंधित मुद्दे