Hướng dẫn nhận biết và xử lý khi cơ sở dữ liệu bị lỗi corrupted/crashed cần repair

Bài viết này sẽ hướng dẫn nhận biết và xử lý khi cơ sở dữ liệu bị lỗi corrupted/crashed cần repair
Thường thì do một số nguyên nhân nào đó, ví dụ như HDD server đầy, HDD bị BAD hay thiếu bộ nhớ RAM cho các tiến trình mysql hoạt động,.. Đây là những nguyên nhân chủ yếu dẫn đến lỗi trên, hoặc cũng có thể do một số lỗi phát sinh làm cho server bị treo phải reboot và sau khi reboot thì có thể một số table của các database bị crash.
1. Một số dấu hiệu nhận biết
Một số dấu hiệu để chắc chắn rằng database đã bị crash thường có dạng như:
Database error: [Table 'table_name' is marked as crashed and should be repaired]
Hoặc
[ERROR] /usr/sbin/mysqld: Table './wordpress/table_name' is marked as crashed and should be repaired
Và đôi khi những lỗi dưới đây nếu xuất hiện thì cũng có khả năng đã xảy ra lỗi do database đã bị crash:
“Error establishing a database connection”
Hoặc
"ERROR! mysql server PID file could not be found"
2. Cách xử lý
Để xử lý lỗi trên bạn cần kiểm tra lại các table nào của database bị crash bằng các cách sau:
a. Đối với dịch vụ share hosting:
- Truy cập vào trung tâm tài khoản khách hàng tại link: https://secure.vinahost.vn/ac/index.php -> Control Panel -> Tên gói dịch vụ share hosting của bạn.
- Sau khi vào Cpanel, bạn chọn Quản lý cơ sở dữ liệu -> Danh sách cơ sở dữ liệu MYSQL 
- Tại mục Modify Databases chọn database cần kiểm tra sau đó click "Check DB". Nếu table bị crash, bạn chọn database bị crash và click vào "Repair DB" để repair lại database này.
Quý khách cũng có thể repair từng table bằng cách sau:
- Sau khi vào Cpanel, bạn chọn Quản lý cơ sở dữ liệu -> Chọn phpMyAdmin -> chọn database (bên phải) -> chọn table -> Chọn tiếp Operations. Khi đó bạn sẽ thấy Check table và Repair table.
b. Đối với dịch vụ VPS/Server:
Bạn có thể thao tác tương tự như gói dịch vụ share hosting nếu trên server của bạn có Cpanel License. Nếu không, bạn có thể chạy lệnh sau để kiểm tra database:
 - Check toàn bộ các table của database:
       # mysqlcheck -c database_name  -u root –p
 - Check từng table trong database
       # mysqlcheck -c database_name  table_name  -u root –p
 - Check tất cả các database có trong hệ thống
       # mysqlcheck -c  -u root -p --all-databases 
Nếu table bị crash quý khách chạy lệnh sau để repair database:
   # mysqlcheck -r  database_name  table_name  -u root –p
Thay vì chạy lệnh cho từng database, bạn có thể sử dụng lệnh sau để kết hợp việc check và repair bằng cách thêm vào “--auto-repair”
   # mysqlcheck -u root -p --auto-repair -c  database_name

Sau khi thực hiện các lệnh trên, bạn vui lòng restart lại dịch vụ mysql bằng lệnh:
   # service mysqld restart

Bạn hãy lưu ý tất cả các lệnh trên được chạy trên hệ điều hành Linux và database server là MYSQL. Bạn cũng
 có thể tham khảo thêm tại đây. Chúc bạn thành công!

Powered by WHMCompleteSolution