June 26, 2015

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

1. Mục đích và nguyên nhân:
Bài viết này sẽ hướng dẫn quý khách hàng cách nhận biết và xử lý lỗi database bị corrupt hay crash
Thường thì do một số nguyên nhân nào đó,  ví dụ như HDD server đầyHDD bị BAD hay thiếu bộ nhớ RAM cho các tiến trình mysql hoạt động,..là những nguyên nhân chủ yếu dẫn đến lỗi trên. Hoặc do một số lỗi phát sinh làm cho server bị treophải reboot và sau khi reboot thì có thể một số table của các database bị crash
2. 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"3. Cách xử lý:
Để xử lý lỗi trên quý khách 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 khách hàng.
- Sau khi vào Cpanel khách hàng 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 quý khách 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 khách hàng 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 đó quý khách sẽ thấy Check table và Repair table.
b. Đối với dịch vụ VPS/Server:
Quý khách có thể thao tác tương tự như gói dịch vụ share hosting nếu trên server của khách hàng có Cpanel License. Nếu không quý khách hàng 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 quý khách 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 quý khách vui lòng restart 
lại dịch vụ mysql bằng lệnh:
   # service mysqld restart

0 comments:

Post a Comment