MariaDB - วิธีการโหลดข้อมูลสำรอง
ในบทนี้เราจะเรียนรู้เกี่ยวกับวิธีการโหลดข้อมูลสำรองต่างๆ การกู้คืนฐานข้อมูลจากข้อมูลสำรองเป็นกระบวนการที่ง่ายและบางครั้งก็ใช้เวลานานมาก
มีสามตัวเลือกในการโหลดข้อมูล: คำสั่ง LOAD DATA, mysqlimport และ mysqldump restore แบบธรรมดา
การใช้ LOAD DATA
คำสั่ง LOAD DATA ทำหน้าที่เป็นตัวโหลดจำนวนมาก ตรวจสอบตัวอย่างการใช้งานที่โหลดไฟล์ข้อความ -
mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl;
สังเกตคุณสมบัติดังต่อไปนี้ของคำสั่ง LOAD DATA -
ใช้คีย์เวิร์ด LOCAL เพื่อป้องกันไม่ให้ MariaDB ทำการค้นหาโฮสต์ในเชิงลึกและใช้เส้นทางที่เฉพาะเจาะจงมาก
คำสั่งจะถือว่ารูปแบบประกอบด้วยบรรทัดที่สิ้นสุดโดย linefeeds (บรรทัดใหม่) และค่าข้อมูลที่คั่นด้วยแท็บ
ใช้คำสั่ง FIELDS เพื่อระบุการจัดรูปแบบของเขตข้อมูลบนบรรทัดอย่างชัดเจน ใช้ประโยค LINES เพื่อระบุการสิ้นสุดบรรทัด ดูตัวอย่างด้านล่าง
mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n';
คำสั่งถือว่าคอลัมน์ภายใน datafile ใช้ลำดับเดียวกันของตาราง หากคุณต้องการตั้งค่าลำดับอื่นคุณสามารถโหลดไฟล์ได้ดังนี้ -
mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl (c, b, a);
ใช้ MYSQLIMPORT
เครื่องมือ mysqlimport ทำหน้าที่เป็น LOAD DATA wrapper ซึ่งอนุญาตให้ดำเนินการเดียวกันจากบรรทัดคำสั่ง
โหลดข้อมูลดังนี้ -
$ mysqlimport -u root -p --local database_name source_file.txt
ระบุการจัดรูปแบบดังนี้ -
$ mysqlimport -u root -p --local --fields-terminated-by="|" \
--lines-terminated-by="\n" database_name source_file.txt
ใช้ --columns ตัวเลือกในการระบุลำดับคอลัมน์ -
$ mysqlimport -u root -p --local --columns=c,b,a \
database_name source_file.txt
ใช้ MYSQLDUMP
คืนค่าด้วย mysqldump ต้องการคำสั่งง่ายๆนี้สำหรับการโหลดไฟล์ดัมพ์กลับไปที่โฮสต์ -
shell> mysql database_name < source_file.sql
ตัวละครพิเศษและใบเสนอราคา
ในคำสั่ง LOAD DATA เครื่องหมายคำพูดและอักขระพิเศษอาจตีความไม่ถูกต้อง คำสั่งจะถือว่าค่าที่ไม่ได้ใส่เครื่องหมายคำพูดและถือว่าแบ็กสแลชเป็นอักขระหลีก ใช้คำสั่ง FIELDS เพื่อระบุการจัดรูปแบบ ชี้ไปที่เครื่องหมายคำพูดที่มี“ ENCLOSED BY” ซึ่งทำให้เกิดการตัดเครื่องหมายคำพูดออกจากค่าข้อมูล เปลี่ยน Escape ด้วย“ ESCAPED BY”