首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 啟用 SSD 儲存提升 I/O 效能:掛載、遷移與啟動全流程

     編輯:MySQL 綜合教學

MySQL 啟用 SSD 儲存提升 I/O 效能:掛載、遷移與啟動全流程

當作業系統與 MySQL 共用機械硬碟時,磁碟 I/O 爭搶常成為效能瓶頸。將 MySQL 資料目錄遷移至獨立 SSD 能顯著降低延遲、提升吞吐。本文記錄在 Linux 下以 /dev/sdb 為例的完整遷移步驟。

前提條件

  • 新增 SSD 裝置識別為 /dev/sdb
  • 備份原資料目錄 /var/lib/mysql
  • 規劃停機維護窗口

1. 分區新磁碟

fdisk /dev/sdb
# 依序輸入:n (新分區) → p (主分區) → 1 (分區號) → Enter (起始柱面) → Enter (結束柱面,用全盤) → w (寫入)

產生 /dev/sdb1。

2. 建立檔案系統

mkfs.ext4 /dev/sdb1

3. 掛載至自訂目錄

mkdir /ssd
mount /dev/sdb1 /ssd

4. 設定開機自動掛載

echo '/dev/sdb1 /ssd ext4 defaults 0 0' >> /etc/fstab

5. 遷移 MySQL 資料目錄

# 停止服務
systemctl stop mysqld
# 若有 Web 服務同機器,建議一併停止
systemctl stop httpd nginx

# 完整複製(保留權限、屬性)
cp -Rp /var/lib/mysql /ssd/

# 重命名舊目錄備份
mv /var/lib/mysql /var/lib/mysql-backup

# 建立符號連結指向新位置
ln -s /ssd/mysql /var/lib/mysql

6. 啟動驗證

systemctl start mysqld
systemctl start httpd nginx

# 確認資料目錄生效
mysql -e "SHOW VARIABLES LIKE 'datadir';"
# 應顯示 /ssd/mysql

關鍵注意事項

  • SELinux:若啟用 SELinux,需執行 restorecon -Rv /ssd/mysql 或調整 mysqld_db_t 上下文,否則啟動失敗。
  • AppArmor(Ubuntu/Debian):需修改 /etc/apparmor.d/usr.sbin.mysqld 加入 /ssd/mysql/ r, /ssd/mysql/** rwk, 並重載 apparmor。
  • 權限一致性:cp -Rp 保留擁有者 mysql:mysql,若遺失請 chown -R mysql:mysql /ssd/mysql。
  • 備份保留:確認新環境穩定運行 24-48 小時後,再刪除 /var/lib/mysql-backup。

效能預期

SSD 隨機讀寫 IOPS 通常為機械硬碟 50-100 倍,對於高併發 OLTP 負載(大量小塊隨機 I/O),遷移後 innodb_io_capacity 可適當調大(如 2000-5000),查詢延遲常降低 60-80%。

以符號連結方式遷移風險最低、回滾最快,是生產環境首選方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved