mysqldump -all-databases
सभी वस्तुओं को शामिल करता है ?
मुझे सभी डेटाबेस को नए सर्वर पर माइग्रेट करना है।
mysqldump -all-databases
सभी वस्तुओं को शामिल करता है ?
मुझे सभी डेटाबेस को नए सर्वर पर माइग्रेट करना है।
जवाबों:
कोई भी mysqldump -all-डेटाबेस सभी वस्तुओं को शामिल नहीं करता है
mysqldump --help
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
तो mysqldump --all- डेटाबेस के साथ केवल सभी डेटाबेस को डंप करता है।
नए डेटाबेस में सभी डेटाबेस को माइग्रेट करने के लिए, आपको पूर्ण बैकअप लेना चाहिए:
mysqldump एक संपूर्ण mysql उदाहरण है
mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql
दोष यह है कि इस तरह से बनाए गए बैकअप केवल mysql के उसी प्रमुख रिलीज़ संस्करण में पुनः लोड किए जा सकते हैं, जिसके साथ mysqldump उत्पन्न हुआ था। दूसरे शब्दों में, MySQL 5.0 डेटाबेस से एक mysqldump --all- डेटाबेस को 5.1 या 5.5 में लोड नहीं किया जा सकता है। कारण ? Mysql स्कीमा प्रमुख रिलीज के बीच पूरी तरह से अलग है।
यहां उन उपयोगकर्ताओं के लिए SQL अनुदान डंप करने का सामान्य तरीका है जो पठनीय और अधिक पोर्टेबल है
mysql -h... -u... -p... --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -h... -u... -p... --skip-column-names -A | sed 's/$/;/g' > MySQLGrants.sql
RolandoMySQLDBA के उत्तर पर एक नज़र डालें कि मैं एक बड़े डेटाबेस के mysqldump को कैसे अनुकूलित कर सकता हूं?
--single-transaction
माईसैम तालिकाओं के बैकअप के लिखे जाने के दौरान लिखे जा रहे हैं, तो एक सुसंगत बैकअप का उत्पादन नहीं होगा। हालाँकि, जोड़ना --single-transaction
एक अच्छा विचार है यदि आप सभी InnoDB का उपयोग कर रहे हैं और mysqldump
रनों के दौरान अवरुद्ध होने से बचना चाहते हैं ।
--events
जो के अलावा जरूरत है--routines
और--triggers
और आप भी छोड़े गए--single-transaction
अनावश्यक रूप से टेबल ताला से बचने के लिए।