คำถามง่ายๆเกี่ยวกับการใช้ mysqldump


0

ฉันมีเว็บไซต์โคมไฟพร้อมแบ็กเอนด์ mysql พร้อมเอ็นจิ้น InnoDb สำหรับตาราง

ฉันต้องการใช้ mysqldump เพื่อทิ้งฐานข้อมูลเป็นระยะ - โดยไม่ต้องหยุดเซิร์ฟเวอร์ mysql (เช่นปิดเว็บไซต์) ในช่วงเวลาของการสำรองข้อมูล

ฉันประหลาดใจที่ฉันไม่สามารถหาข้อมูลนี้ได้ทุกที่ - ไม่ได้อยู่ในเอกสาร mySQL มีการกล่าวถึงมากมายเกี่ยวกับ mysqlhotcopy แต่ใช้งานได้กับตาราง IMSAM เท่านั้นดังนั้นจึงไม่มีประโยชน์ / ใช้กับฉัน

ไม่มีใครรู้ว่า (อย่างไร) ฉันสามารถใช้ mysqldump เพื่อคัดลอก / ถ่ายโอนข้อมูลของฐานข้อมูลที่ยังคงใช้อยู่ได้หรือไม่

ลิงก์ไปยังเอกสารอย่างเป็นทางการจะมีประโยชน์มากเนื่องจากฉันต้องการตรวจสอบให้แน่ใจว่าฉันได้รับสิ่งนี้อย่างถูกต้อง

ฉันกำลังใช้งาน Ubuntu 10.0.4 LTS

คำตอบ:


1

วิธีปกติในการทำเช่นนี้คือการตั้งค่าอินสแตนซ์ทาสของ MySQL และทำการสำรองข้อมูลจากที่นั่น คุณไม่จำเป็นต้องมีเซิร์ฟเวอร์แยกต่างหากสำหรับ MySQL MySQL มันก็โอเคที่จะเรียกใช้บนเซิร์ฟเวอร์เดียวกัน (ถ้าคุณมีพื้นที่ว่างในดิสก์และหน่วยความจำบางส่วนจากด้าน CPU ของสิ่งต่าง ๆ ที่ MySQL ทาสใช้งานเป็นส่วนใหญ่ ไม่ทำอันตรายมาก)

แก้ไข::เพิ่มลิงค์เอกสารการจำลองแบบ MySQL อย่างเป็นทางการ

คำอธิบายแบบยาวเกี่ยวกับการจำลองแบบ MySQL: http://dev.mysql.com/doc/refman/5.1/en/replication.html

การตั้งค่าการจำลองแบบวิธีการ: http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html


Janne: คุณมี URL ที่แสดงวิธีการทำเช่นนี้หรือไม่? ตั้งแต่ครั้งแรกของฉันฉันจะค่อนข้างใช้ชุดคำสั่งที่ "พยายามและทดสอบ" แทนที่จะพยายามรวบรวมอะไรบางอย่างไว้ด้วยกัน เนื่องจากการสำรองข้อมูล / เรียกคืนที่ประสบความสำเร็จนั้นสำคัญมาก
morpheous

morpheous: แน่นอน ฉันหวังว่าเอกสารของตัวเองของ MySQL คือ "ทดลองและทดสอบ" เพียงพอแล้ว ฉันแก้ไขคำตอบก่อนหน้าของฉัน
Janne Pikkarainen

1

ฉันเห็นด้วยกับ Janne การใช้การจำลองแบบเป็นวิธีปกติในการทำสิ่งต่าง ๆ แต่คุณสามารถใช้ MySqlDump ได้ คุณไม่จำเป็นต้องปิดฐานข้อมูลสำหรับสิ่งนั้น มันจะไม่ตอบสนองเพียงเล็กน้อยในขณะที่ ขึ้นอยู่กับประเภทของแอปและปริมาณข้อมูลที่คุณมี

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


มันต้องมีการเปลี่ยนแปลง 6 ตัวอักษรสำหรับการแก้ไข ... ฉันคิดว่า MySqlDumb ควรสะกดอย่างถูกต้องกับ MySqlDump เพราะมันเป็นตัวพิมพ์ที่แย่มาก;)
ลุง Iroh

0

ฉันใช้สคริปต์เวอร์ชันที่แก้ไขที่พบที่นี่:

http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/

(ฉันเพียงแค่ลบบางบรรทัดที่สร้างและกำหนดสิทธิ์ในไดเรกทอรีสำรอง)

มันใช้งานได้ดีสำหรับฉันบนเว็บเซิร์ฟเวอร์ Ubuntu สด


0

คุณไม่จำเป็นต้องปิดฐานข้อมูลสำหรับการใช้ MySQL Dump นี่เป็นสคริปต์ที่ฉันใช้ใน Windows

@echo Dumping data...

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" --add-drop-table=true -h localhost -u root -ppassword mydatabase table1 table2 table3 1> %1

หากคุณต้องการเรียกใช้โดยตรงเพียงแค่ใช้

mysqldump.exe" --add-drop-table=true -h localhost -u root -p mydatabase table1 table2 table3 > datadump.sql

และกำลังจะขอรหัสผ่าน ในตัวอย่างนี้ฉันแค่ทำการสำรอง Talbes (1 ถึง 3) แต่คุณสามารถสำรองข้อมูลทุกอย่างได้ มีตัวเลือกต่าง ๆ มากมาย สำหรับการกู้คืนแบตช์ไฟล์คือ:

@echo Loading Data...
@"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -ppasword  -h localhost mydatabase 0< %1

หรือเพียงแค่

mysql.exe" -u root -p -h localhost mydatabase < datadump.sql
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.