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 เพื่อหลีกเลี่ยงการคัดลอกทั้งตารางลงในบัฟเฟอร์พูลเนื่องจากโดยทั่วไปแล้วการสำรองข้อมูลเชิงตรรกะจะทำการสแกนแบบเต็มตาราง