การสํารองและกู้คืนฐานข้อมูล 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 เลือก "สร้างงาน..." จากเมนูทางด้านขวา
กําหนดค่าแท็บทั่วไป "ชื่อ" จะปรากฏในรายการงาน ดังนั้นให้ป้อนชื่อที่เข้าใจง่าย ในตัวเลือกความปลอดภัย ให้เลือก "เรียกใช้ไม่ว่าผู้ใช้จะเข้าสู่ระบบหรือไม่ก็ตาม"
ในแท็บ "ทริกเกอร์" คุณสามารถตั้งค่าเวลาที่จะทําการสํารองข้อมูลได้ ตั้งค่านี้ตามการทํางานของคุณ
ในแท็บ "การทํางาน" ให้ตั้งค่าให้เปิดไฟล์แบตช์ที่คุณเพิ่งสร้างขึ้น
หลังจากตั้งค่าแต่ละรายการแล้ว ให้ยืนยันด้วย ปุ่มตกลง
ป้อนรหัสผ่านของคุณเพื่อลงทะเบียนเพื่อเรียกใช้ภายใต้บัญชีที่ระบุ
หลังจากนั้นตรวจสอบว่าการสํารองข้อมูลจะดําเนินการในเวลาที่กําหนดหรือไม่