/var is full hay còn được gọi là phân vùng var trên linux bị đầy.
- Cài đặt OPcache Directadmin chạy CustomBuild 2.0
- Nâng cấp phiên bản CustomBuild từ 1.x lên 2.0
- Hướng dẫn sử dụng screen trên hệ thống linux
Trong quá trình hoạt động của một hệ thống Directadmin đôi lúc chúng ta không tránh khỏi những vấn đề khi bị đầy dung lượng.
Như trong hình bên dưới là hệ thống Directadmin của mình, mình đã mắc sai lầm khi để CentOS tự chia phân vùng(partition) mặc định. Và nó chỉ chia phân vùng / chỉ 50GB mà thôi.
Xem qua hình chắc bạn cũng nhận ra là phân vùng “/” của mình chỉ có 50GB còn “/home” thì còn trống khá nhiều.
Mặc định tất cả các Database Mysql sẽ được lưu trong thư mục /var/lib/mysql/ và mình đã gặp vấn đề lớn đó là có quá nhiều Database nặng đến rất nặng.
Hôm nay mình sẽ hướng dẫn các bạn cách giải phóng dung lượng cho thư mục /var/lib/mysql/ mà không cần phải thay đổi được dẫn lưu database mặc định. Trước khi tìm ra cách này mình đã thử thay đổi được dẫn mặc định nhưng gặp rất nhiều lỗi, đến mức phải nhờ sự trợ giúp của recovery “innodb_force_recovery = 1 & log_bin=ON” mới có thể bật lại mysqld.
Cách xử lý phân vùng /var bị đầy khi thư mục chứa database(/var/lib/mysql)chiếm quá nhiều dung lượng hệ thống chạy Directadmin (/var is full):
Bước 1: Tạo một thư mục mysql tại /home và phân quyền với user và group đều là mysql
cd /home
mkdir mysql
chown mysql:mysql mysql
cd mysql
Giải thích các lệnh trên:
- Di chuyển đến “/home”
- Tạo một thư mục có tên “mysql”
- Phân quyền user và group là mysql cho thư mục mới tạo
- Di chuyển vào thư mục mysql
Bước 2: Dừng dịch vụ mysqld
perl -pi -e ‘s/mysqld=ON/mysqld=OFF/’ /usr/local/directadmin/data/admin/services.status
/sbin/service mysqld stop
Giải thích các lệnh trên:
- Chuyển trạng thái khởi động cùng hệ thống của dịch vụ mysqld từ “ON” sang “OFF”
- Dừng dịch vụ mysql
Bước 3: Di chuyển tất cả dữ liệu từ /var/lib/mysql/ đến /home/mysql và tạo lại liên kết qua nguồn dữ liệu mới
cd /home/mysql
cp -Rp /var/lib/mysql/* .
cd /var/lib
mv mysql mysql_old
ln -s /home/mysql ./mysql
Giải thích các lệnh trên:
- Di chuyển đến thư mục “/home/mysql”
- Sao chép tất cả dữ liệu từ “/var/lib/mysql/” đến thư mục bạn đang đứng(/home/mysql), giữ nguyên thuộc tính và quyền.
- Di chuyển đến thư mục “/var/lib”
- Đổi tên thư mục “mysql” thành “mysql_old” trong “/var/lib”
- Tạo liên kết tượng trưng “/var/lib/mysql” đến “/home/mysql”
Sau khi làm xong bước 3 bạn thử kiểm tra liên kết đã chính xác chưa nhé, ta dùng lệnh sau:
ll /var/lib/
Nếu hiện thị thư mục mysql như hình sau là bạn đã thành công, nếu chưa chính xác bạn xem lại các bước trên xem đã làm nhầm lẫn ở bước nào.
Bước 4: Bật lại dịch vụ mysqld và cho phép khởi động cùng hệ thống
/sbin/service mysqld start
perl -pi -e ‘s/mysqld=OFF/mysqld=ON/’ /usr/local/directadmin/data/admin/services.status
Giải thích các lệnh trên:
- Bật lại dịch vụ mysql
- Chuyển trạng thái khởi động cùng hệ thống của dịch vụ mysqld từ “OFF” sang “ON”
Sau khi hoàn thành bước 4, các bạn kiểm tra các dịch vụ đã hoạt động bình thường hay chưa, nếu mọi thứ đã hoạt động bình thường các bạn có thể xóa thư mục /var/lib/mysql_old với lệnh sau:
rm -rf /var/lib/mysql_old