สํารองและกู้คืนฐานข้อมูล MySQL สําหรับ Windows

วันที่สร้างเพจ :

สภาพแวดล้อมการยืนยันการทํางาน

MySQL
  • MySQL 8.0 รุ่นชุมชน
หน้าต่าง
  • หน้าต่าง 11

สภาพแวดล้อมที่ต้องการ

MySQL
  • MySQL 8.0
หน้าต่าง
  • หน้าต่าง 11
  • หน้าต่าง 10
เซิร์ฟเวอร์ Windows
  • หน้าต่างเซิร์ฟเวอร์ 2022
  • วินโดวส์เซิร์ฟเวอร์ 2019
  • วินโดวส์ เซิร์ฟเวอร์ 2016
  • Windows Server 2012 R2

เงื่อนไขเบื้องต้น

  • ต้องติดตั้งฐานข้อมูล MySQL
  • ฐานข้อมูลที่จะสํารองข้อมูลมีอยู่แล้ว
  • กําหนดค่าตัวแปรสภาพแวดล้อมและอนุญาตให้คุณเรียกใช้ MySQL จากพรอมต์คําสั่ง

เกี่ยวกับประเภทการสํารองข้อมูล

ฉันจะไม่ลงรายละเอียดที่นี่ แต่ MySQL มีการสํารองข้อมูลประเภทต่อไปนี้:

ประเภท
คําสั่งสํารองข้อมูลข้อมูลสํารอง หมายเหตุ
mysql ดัมพ์ การสํารองข้อมูลเชิงตรรกะ วิธีการสํารองข้อมูลแบบเก่า GUI ยังใช้สิ่งนี้
mysql ปั๊ม การสํารองข้อมูลเชิงตรรกะ เวอร์ชันปรับปรุงของ mysqldump
ยูทิลิตี้การถ่ายโอนข้อมูลอินสแตนซ์ MySQL Shell และยูทิลิตี้การโหลดการถ่ายโอนข้อมูล การสํารองข้อมูลเชิงตรรกะ เป็นการสํารองข้อมูลเชิงตรรกะ เป็นข้อมูลล่าสุดในขณะนี้
Percona XtraBackup การสํารองข้อมูลทางกายภาพ ผลิตภัณฑ์ของบุคคลที่สามที่อนุญาตให้สํารองข้อมูลทางกายภาพ
ปลั๊กอินโคลน การสํารองข้อมูลทางกายภาพ การสํารองข้อมูลทางกายภาพอย่างเป็นทางการของ MySQL อย่างไรก็ตาม จําเป็นต้องมีปลั๊กอินเพิ่มเติม

การสํารองฐานข้อมูลด้วย GUI (MySQL Workbench)

หากคุณต้องการทํางานอย่างปลอดภัยใน GUI โดยไม่ต้องใช้คําสั่งคุณสามารถทําการสํารองข้อมูลใน MySQL Workbench ประเภทการสํารองข้อมูลที่ดําเนินการใน MySQL Workbench คือ "mysqldump"

เปิด MySQL Workbench

เลือกการเชื่อมต่อกับฐานข้อมูลที่คุณต้องการสํารองข้อมูล

เมื่อฐานข้อมูลที่จะสํารองข้อมูล ให้เลือกแท็บ การดูแลระบบ จาก Navigator ทางด้านซ้าย แล้วเลือก การส่งออกข้อมูล

หน้าจอ การส่งออกข้อมูล จะเปิดขึ้น หน้าจอค่อนข้างใหญ่ ดังนั้นให้ขยายหน้าต่างจนกว่าคุณจะเห็นปุ่ม "เริ่มส่งออก" ที่มุมล่างขวา

ขั้นแรก ให้เลือกฐานข้อมูลที่คุณต้องการสํารองข้อมูล คุณยังสามารถเลือกได้มากกว่าหนึ่งรายการ

ใน "วัตถุที่จะส่งออก" คุณสามารถเลือกได้ว่าจะสํารองขั้นตอนทริกเกอร์ ฯลฯ ได้เช่นกัน รายการนี้เป็นทางเลือก

ใน "ตัวเลือกการส่งออก" คุณสามารถเลือกจากสองตัวเลือกต่อไปนี้:

คําอธิบายประเภท
ส่งออกไปยังโฟลเดอร์โครงการถ่ายโอนข้อมูล เอาต์พุตเป็นตารางหรือไฟล์กระบวนงานต่อกระบวนงานในโฟลเดอร์ที่กําหนด
ส่งออกไปยังไฟล์ในตัว ฝังทุกอย่างไว้ในไฟล์เดียวและส่งออก

ไม่สําคัญว่าคุณจะส่งออกอันไหน หากคุณเลือกด้านบน จะง่ายเพราะคุณสามารถลบออกได้อย่างง่ายดายหากคุณต้องการกู้คืนเฉพาะตารางเฉพาะ การเลือกต่อไปนี้จะถูกส่งออกไปยังไฟล์เดียว ทําให้ง่ายต่อการย้ายและจัดการไฟล์เป็นหน่วยฐานข้อมูล คราวนี้ฉันได้เลือกสิ่งต่อไปนี้

เมื่อกําหนดค่าแล้ว ให้คลิกที่ เริ่มส่งออก ปุ่มที่ด้านล่างขวาเพื่อเริ่มการส่งออก

การส่งออกเริ่มต้นและเสร็จสมบูรณ์

หากคุณส่งออกในไฟล์เดียว จะมีลักษณะดังนี้:

หากคุณส่งออกไปยังโฟลเดอร์ จะมีลักษณะดังนี้:

การกู้คืนฐานข้อมูลด้วย GUI (MySQL Workbench)

เปิด MySQL Workbench เลือกการเชื่อมต่อของคุณเลือกแท็บการดูแลระบบจากตัวนําทางทางด้านซ้ายแล้วเลือกการนําเข้า/กู้คืนข้อมูล ดังที่ระบุว่า "นําเข้า/กู้คืน" คุณสามารถสร้างฐานข้อมูลใหม่จากไฟล์ที่ส่งออกหรือเขียนทับฐานข้อมูลเดิมได้

ขยายหน้าต่างจนกว่าคุณจะเห็นปุ่ม "เริ่มนําเข้า" ที่มุมล่างขวา

โปรดเลือก "ตัวเลือกการนําเข้า" ตามรูปแบบไฟล์ที่ส่งออก เนื่องจากฉันส่งออกเป็นไฟล์เดียวในครั้งนี้ฉันจึงเลือก "นําเข้าจากไฟล์ในตัว" ด้านล่างและระบุไฟล์ที่ส่งออก

เลือกสคีมา (ฐานข้อมูล) ที่จะคืนค่า คุณสามารถกู้คืนไปยังฐานข้อมูลที่มีอยู่ หรือคุณสามารถกู้คืนเป็นฐานข้อมูลใหม่ได้จากปุ่ม "ใหม่" ทางด้านขวา

หลังจากระบุแล้ว ให้คลิกปุ่ม "เริ่มนําเข้า" ที่มุมล่างขวาเพื่อเริ่มการกู้คืน

ตรวจสอบให้แน่ใจว่าข้อมูลของคุณกลับมาเมื่อการกู้คืนเสร็จสมบูรณ์

สร้างบัญชีสําหรับการสํารองฐานข้อมูลผ่านคําสั่ง

ไม่มีปัญหาหากคุณต้องการเรียกใช้คําสั่งเพื่อสํารองข้อมูลเพียงครั้งเดียว แต่ตัวอย่างเช่นหากคุณเตรียมคําสั่งเป็นไฟล์ล่วงหน้าและเรียกใช้คุณต้องเขียนรหัสผ่านเป็นข้อความธรรมดาดังนั้นจึงปลอดภัยกว่าที่จะสร้างบัญชีแยกต่างหากสําหรับการสํารองข้อมูล

สิทธิ์ที่จําเป็นสําหรับการสํารองข้อมูลมีดังนี้ แต่อาจเพิ่มขึ้นหรือลดลงขึ้นอยู่กับข้อมูลที่ต้องการ

  • เหตุการณ์
  • ล็อคโต๊ะ
  • เลือก
  • แสดงมุมมอง

หากคุณสร้างด้วยคําสั่ง มันจะมีลักษณะดังนี้: เรียกใช้ด้วยเครื่องมือบรรทัดคําสั่ง MySQL

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

ตัวอย่าง

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

สิทธิ์ของโฟลเดอร์สําหรับปลายทางการสํารองข้อมูล

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

การสํารองฐานข้อมูลด้วยคําสั่ง (mysqldump)

มีการสํารองข้อมูลคําสั่งหลายรายการ แต่คราวนี้ฉันจะสํารองข้อมูลด้วย "mysqldump" เก่าและเสถียร

คลิกขวาที่เมนูเริ่มและเปิดเทอร์มินัล (พรอมต์คําสั่ง) โปรดทราบว่าไม่ใช่ "ไคลเอนต์บรรทัดคําสั่ง MySQL 8.0"

คุณสามารถสํารองข้อมูลได้ด้วยคําสั่งต่อไปนี้:

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

ตัวอย่าง

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 จะเป็นรหัสอักขระเดียวกันกับเมื่อสํารองข้อมูลใน GUI สิ่งนี้ทําให้คุณสามารถนําเข้าไปยัง GUI ได้เช่นกัน
  • อย่าเว้นวรรคระหว่างช่องรหัสผ่าน -p และรหัสผ่าน
  • หากคุณต้องการส่งออกข้อมูลพื้นที่ตารางโปรด --no-tablespaces ยกเลิกการเลือก ในกรณีนั้น จําเป็นต้องมีสิทธิ์ของผู้ใช้ PROCESS การดําเนินการ

ไฟล์สํารองจะถูกสร้างขึ้นในตําแหน่งที่ระบุ

การกู้คืนฐานข้อมูลด้วยคําสั่ง (mysqldump)

ไฟล์ที่สํารองข้อมูลด้วย mysqldump อยู่ในรูปแบบที่สามารถเรียกใช้ใน SQL ได้ ดังนั้นคุณต้องเรียกใช้ SQL เป้าหมายเท่านั้น ฉันคิดว่าการกู้คืนมักจะทําด้วยตนเองดังนั้นจึงไม่เป็นไรที่จะเรียกใช้บนบัญชีรูท

หากคุณต้องการเรียกใช้จากคําสั่ง ให้เรียกใช้ที่พรอมต์คําสั่งแทน PowerShell นี่เป็นเพราะ < PowerShell ไม่อนุญาตให้ใช้สัญลักษณ์

เรียกใช้คําสั่งต่อไปนี้:

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

ตัวอย่าง

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

การสํารองฐานข้อมูลอัตโนมัติ

สําหรับ Windows เป็นเรื่องปกติที่จะใช้ตัวกําหนดตารางเวลางาน เริ่มต้นด้วยการสร้างไฟล์แบทช์ สร้างไฟล์ค้างคาวป้อนเนื้อหาตามที่สํารองข้อมูลด้วยคําสั่งและบันทึก บันทึกรหัสอักขระด้วย Shift-JIS ตําแหน่งและชื่อไฟล์ของไฟล์แบทช์สามารถเป็นไปได้ตามอําเภอใจ

ลงทะเบียนกับตัวจัดกําหนดการงาน คลิกขวาที่เมนูเริ่มแล้วเลือก "จัดการคอมพิวเตอร์"

จากเมนูด้านซ้าย ให้เลือก การจัดการคอมพิวเตอร์ > เครื่องมือระบบ > ตัวจัดกําหนดการงาน>ไลบรารีตัวจัดกําหนดตารางเวลางาน เลือก สร้างงาน จากเมนูทางด้านขวา

ตั้งค่าแท็บ ทั่วไป "ชื่อ" จะแสดงในรายการงาน ดังนั้นควรใส่ชื่อที่เข้าใจง่าย ในตัวเลือกความปลอดภัย ให้เลือก "เรียกใช้ไม่ว่าผู้ใช้เข้าสู่ระบบหรือไม่"

แท็บทริกเกอร์จะตั้งค่าเวลาที่ควรทําการสํารองข้อมูล ควรตั้งค่านี้ตามการใช้งานของคุณ

ในแท็บ Operations ให้ตั้งค่าไฟล์แบทช์ที่คุณเพิ่งสร้างขึ้นเพื่อเปิดใช้

เมื่อคุณตั้งค่าแต่ละรายการแล้ว ให้ยืนยันด้วยปุ่ม OK

ป้อนรหัสผ่านของคุณเพื่อลงทะเบียนเพื่อเรียกใช้ในบัญชีที่ระบุ

ตอนนี้ตรวจสอบว่าการสํารองข้อมูลจะทํางานตามเวลาที่ระบุหรือไม่