การสํารองและกู้คืนฐานข้อมูล MySQL (เวอร์ชัน Windows)

ปรับปรุงหน้า :
วันที่สร้างเพจ :

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

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

เบื้องต้น

MySQL
  • MySQL 8.0
หน้าต่าง
  • หน้าต่าง 11
  • หน้าต่าง 10
เซิร์ฟเวอร์ Windows
  • เซิร์ฟเวอร์ Windows 2022
  • เซิร์ฟเวอร์ Windows 2019
  • เซิร์ฟเวอร์ Windows 2016
  • R2 Windows Server ๒๐๑๒

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

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

การสํารองข้อมูลมีกี่ประเภท?

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

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

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

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

เริ่ม MySQL Workbench

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

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

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

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

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

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

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

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

หลังจากตั้งค่าแล้ว ให้คลิกปุ่ม "เริ่มการส่งออก" ที่มุมล่างขวาเพื่อเริ่มการส่งออก

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

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

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

การกู้คืนฐานข้อมูลด้วย 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" ซึ่งใช้มาเป็นเวลานานและมีความเสถียร

คลิกขวาที่เมนู Start เพื่อเปิด Terminal (Command Prompt) โปรดทราบว่าไม่ใช่ "MySQL 8.0 Command Line Client"

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

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 ด้วยวิธีนี้ คุณยังสามารถนําเข้าใน 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 เป็นเรื่องปกติที่จะใช้ Task Scheduler ขั้นแรก ให้สร้างไฟล์แบตช์ สร้างไฟล์ bat ป้อนเนื้อหาตามที่สํารองไว้โดยคําสั่ง และบันทึก การเข้ารหัสอักขระจะถูกบันทึกด้วย Shift-JIS ตําแหน่งและชื่อไฟล์ของไฟล์แบตช์เป็นไปตามอําเภอใจ

ลงทะเบียนกับ Task Scheduler คลิกขวาที่เมนู Start แล้วเลือก Computer Management

จากเมนูทางด้านซ้าย ให้เลือก Computer Management > System Tools > Task Scheduler > Task Scheduler Library เลือก "สร้างงาน..." จากเมนูทางด้านขวา

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

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

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

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

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

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