基於centos7的MySQL5.7二進位制安裝包的本地升級

龍山游龍發表於2021-07-08

一、資料庫備份

在升級資料庫之前,首先對資料庫進行備份。可以採用冷備或熱備。

1.1 冷備

如果伺服器有足夠的時間能夠停機進行備份操作,可以直接採用冷備的方式。在將資料庫關閉之後,直接將資料目錄複製到備份目錄中。

shell> mkdir -p /mysql/mysql572/product
shell> cp /mysql/mysql57/product/* /mysql/mysql572/product

注意:冷備前需要先檢視配置檔案,確認資料庫的所有檔案是否都在資料目錄中,部分日誌有沒有設定到其他目錄中。

1.2 邏輯熱備

mysqldump是MySQL自帶的備份工具,我們只需要直接使用就行。

shell> /mysql/mysql57/app/bin/mysqldump -uroot -pAbcd321# -S /mysql/product/mysql57/data/mysql.sock --single-transaction --master-data=2 -E -R --all-databases >full.sql

使用上述命令備份全庫至指定目錄。

shell> tail -1 full.sql
-- Dump completed on 2020-10-29  9:23:04

若最後輸出Dump completed on,則說明備份成功。

1.3 物理熱備

下載XtraBackup 2.4:

使用ht tps:  //  www .percona.com/downloads/Percona-XtraBackup-2.4/LATEST/,登入官網XtraBackup 2.4下載區,下載最新版本的二進位制包。

在Linux系統上傳介質包percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz,建立/Xtrabackup目錄。

shell> mkdir -p /Xtrabackup
sftp> cd /Xtrabackup
sftp> put percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz
解壓介質包,並設定環境變數。
shell> cd /Xtrabackup/
shell> tar zxf percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz
shell> cd percona-xtrabackup-2.4.20-Linux-x86_64/bin/
shell> pwd 
/Xtrabackup/percona-xtrabackup-2.4.20-Linux-x86_64/bin
shell> vi /root/.bash_profile
export PATH=/Xtrabackup/percona-xtrabackup-2.4.20-Linux-x86_64/bin:$PATH
shell> source /root/.bash_profile
shell> su -
至此,Percona Xtrabackup部署完成。然後開始備份。
shell> mkdir /Xtrabackup/backup
shell> xtrabackup --defaults-file=/mysql/mysql57/app/my.cnf -uroot -pAbcd321# -S /mysql/mysql57/product/data/mysql.sock --backup --target-dir=/Xtrabackup/backup
......
201029 09:32:42 completed OK!

最後輸出completed OK!,則說明備份成功。

二、本地升級

就地升級包括關閉舊的MySQL伺服器,用新的二進位制包替換舊的二進位制包,在現有資料目錄上重新啟動MySQL,以及升級現有安裝中需要升級的剩餘部分。

2.1 升級前準備

開啟mysql官網下載頁面: https:  //downloads.mysql.com/archives/community/,下載要升級的對應版本的資料庫,並上傳到指定目錄。

檢查你的升級路徑,資料庫升級不支援跳過版本的升級,例如,不支援直接從MySQL 5.5升級到5.7。建議先升級到最新版本,再升級到下一版本。支援在發行系列中進行升級。

檢查你的配置檔案,檢視引數設定是否與新版本的資料庫相容。

2.2 提交或回滾分散式事務

如果在InnoDB中使用XA事務,請在升級之前執行XA RECOVER以檢查未提交的XA事務。如果有返回結果,則透過發出XA COMMIT或 XA ROLLBACK語句來提交或回滾XA事務。

mysql> XA RECOVER;
mysql> XA COMMIT xid;

2.3 配置慢關機

如果您使用InnoDB,請透過InnoDB_fast_shutdown配置MySQL執行慢關機。

mysql> set global innodb_fast_shutdown=0;

2.4 關閉原資料庫

在關閉資料庫時,需要使用對應資料庫的命令:

shell> /mysql/mysql57/app/bin/mysqladmin -uroot -pAbcd321# -S /mysql/product/mysql57/data/mysql.sock shutdown

如果您將MySQL伺服器作為服務執行,可用service停止服務:

shell> service mysqld57 stop

2.5 移走原資料庫安裝目錄

shell> mkdir -p /mysql/mysql572/app
shell> mv /mysql/mysql57/app/* /mysql/mysql572/app/

2.6 解壓新的資料庫

將新版本的資料庫解壓到原來的安裝目錄中:

shell> tar zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /mysql/mysql57/app --strip-components=1

2.7 啟動資料庫服務

用新的資料目錄和舊的資料目錄啟動資料庫服務。

shell> mysqld_safe --defaults-file=/mysql/mysql57/app/my.cnf --user=mysql &

如果您將MySQL伺服器作為服務執行,請重新設定資料庫服務:

shell> cp /mysql/mysql57/app/support-files/mysql.server /etc/init.d/mysqld57
shell> vi /etc/init.d/mysqld57
basedir=/mysql/mysql57/app
datadir=/mysql/mysql57/product/data
shell> service mysqld57 start

2.8 升級資料庫

mysql_upgrade檢查所有資料庫中的所有表是否與當前版本的MySQL不相容。mysql_upgrade還會升級 mysql系統資料庫,以便您可以利用新的特權或功能。

shell> mysql_upgrade -uroot -pAbcd321# -S /mysql/mysql57/product/data/mysql.sock
......
OK

最後如果彈出了OK輸出,則說明升級資料庫成功。

2.9 重啟資料庫

關閉並重新啟動MySQL伺服器,以確保對系統表所做的所有更改均生效:

shell> mysqladmin -uroot -pAbcd321# -S /mysql/mysql57/product/data/mysql.sock shutdown
shell> mysqld_safe --defaults-file=/mysql/mysql57/app/my.cnf --user=mysql &


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30310891/viewspace-2780230/,如需轉載,請註明出處,否則將追究法律責任。

相關文章