最近測試vertica列式資料倉儲的需要,需將原來幾台運行MySQL服務的linux伺服器中的邏輯卷降為物理分區並重新建立檔案系統。
伺服器置維護
備份原來的資料
停掉mysql服務
卸載邏輯卷
sudo umount /dev/mapper/VolGroup01-LogVol00
sudo vim /etc/rc.local
注釋掉
mount -o noatime,nodiratime,nobarrier,logbufs=8 /dev/VolGroup01/LogVol00 /data
移除邏輯卷
sudo lvs
sudo lvremove LogVol00 VolGroup01
移除卷組
sudo vgs
sudo vgremove VolGroup01
移除物理卷
sudo pvs
sudo pvremove /dev/cciss/c0d1p1
在物理分區建立檔案系統
sudo mkfs.ext3 /dev/cciss/c0d1p1
掛載分區
sudo mount /dev/cciss/c0d1p1 /data
掛在命令寫進開機檔案
sudo vim /etc/rc.local
mount /dev/cciss/c0d1p1 /data(要在mysql啟動命令之前)
檢查MySQL設定檔
恢複資料
重啟服務
一些問題:
若使用一個全新的不含任何檔案的目錄作為MySQL新的資料目錄,則首先要將其使用者和組設定為mysql,另外要運行mysql_install_db初始化資料庫,注意指定使用者名稱和資料目錄資訊
sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql
建立過程可能需要臨時目錄並需要相應許可權,根據錯誤提示建好目錄將使用者和組設定為mysql即可。mysql啟動過程中遇到的問題多半都是目錄和許可權問題。如:
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
ERROR 1005 (HY000): Can't create table 'tmp' (errno: 13)