วิธีอัปเกรด MariaDB 5.5 เป็น MariaDB 10.1 บน CentOS/RHEL 7 และระบบ Debian
MariaDB คือทางแยกชุมชน MySQL ที่มีชื่อเสียงซึ่งได้รับความนิยมอย่างมากหลังจากที่ Oracle เข้าซื้อโครงการ MySQL ในวันที่ 24 ธันวาคม 2015 เวอร์ชันเสถียรล่าสุดได้รับการเผยแพร่แล้ว ซึ่งก็คือ MariaDB 10.1.10
มีอะไรใหม่
มีการเพิ่มคุณสมบัติใหม่บางอย่างในเวอร์ชันนี้ และคุณสามารถดูได้ด้านล่าง:
- Galera โซลูชันคลัสเตอร์แบบหลายต้นแบบกลายเป็นส่วนมาตรฐานของ MariaDB แล้ว
- เพิ่มตารางสคีมาข้อมูลใหม่สองตารางที่เพิ่มเข้ามาเพื่อตรวจสอบข้อมูล wsrep ได้ดียิ่งขึ้น ตารางที่เป็นปัญหาคือ WSREP_MEMBERSHIP และ WSREP_STATUS
- การบีบอัดหน้าสำหรับ InnoDB และ XtraDB การบีบอัดหน้าจะคล้ายกับรูปแบบการจัดเก็บข้อมูล InnoDB COMPRESSED
- การบีบอัดหน้าสำหรับ FusionIO
การปรับแต่งการเพิ่มประสิทธิภาพบางอย่างรวมอยู่ด้วย:
- อย่าสร้างไฟล์ .frm สำหรับตารางชั่วคราว
- ใช้ MAX_STATEMENT_TIME เพื่อยกเลิกการสืบค้นที่ใช้เวลานานโดยอัตโนมัติ
- ฟังก์ชัน malloc() ถูกใช้น้อยลงและการสืบค้นแบบธรรมดาจะดำเนินการได้เร็วขึ้น
- แพตช์ Webscale
ในบทช่วยสอนนี้ เราจะแสดงวิธีอัปเกรด MariaDB 5.5 เป็น MariaDB 10.1 เวอร์ชันเสถียรล่าสุด คุณจะต้องมี การเข้าถึงรูท ไปยังเครื่อง ซึ่งเป็นที่ที่คุณจะทำการอัปเกรด
โปรดทราบว่า หากคุณใช้งาน MariaDB เวอร์ชันก่อนหน้า แนวทางการอัปเกรดที่แนะนำคือดำเนินการผ่านแต่ละเวอร์ชัน ตัวอย่างเช่น MariaDB 5.1 -> 5.5 -> 10.1
ขั้นตอนที่ 1: สำรองหรือถ่ายโอนข้อมูลฐานข้อมูล MariaDB ทั้งหมด
เช่นเคยเมื่อทำการอัปเกรดการสร้างการสำรองข้อมูลฐานข้อมูลที่มีอยู่ของคุณเป็นสิ่งสำคัญ คุณสามารถดัมพ์ฐานข้อมูลด้วยคำสั่งเช่น:
mysqldump -u root -ppassword --all-databases > /tmp/all-database.sql
หรืออีกวิธีหนึ่ง คุณสามารถหยุดบริการ MariaDB ได้ด้วย:
systemctl stop mysql
และคัดลอกไดเร็กทอรีฐานข้อมูลไปยังโฟลเดอร์อื่นดังนี้:
cp -a /var/lib/mysql/ /var/lib/mysql.bak
ในกรณีที่การอัพเกรดล้มเหลว คุณสามารถใช้สำเนาข้างต้นเพื่อกู้คืนฐานข้อมูลของคุณได้
ขั้นตอนที่ 2: เพิ่มพื้นที่เก็บข้อมูล MariaDB
แนวทางปฏิบัติที่ดีคือตรวจสอบให้แน่ใจว่าแพ็คเกจของคุณเป็นปัจจุบันก่อนทำการเปลี่ยนแปลงไฟล์ repo ของคุณ คุณสามารถทำได้ด้วย:
yum update [On RHEL/CentOS 7]
apt-get update [On Debian/Ubuntu]
บน RHEL/CentOS 7
หากคุณมีแพ็คเกจเก่า ให้รอให้การติดตั้งเสร็จสิ้น ถัดไป คุณจะต้องเพิ่ม repo MariaDB 10.1 สำหรับ CentOS/RHEL 7/ distribution ในการดำเนินการนี้ ให้ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ เช่น vim หรือ nano แล้วเปิดไฟล์ต่อไปนี้:
vim /etc/yum.repos.d/MariaDB10.repo
เพิ่มข้อความต่อไปนี้ลงไป:
MariaDB 10.1 CentOS repository list - created 2016-01-18 09:58 UTC
http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
จากนั้นบันทึกและออกจากไฟล์ (สำหรับ vim :wq)
บน Debian และ Ubuntu
รันชุดคำสั่งต่อไปนี้เพื่อเพิ่ม MariaDB PPA ในระบบของคุณ:
apt-get install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository 'deb [arch=amd64,i386] http://kartolo.sby.datautama.net.id/mariadb/repo/10.1/ubuntu wily main'
ข้อสำคัญ: อย่าลืมแทนที่ ubuntu wily ด้วยชื่อการแจกจ่ายและรุ่นของคุณ
ขั้นตอนที่ 3: ลบ MariaDB 5.5.1
หากคุณได้สำรองข้อมูลฐานข้อมูลของคุณตามที่แนะนำใน ขั้นตอนที่ 1 คุณก็พร้อมที่จะดำเนินการต่อและลบการติดตั้ง MariaDB ที่มีอยู่แล้ว
เมื่อต้องการทำเช่นนี้ เพียงเรียกใช้คำสั่งต่อไปนี้:
yum remove mariadb-server mariadb mariadb-libs [On RHEL/CentOS 7]
apt-get purge mariadb-server mariadb mariadb-libs [On Debian/Ubuntu]
ถัดไป ทำความสะอาดแคชที่เก็บ:
yum clean all [On RHEL/CentOS 7]
apt-get clean all [On Debian/Ubuntu]
ขั้นตอนที่ 4: การติดตั้ง MariaDB 10.1
ตอนนี้ได้เวลาติดตั้ง MariaDB เวอร์ชันใหม่โดยใช้:
yum -y install MariaDB-server MariaDB-client [On RHEL/CentOS 7]
apt-get install mariadb-server MariaDB-client [On Debian/Ubuntu]
เมื่อการติดตั้งเสร็จสมบูรณ์ คุณสามารถเริ่มบริการ MariaDB ด้วย:
systemctl start mariadb
หากคุณต้องการให้ MariaDB เริ่มต้นโดยอัตโนมัติหลังจากบูตระบบ ให้เรียกใช้:
systemctl enable mariadb
ในที่สุดก็รันคำสั่งอัพเกรดเพื่ออัพเกรด MariaDB ด้วย:
mysql_upgrade
เพื่อตรวจสอบว่าการอัพเกรดสำเร็จแล้ว ให้รันคำสั่งต่อไปนี้:
mysql -V
ยินดีด้วย การอัปเกรดของคุณเสร็จสมบูรณ์แล้ว!
บทสรุป
การอัปเกรด MariaDB/MySQL เป็นงานที่ควรทำด้วยความระมัดระวังเป็นพิเศษเสมอ ฉันหวังว่าคุณจะเสร็จสมบูรณ์อย่างราบรื่น หากคุณพบปัญหาใด ๆ โปรดอย่าลังเลที่จะแสดงความคิดเห็น