2011-02-04 13 views
5

मेरे पास एक जावा एप्लिकेशन है जो MySQL को बैक एंड के रूप में उपयोग करता है, हर रात हम mysqldump का उपयोग करके mysql का बैकअप लेते हैं और एप्लिकेशन उस समय अवधि (ऐप 20 मिनट) के लिए काम करना बंद कर देता है।mysql - mysqldump कैसे काम करता है?

कमांड बैकअप लेने के लिए उपयोग किया जाता है।

$MYSQLDUMP -h $HOST --user=$USER --password=$PASS $database > \ 
$BACKDIR/$SERVER-mysqlbackup-$database-$DATE.sql 
gzip -f -9 $BACKDIR/$SERVER-mysqlbackup-$database-$DATE.sql 

क्या यह सामान्य है या क्या मैं कुछ गलत कर रहा हूं जिससे उस समय डीबी को रोक दिया जा रहा है?

धन्यवाद, कश्मीर

उत्तर

1

mysqldump टेबल पर एक पढ़ने ताला मिलता है और आदेश के लिए एक सुसंगत बैकअप सुनिश्चित करने के लिए बैकअप की अवधि के लिए इसे पकड़ है। हालांकि, एक पठन लॉक बाद में पढ़ सकता है, यदि कोई लेखन (यानी read -> write -> read) के बीच होता है: पहला रीड लॉक लिखने वाले लॉक को अवरुद्ध करता है, जो दूसरे पढ़ने वाले लॉक को अवरुद्ध करता है।

यह आपके तालिका प्रकार पर निर्भर करता है। यदि आप MyISAM का उपयोग कर रहे हैं, तो ताले पूरे टेबल पर लागू होते हैं और इस प्रकार पूरी तालिका लॉक हो जाएगी। मेरा मानना ​​है कि इनो डीबी में ताले अलग-अलग काम करते हैं, और यह पूरी तालिका को लॉक नहीं करेगा।

0

आप --skip-lock-tables बता सकते हैं लेकिन इससे आपके बैकअप के रूप में डेटा को संशोधित किया जा सकता है। इसका मतलब यह हो सकता है कि आपका डेटा असंगत है और सभी प्रकार की त्रुटियों को फेंक देता है। उस समय अपने बैकअप को सर्वश्रेष्ठ बनाने के लिए जब कम से कम लोग इसका इस्तेमाल करेंगे।

1
If tables are stored in the InnoDB storage engine, mysqldump provides a 
    way of making an online backup of these (see command below). 

    shell> mysqldump --all-databases --single-transaction > all_databases.sql 

यह मदद मिल सकती है ... विशेष रूप से --एकल लेनदेन विकल्प है, और नहीं --all-डेटाबेस एक ... (mysqldump मैनपेज से)

2

देखें https://serverfault.com/questions/224711/backing-up-a-mysql-database-while-it-is-still-in-use/224716#224716

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

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