การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

สารบัญ

  • บทนำ
  • ข้อกำหนดเบื้องต้น
  • ขั้นตอนที่ 1: สร้างผู้ใช้ระบบที่ไม่ใช่รูท
  • ขั้นตอนที่ 2: ตรวจสอบเอนจิ้นการจัดเก็บ
  • ขั้นตอนที่ 3: สร้างผู้ใช้ฐานข้อมูลสำหรับการสำรองข้อมูล
  • ขั้นตอนที่ 4: ติดตั้ง Percona XtraBackup
  • ขั้นตอนที่ 5: สร้างไดเรกทอรีหน่วยเก็บข้อมูลสำรอง
  • ขั้นตอนที่ 6: สร้างการสำรองข้อมูลเต็มรูปแบบครั้งแรก
  • ขั้นตอนที่ 7: สร้างการสำรองข้อมูลเพิ่มเติมแบบต่อไปนี้
  • ขั้นตอนที่ 8: เตรียมไฟล์สำรองสำหรับการกู้คืนฐานข้อมูล
  • ขั้นตอนที่ 9: กู้คืนฐานข้อมูล
  • ขั้นตอนต่อไป

บทนำ

Percona XtraBackup เป็นโปรแกรม MySQL ฟรีที่ใช้สำหรับการสำรองข้อมูลที่ร้อนแรง มันยังเปิดแหล่งที่มา ด้วย Percona XtraBackup คุณสามารถทำการสำรองข้อมูลอย่างรวดเร็วของการรันฐานข้อมูล MySQL, MariaDB หรือ Percona Server โดยไม่ต้องหยุดบริการฐานข้อมูลของคุณหรือทำให้เป็นแบบอ่านอย่างเดียว นี่เป็นคุณสมบัติที่สำคัญทางธุรกิจสำหรับธุรกิจออนไลน์มากมาย

สำหรับฐานข้อมูลที่ใช้เอ็นจิ้นการจัดเก็บข้อมูล InnoDB, XtraDB และ HailDB, Percona XtraBackup สามารถทำการสำรองข้อมูลแบบไม่บล็อก สำหรับฐานข้อมูลที่ใช้ MyISAM, Merge และเอนจิ้นการจัดเก็บถาวร Percona XtraBackup ยังสามารถทำการสำรองข้อมูลได้โดยหยุดเขียนสั้น ๆ ในตอนท้ายของโพรซีเดอร์การสำรองข้อมูล

ในบทความนี้ฉันจะแสดงวิธีการติดตั้งและใช้งาน Percona XtraBackup เพื่อทำการสำรองข้อมูลร้อนอย่างเต็มที่และเพิ่มขึ้นบนเซิร์ฟเวอร์ Vultr โดยใช้แอปพลิเคชั่น One-Click WordPress เราจะทำการสำรองข้อมูลเต็มรูปแบบและสำรองข้อมูลเพิ่มเติมสองครั้งจากนั้นกู้คืนฐานข้อมูลให้อยู่ในสถานะของการสำรองข้อมูลทั้งสามรายการตามลำดับ

ข้อกำหนดเบื้องต้น

ฉันคิดว่าคุณได้ปรับใช้อินสแตนซ์เซิร์ฟเวอร์ One-Click WordPress Vultr ตั้งแต่เริ่มต้นและเข้าสู่ระบบในฐานะ root โดยใช้ SSH

ขั้นตอนที่ 1: สร้างผู้ใช้ระบบที่ไม่ใช่รูท

เพื่อความปลอดภัยแนวทางปฏิบัติที่แนะนำคือการสร้างบัญชีผู้ใช้อื่นที่มีสิทธิ์การใช้งานรูทจากนั้นใช้เพื่อเข้าสู่ระบบและดำเนินการประจำวันของคุณบนระบบ คุณยังสามารถเรียกใช้งานคำสั่ง superuser เกือบทั้งหมดได้ด้วยsudoคำสั่ง

1) สร้างผู้ใช้ใหม่ แทนที่sysuserด้วยชื่อผู้ใช้ของคุณเอง

useradd sysuser

2) ตั้งรหัสผ่านสำหรับผู้ใช้ใหม่ของคุณ แทนที่sysuserด้วยชื่อผู้ใช้ของคุณเอง

passwd sysuser

3) ให้สิทธิ์การรูทแก่ผู้ใช้ใหม่ของคุณ

visudo

ค้นหาย่อหน้าด้านล่าง

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

เพิ่มแถวที่อยู่ใต้ย่อหน้านี้แทนที่sysuserด้วยชื่อผู้ใช้ของคุณเอง

sysuser     ALL=(ALL)     ALL

บันทึกและออก

:wq

4) เปลี่ยนเป็นบัญชีผู้ใช้ใหม่ของคุณ

logout

จากนั้นใช้ข้อมูลประจำตัวของผู้ใช้ใหม่เพื่อเข้าสู่ระบบจากหน้าต่างเทอร์มินัลของคุณ

ขั้นตอนที่ 2: ตรวจสอบเอนจิ้นการจัดเก็บ

โดยค่าเริ่มต้นเข้าสู่ระบบราก MySQL จะถูกบันทึกไว้ใน VPS /root/.my.cnfใน แสดงรหัสผ่านในเทอร์มินัลของคุณด้วยคำสั่งต่อไปนี้

sudo cat /root/.my.cnf

ใช้ข้อมูลประจำตัวที่แสดงบนหน้าจอเพื่อเข้าสู่คอนโซล MySQL

mysql -u root -p

ในเปลือก MySQL ให้เรียกใช้ดังต่อไปนี้

SHOW DATABASES;

ฐานข้อมูล MySQL ทั้งหมดจะแสดงบนหน้าจอ ฐานข้อมูลชื่อ like wp5273512คือฐานข้อมูล WordPress ที่เราต้องการสำรองข้อมูล ในคำสั่งต่อไปนี้แทนที่wp5273512ด้วยหนึ่งของคุณเอง:

USE wp5273512;

ตรวจสอบเอ็นจิ้นการจัดเก็บข้อมูลสำหรับแต่ละตาราง:

SHOW TABLE STATUS\G

คุณจะพบว่าตารางทั้งหมดในฐานข้อมูล WordPress MySQL ของคุณใช้เครื่องมือจัดเก็บข้อมูล InnoDB ซึ่งเหมาะสำหรับการสำรองข้อมูลร้อนด้วย Percona XtraBackup

สำหรับฐานข้อมูล MySQL อื่น ๆ ที่ใช้เครื่องมือจัดเก็บ MyISAM เรายังสามารถสำรองข้อมูลด้วย Percona XtraBackup ด้วยการหยุดเขียนชั่วคราว

ขั้นตอนที่ 3: สร้างผู้ใช้ฐานข้อมูลสำหรับการสำรองข้อมูล

ยังอยู่ในเชลล์ MySQL ใช้คำสั่งต่อไปนี้เพื่อสร้างผู้ใช้ฐานข้อมูลเฉพาะสำหรับการสำรองข้อมูล จำไว้ว่าให้แทนที่ชื่อผู้ใช้ฐานข้อมูลxbuserและรหัสผ่านxbpasswdด้วยชื่อของคุณเอง:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

สิทธิ์ที่ได้รับข้างต้นเป็นสิ่งจำเป็นสำหรับการทำงานของ Percona XtraBackup อย่างเต็มรูปแบบ คุณสามารถลบบางส่วนออกเพื่อการทำงานที่น้อยลงและความปลอดภัยที่ดีขึ้น สำหรับรายละเอียดเพิ่มเติมโปรดดูที่ Percona XtraBackup เว็บไซต์อย่างเป็นทางการ

ขั้นตอนที่ 4: ติดตั้ง Percona XtraBackup

คุณสามารถติดตั้ง Percona XtraBackup จากที่เก็บ RPM ของ Percona ได้อย่างง่ายดาย:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

ขั้นตอนที่ 5: สร้างไดเรกทอรีหน่วยเก็บข้อมูลสำรอง

ก่อนอื่นคุณต้องเพิ่มผู้ใช้sysuserในmysqlกลุ่ม แทนที่sysuserด้วยชื่อผู้ใช้ของคุณเอง

sudo gpasswd -a sysuser mysql

สร้างไดเรกทอรีเพื่อเก็บข้อมูลสำรองแบบเต็ม

sudo mkdir -p /dbbackup/full/

สร้างไดเรกทอรีอื่นเพื่อจัดเก็บข้อมูลสำรองเพิ่มเติม

sudo mkdir -p /dbbackup/inc/

เปลี่ยนเจ้าของไดเรกทอรีเหล่านี้ให้กับผู้ใช้และกลุ่มsysusersysuser

sudo chown -R sysuser:sysuser /dbbackup

ออกจากระบบเพื่อให้การเปลี่ยนแปลงมีผล

logout

จากนั้นเข้าสู่ระบบด้วยsysuserอีกครั้ง

ขั้นตอนที่ 6: สร้างการสำรองข้อมูลเต็มรูปแบบครั้งแรก

XtraBackup ประกอบด้วยโปรแกรม XtraBackup และinnobackupexสคริปต์ perl เป็นหลัก โดยปกติคุณสามารถใช้innobackupexสคริปต์ perl เพื่อดำเนินการตามขั้นตอนการดำเนินงานต่างๆเพื่อความสะดวก

ป้อนคำสั่งต่อไปนี้เพื่อสร้างการสำรองข้อมูลเต็มรูปแบบครั้งแรก อย่าลืมเปลี่ยนชื่อผู้ใช้xbuserฐานข้อมูลรหัสผ่านผู้ใช้ฐานข้อมูลxbpasswdและไดเรกทอรีสำรองข้อมูลเต็มรูปแบบ/dbbackup/full/ด้วยชื่อของคุณเอง

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

เมื่อคำสั่งนี้ทำงานอย่างถูกต้องคุณจะเห็นข้อความยืนยัน "innobackupex: เสร็จสมบูรณ์ตกลง!" ที่บรรทัดสุดท้ายของเอาต์พุต

/dbbackup/full/ไฟล์ทั้งหมดที่สร้างขึ้นใหม่ของการสำรองข้อมูลทั้งหมดนี้จะถูกเก็บไว้ในเวลาที่ประทับภายใต้ไดเรกทอรี ตัวอย่างเช่น/dbbackup/full/2015-05-22_05-45-54.

ขั้นตอนที่ 7: สร้างการสำรองข้อมูลเพิ่มเติมแบบต่อไปนี้

ป้อนคำสั่งต่อไปนี้เพื่อสร้างการสำรองข้อมูลส่วนเพิ่มครั้งแรก แทนที่ตัวแปรในคำสั่งตามนั้น

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

อีกครั้งคุณจะเห็น "innobackupex: เสร็จสมบูรณ์ตกลง!" ที่ส่วนท้ายของเอาต์พุตเมื่อคำสั่งดำเนินการเป็นผลสำเร็จ /dbbackup/inc/แฟ้มสำรองข้อมูลจะถูกเก็บไว้ในเวลาที่ประทับภายใต้ไดเรกทอรี

ป้อนคำสั่งต่อไปนี้เพื่อสร้างการสำรองข้อมูลเพิ่มเติมที่สอง แทนที่ตัวแปรในคำสั่งตามนั้น

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

เมื่อประสบความสำเร็จคุณจะเห็น "innobackupex: เสร็จสมบูรณ์ตกลง!" ส่งข้อความอีกครั้ง ตรวจสอบ/dbbackup/inc/โฟลเดอร์อีกครั้งเพื่อดูไฟล์สำรอง

ขั้นตอนที่ 8: เตรียมไฟล์สำรองสำหรับการกู้คืนฐานข้อมูล

ไฟล์สำรองฐานข้อมูลทั้งหมดต้องถูกจัดเตรียมก่อนจึงจะสามารถใช้เพื่อกู้คืนฐานข้อมูล

หมายเหตุ : ก่อนที่คุณจะดำเนินการขั้นตอนการเตรียมการและเรียกคืนคุณควรเก็บสำเนาของไดเรกทอรีข้อมูลสำรองทั้งหมด (เช่น/dbbackup/) ไว้ที่อื่นในกรณีที่ความเสียหายใด ๆ ในการสำรองข้อมูลไฟล์นั้นเกิดจากความผิดพลาด

ในแต่ละไดเรกทอรีสำรองข้อมูลจะมีชื่อไฟล์xtrabackup_checkpointsซึ่งมีประเภทการสำรองข้อมูลและหมายเลขลำดับการเริ่มต้นและสิ้นสุด ( from_lsnและto_lsn) คุณสามารถใช้ตัวเลขเหล่านี้เพื่ออธิบายกลยุทธ์การกู้คืนฐานข้อมูลของคุณ ดูตัวอย่างด้านล่าง

ในxtrabackup_checkpointsไฟล์ของการสำรองข้อมูลเต็มรูปแบบแรกฉันมี:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

ในxtrabackup_checkpointsไฟล์ของการสำรองข้อมูลที่เพิ่มขึ้นครั้งแรกฉันมี:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

ในxtrabackup_checkpointsไฟล์สำรองข้อมูลเพิ่มที่สองฉันมี:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

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

หมายเหตุ : คำสั่งต่อไปนี้เกี่ยวข้องกับสามไดเรกทอรีแทนที่ด้วยไดเรกทอรีของคุณเอง

ในการกู้คืนฐานข้อมูลกลับสู่สถานะของการสำรองข้อมูลเต็มรูปแบบครั้งแรกคุณต้องเตรียมไฟล์สำรองข้อมูลด้วยคำสั่งต่อไปนี้:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

ในการกู้คืนฐานข้อมูลกลับสู่สถานะของการสำรองข้อมูลส่วนเพิ่มครั้งแรกคุณต้องเตรียมไฟล์สำรองข้อมูลด้วยคำสั่งต่อไปนี้:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

ในการกู้คืนฐานข้อมูลกลับสู่สถานะของการสำรองข้อมูลเพิ่มเติมครั้งที่สองคุณต้องเตรียมไฟล์สำรองข้อมูลด้วยคำสั่งต่อไปนี้:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

หมายเหตุ :

สำหรับการสำรองข้อมูลส่วนเพิ่มคุณควรใช้--redo-onlyตัวเลือกทั้งหมดยกเว้นการสำรองข้อมูลส่วนเพิ่มครั้งล่าสุด อย่างไรก็ตามการใช้ตัวเลือกนี้ในการสำรองข้อมูลส่วนเพิ่มครั้งล่าสุดยังคงไม่เป็นอันตรายต่อความสอดคล้องของข้อมูลของคุณซึ่งจะทำให้เกิดความล่าช้าเนื่องจากการย้อนกลับฐานข้อมูลเท่านั้น

คำสั่งสุดท้ายของแต่ละสถานการณ์ที่เพิ่มขึ้นเป็นทางเลือก แต่แนะนำเพราะจะเร่งการคืนค่า

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

ขั้นตอนที่ 9: กู้คืนฐานข้อมูล

ก่อนที่คุณจะคืนค่าฐานข้อมูลของคุณคุณต้องหยุดบริการฐานข้อมูล

sudo service mysqld stop

คุณต้องลบไดเรกทอรีฐานข้อมูลด้วย คุณสามารถย้ายไฟล์ฐานข้อมูลปัจจุบันไปยังที่อื่นเพื่อความไม่ประมาท

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

คืนค่าฐานข้อมูลของคุณด้วยไฟล์ "การสำรองข้อมูลเต็มรูปแบบ" ที่จัดเตรียมไว้

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

เนื่องจากขั้นตอนการกู้คืนจะแก้ไขเจ้าของไดเรกทอรีฐานข้อมูลคุณจึงต้องเปลี่ยนกลับเป็นmysql:mysqlเพื่อให้สามารถใช้งานได้

sudo chown -R mysql:mysql /var/lib/mysql

เริ่มบริการฐานข้อมูลอีกครั้ง

sudo service mysqld start

แค่นั้นแหละ. ณ จุดนี้คุณสามารถเยี่ยมชมไซต์ WordPress ของคุณเพื่อตรวจสอบว่ากระบวนการกู้คืนสำเร็จแล้ว



Leave a Comment

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

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

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน