backup mysql restone ง่ายๆด้วย mysqldump
DateTime : 2010-12-04 23:33:55
Post By : huwko
IP Address : 118.175.76.231
สวัสดีครับ ช่วงนี้พอดีทำ backup database นิดหน่อย จริงๆก็ไม่ได้ยุ่งยากมากนักครับ แต่เห็นว่าน่าจะมีประโยชน์ หรือใครอาจจะขี้เกียจอ่าน manual MySql ที่เป้นภาษาอังกฤษก็สามารถมาอ่านบทความนี้ได้ครับ
การ Backup Database MySql ผมว่าทำได้ค่อนข้างง่ายและสะดวกดี นอกจากนี้ยังสามารถดูผลการ backup ได้ง่ายๆ ด้วยเนื่องจากจะถูกสร้างออกมาเป็น SQL statement ที่สามารถอ่านได้ไม่ยากครับ จริงๆการทำการ backup อาจจะใช้ phpMyAdmin ทำก็ได้ แต่หลังจากผมลองใช้ mysqldump ดูแล้ว พบว่าการใช้ mysqldump เร็วกว่ากันแบบเทียบไม่ติด และยังสามารถทำให้เป็น auto ก็ได้โดยใช้ร่วมกัน cron บน unix ครับ ก่่อนอื่นมาดู format ของ command ดูก่อนครับ
mysqldump --user [username] --password=[password] [databasename] > [dump file]
โดย --user [username] ก็ใช้ใส่ username ของ database เข้าไปครับ หรือ password ก็ให้ใส่ password ที่ใช้กับ username ที่ระบุเข้าไปครับ หากไม่มี username และ password ก็ไม่ต้องใส่เข้าไปครับ ส่วน databasename ก็คือชื่อ database ที่เราจะทำการ backup ครับ dump file ก็เป็น file backup ที่เราจะเก็บเอาไว้ครับ ลองดูตัวอย่าง เช่น database ชื่อ abc , username เป็น user1 และ password เป็น pass1 ให้เก็บไว้ใน dump file ชื่อ back.sql ก็ใช้ command ได้ดังนี้ครับ
mysqldump --user user1 --password=pass1 abc > back.sql
จะเห็นว่าไม่ยากเลยนะครับ หรือหากเป็น database ชื่อ abc แต่ไม่ได้สร้าง username กับ password ไว้ และให้เก็บไว้ใน file back.sql ก็สามารถระบุได้ดังนี้ครับ
mysqldump abc > back.sql
ครับเมื่อเรา backup database กันได้แล้วคราวนี้มาดูวิธีการ restore กันบ้างครับ วิธีการก็ไม่ยากครับ ใช้คำสั่ง mysql ได้เลยครับ โดยมี format ประมาณนี้ครับ
mysql [database name] < [backup file name]
เช่นเราจะเอาคืนจาก file ที่เรา backup ไว้เมื่อกี้ ก็
mysql abc2 < back.sql
หรือหากเรามี username กับ password ด้วยก็เหมือนกันครับคือ
mysql --user user1 --password=pass1 abc2 < back.sql
ซึ่งจะเห็นว่าผม restore กลับมาที่ database อีกตัวชื่อ abc2 ครับ ซึ่งก่อนจะ restore ได้ก็ต้องสร้าง database ตัวนี้ขึ้นมาก่อนนะครับ
เอาเป็นว่าผมจบแค่นี้ก่อนครับ จริงๆยังมี option ของ mysqldump อีกนิดหน่อย แต่คิดว่าคงน่าจะไม่ได้ใช้เท่าไหร่ ทำ backup แค่นี้ก็พอครับ
Message !!
หากต้องการตอบกระทู้ Webboard กรุณาเข้าใช้ระบบก่อนนะค่ะ..
กระทู้ตอบกลับ
public
void Backup()try
{ { path = } { path = } psi.FileName = psi.RedirectStandardInput = psi.RedirectStandardOutput = psi.Arguments = psi.UseShellExecute = output = process.StandardOutput.ReadToEnd(); file.WriteLine(output); process.WaitForExit(); file.Close(); process.Close(); progressBar1.Visible = progressBar1.Minimum = 0; progressBar1.Maximum = 10010; progressBar1.Step = 1; { val = i * 2; progressBar1.Step += 1; progressBar1.Value = progressBar1.Step; { progressBar1.Value = progressBar1.Maximum; } i = i + 1; } progressBar1.Visible = } { } }
{
Post โดย : huwko Date: 2010-12-05 00:26:36 ip: 118.175.76.231