MariaDB - วิธีการสำรองข้อมูล
ข้อมูลทำหน้าที่เป็นรากฐานของธุรกิจและการดำเนินงานและด้วยภัยคุกคามที่เป็นไปได้ต่างๆ (เช่นผู้โจมตีระบบล้มเหลวการอัปเกรดที่ไม่ดีและข้อผิดพลาดในการบำรุงรักษา) การสำรองข้อมูลยังคงมีความสำคัญ การสำรองข้อมูลเหล่านี้มีหลายรูปแบบและมีตัวเลือกมากมายสำหรับการสร้างด้วยชุดตัวเลือกที่กว้างขึ้นภายในกระบวนการเหล่านั้น สิ่งสำคัญที่ต้องจำคือประเภทฐานข้อมูลข้อมูลสำคัญและโครงสร้างที่เกี่ยวข้อง ข้อมูลนี้เป็นตัวกำหนดตัวเลือกที่ดีที่สุดของคุณ
ตัวเลือก
ตัวเลือกหลักสำหรับการสำรองข้อมูล ได้แก่ การสำรองข้อมูลเชิงตรรกะและการสำรองข้อมูลทางกายภาพ การสำรองข้อมูลเชิงตรรกะถือคำสั่ง SQL สำหรับการกู้คืนข้อมูล การสำรองข้อมูลทางกายภาพประกอบด้วยสำเนาของข้อมูล
Logical backupsเสนอความยืดหยุ่นในการกู้คืนข้อมูลบนเครื่องอื่นด้วยการกำหนดค่าที่แตกต่างกันในทางตรงกันข้ามกับการสำรองข้อมูลทางกายภาพซึ่งมัก จำกัด เฉพาะเครื่องและประเภทฐานข้อมูลเดียวกัน การสำรองข้อมูลแบบลอจิกเกิดขึ้นที่ระดับฐานข้อมูลและตารางและฟิสิคัลเกิดขึ้นที่ไดเร็กทอรีและระดับไฟล์
Physical backupsมีขนาดเล็กกว่าตรรกะและใช้เวลาในการดำเนินการและกู้คืนน้อยกว่า การสำรองข้อมูลทางกายภาพยังรวมถึงไฟล์บันทึกและไฟล์คอนฟิกูเรชัน แต่การสำรองข้อมูลแบบลอจิคัลจะไม่มี
เครื่องมือสำรอง
เครื่องมือหลักที่ใช้สำหรับการสำรองข้อมูล MariaDB คือ mysqldump. มีการสำรองข้อมูลเชิงตรรกะและความยืดหยุ่น นอกจากนี้ยังพิสูจน์ตัวเลือกที่ยอดเยี่ยมสำหรับฐานข้อมูลขนาดเล็กMysqldumpทิ้งข้อมูลลงใน SQL, CSV, XML และรูปแบบอื่น ๆ อีกมากมาย เอาต์พุตจะไม่เก็บรักษากระบวนงานมุมมองและเหตุการณ์ที่จัดเก็บไว้โดยไม่มีคำแนะนำที่ชัดเจน
มีสามตัวเลือกสำหรับ mysqldump การสำรองข้อมูล -
Raw data - ถ่ายโอนข้อมูลตารางเป็นไฟล์ข้อมูลดิบผ่านตัวเลือก --tab ซึ่งระบุปลายทางของไฟล์ด้วย -
$ mysqldump -u root -p --no-create-info \
--tab=/tmp PRODUCTS products_tbl
Data/Definitions export- ตัวเลือกนี้อนุญาตให้ส่งออกตารางเดียวหรือหลายตารางไปยังไฟล์และรองรับการสำรองฐานข้อมูลที่มีอยู่ทั้งหมดบนเครื่องโฮสต์ ตรวจสอบตัวอย่างของการเอ็กซ์พอร์ตเนื้อหาหรือคำจำกัดความไปยังไฟล์
$ mysqldump -u root -p PRODUCTS products_tbl > export_file.txt
Transfer - คุณยังสามารถส่งออกฐานข้อมูลและตารางไปยังโฮสต์อื่นได้
$ mysqldump -u root -p database_name \
| mysql -h other-host.com database_name
การใช้คำสั่ง SELECT ... INTO OUTFILE
อีกทางเลือกหนึ่งสำหรับการส่งออกข้อมูลใช้คำสั่ง SELECT ... INTO OUTFILE ตัวเลือกง่ายๆนี้ส่งออกตารางเป็นไฟล์ข้อความที่จัดรูปแบบอย่างง่าย -
mysql> SELECT * FROM products_tbl
-> INTO OUTFILE '/tmp/products.txt';
แอตทริบิวต์อนุญาตให้จัดรูปแบบไฟล์ตามข้อกำหนดที่คุณต้องการ
สังเกตคุณสมบัติต่อไปนี้ของข้อความนี้ -
ชื่อไฟล์ต้องระบุตำแหน่งที่คุณต้องการสำหรับเอาต์พุต
คุณต้องมีสิทธิ์ไฟล์ MariaDB เพื่อดำเนินการคำสั่ง
ชื่อไฟล์เอาต์พุตต้องไม่ซ้ำกัน
คุณต้องมีข้อมูลรับรองการเข้าสู่ระบบบนโฮสต์
ในสภาพแวดล้อม UNIX ไฟล์เอาต์พุตสามารถอ่านได้ทั่วโลก แต่ความเป็นเจ้าของเซิร์ฟเวอร์มีผลต่อความสามารถในการลบไฟล์ รับรองว่าคุณมีสิทธิพิเศษ
การใช้ CONNECT ในการสำรองข้อมูล
ตัวจัดการ CONNECT อนุญาตให้ส่งออกข้อมูล สิ่งนี้พิสูจน์ได้ว่ามีประโยชน์เป็นหลักในสถานการณ์เมื่อการดำเนินการ SELECT ... INTO OUTFILE ไม่รองรับรูปแบบไฟล์
ตรวจสอบตัวอย่างต่อไปนี้ -
create table products
engine = CONNECT table_type = XML file_name = 'products.htm' header = yes
option_list = 'name = TABLE,coltype = HTML,attribute = border = 1;cellpadding = 5'
select plugin_name handler, plugin_version version, plugin_author
author, plugin_description description, plugin_maturity maturity
from information_schema.plugins where plugin_type = 'STORAGE ENGINE';
เครื่องมืออื่น ๆ
ตัวเลือกอื่น ๆ สำหรับการสำรองข้อมูลมีดังนี้ -
XtraBackup- ตัวเลือกนี้กำหนดเป้าหมายฐานข้อมูล XtraDB / InnoDB และทำงานร่วมกับเครื่องมือจัดเก็บข้อมูลใด ๆ เรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือนี้จากเว็บไซต์ทางการของ Percona
Snapshots- ระบบไฟล์บางระบบอนุญาตให้ใช้สแนปชอตได้ กระบวนการนี้ประกอบด้วยการล้างตารางด้วยการล็อกการอ่านการติดตั้งสแน็ปช็อตการปลดล็อกตารางการคัดลอกสแน็ปช็อตจากนั้นการยกเลิกการต่อเชื่อมสแน็ปช็อต
LVM- วิธีการยอดนิยมนี้ใช้สคริปต์ Perl ได้รับการล็อคการอ่านในทุกตารางและล้างแคชลงในดิสก์ จากนั้นจะได้รับภาพรวมและปลดล็อกตาราง ปรึกษาอย่างเป็นทางการmylvmbackup เว็บไซต์สำหรับข้อมูลเพิ่มเติม
TokuBackup- โซลูชันนี้จัดทำโดย Percona ให้การสำรองข้อมูลโดยคำนึงถึงปัญหาและข้อ จำกัด ของตัวเลือกการสำรองข้อมูล InnoDB มันสร้างสำเนาไฟล์ที่ทำธุรกรรมได้ในขณะที่แอพพลิเคชั่นยังคงจัดการกับไฟล์เหล่านั้นดูข้อมูลเพิ่มเติมได้ที่เว็บไซต์ Percona ..
ข้อพิจารณาของ INNODB
InnoDB ใช้บัฟเฟอร์พูลสำหรับการเพิ่มประสิทธิภาพ ในการสำรองข้อมูลกำหนดค่า InnoDB เพื่อหลีกเลี่ยงการคัดลอกทั้งตารางลงในบัฟเฟอร์พูลเนื่องจากโดยทั่วไปแล้วการสำรองข้อมูลเชิงตรรกะจะทำการสแกนแบบเต็มตาราง