Databases có thể phát triển theo thời gian và khiến bộ nhớ trên hệ thống bị đầy. Nếu bạn đã cài đặt MariaDB vào cùng một phân vùng với các file hệ thống khác thì có thể gặp tình trạng vị đầy bộ nhớ. Để giải quyết tình trạng này, mình sẽ hướng dẫn bạn cách di chuyển thư mục dữ liệu MariaDB sang các vị trí khác nhằm tối ưu hóa hiệu suất cho hệ thống.
Những điểm chính
- Nắm rõ các điều kiện tiên quyết cần thiết trước khi tiến hành di chuyển thư mục dữ liệu MariaDB sang vị trí mới trên CentOS 7
- Hướng dẫn chi tiết từng bước di chuyển dữ liệu MariaDB một cách an toàn.
- Biết đến Vietnix là nhà cung cấp VPS mạnh mẽ, linh hoạt, là lựa chọn lý tưởng cho việc lưu trữ database.
- Giải đáp một số câu hỏi thường gặp khi di chuyển thư mục dữ liệu MariaDB.
Điều kiện tiên quyết để di chuyển thư mục dữ liệu MariaDB sang vị trí mới trên CentOS 7
Để thực hiện hướng dẫn này, bạn cần phải cần phải đảm bảo thỏa mãn một số điều kiện như sau:
- Một máy chủ CentOS 7 đã cài đặt MariaDB. (Hướng dẫn cài đặt MariaDB trên CentOS 7 chi tiết tại đây)
- Một tài khoản người dùng non-root có quyền
sudo
. - Thiết bị hoặc không gian lưu trữ mới và đã
mount
chúng vào hệ thống để làm nơi lưu trữ mới cho thư mục dữ liệu MariaDB sau khi di chuyển.
Nếu đã đáp ứng đầy đủ thì tiếp tục thực hiện theo các bước hướng dẫn bên dưới đây.
Tối ưu hóa hiệu suất MariaDB của bạn với VPS NVMe Vietnix. Với tốc độ đọc/ghi dữ liệu vượt trội từ ổ cứng NVMe Enterprise và hiệu năng xử lý cao của CPU Intel Xeon Platinum, việc di chuyển và vận hành database của bạn trên VPS sẽ mượt mà hơn bao giờ hết, đảm bảo ứng dụng luôn phản hồi nhanh chóng.
Bước 1 – Di chuyển thư mục dữ liệu MariaDB
Đầu tiên, bạn cần phải khởi chạy MariaDB và xem đường dẫn hiện tại của thư mục dữ liệu MariaDB hiện đang nằm ở đâu:
mysql -u root -p
Bạn cần phải nhập mật khẩu của MariaDB khi được yêu cầu. Sau đó, nhập tiếp lệnh sau:
select @@datadir;
Bạn sẽ thấy output là thông tin về đường dẫn tới vị trí hiện tại của thư mục dữ liệu MariaDB:
Output
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)
Như bên trên thì đường dẫn thư mục dữ liệu hiện là /var/lib/mysql/
. Vậy là bạn đã biết được nơi dữ liệu MariaDB đang được lưu trữ, giờ hãy thoát khỏi phiên đăng nhập này bằng lệnh exit
:
exit
Trước khi bạn tiến hành di chuyển thư mục đó sang nơi mới, hãy tắt MariaDB để đảm bảo tính toàn vẹn của dữ liệu bằng lệnh:
sudo systemctl stop mariadb
Sau đó sử dụng lệnh sau để kiểm tra lại một lần nữa:
sudo systemctl stop mariadb
Nếu kết quả output có dòng Stopped MariaDB database server như bên dưới thì bạn có thể thực hiện bước tiếp theo:
Output
. . .
Dec 16 18:29:26 mysql systemd[1]: Stopped MariaDB database server.
Bây giờ tiến hành sao chép thư mục cơ sở dữ liệu hiện có sang vị trí mới với lệnh rsync
. Sử dụng cờ -a
để giữ nguyên quyền và các thuộc tính của các thư mục khác và cờ -v
để cung cấp output chi tiết để theo dõi tiến độ di chuyển:
sudo rsync -av /var/lib/mysql /new-drive
Lưu ý
Hãy chắc chắn không có dấu gạch chéo ở cuối đường dẫn mysql để đảm bảo di chuyển dữ liệu đúng địa điểm vào thư mục. Bạn có thể thay thế /new-drive
bằng đường dẫn mới tương ứng theo hệ thống. Để đảm bảo quá trình di chuyển diễn ra nhanh chóng và không làm gián đoạn dịch vụ, việc sử dụng VPS NVMe từ Vietnix là một lợi thế lớn, với tốc độ đọc/ghi siêu tốc giúp sao chép dữ liệu MariaDB hàng GB nhanh chóng.
Sau khi quá trình rsync
hoàn tất, tiến hành đổi tên thư mục hiện tại với phần mở rộng .bak
và giữ cho đến khi việc di chuyển hoàn tất. Điều này nhằm tránh sự nhầm lẫn các file ở vị trí cũ và mới:
sudo mv /var/lib/mysql /var/lib/mysql.bak
Bước 2 – Chỉ định vị trí lưu trữ mới cho MariaDB
Có nhiều cách để ghi đè giá trị trong file cấu hình MySQL. Nhưng theo mặc định, vị trí lưu trữ datadir được đặt trong đường dẫn /var/lib/mysql
theo file /etc/my.cnf
. Vậy bạn chỉ cần chỉnh sửa file này để phản ánh thư mục lưu trữ dữ liệu mới bằng lệnh:
sudo vi /etc/my.cnf
Tìm dòng bắt đầu bằng datadir=
sau đó thay đổi đường dẫn thành đường dẫn tới vị trí mới. Ngoài ra, bạn cũng cần phải cập nhật vị trí socket cho đúng theo đường dẫn mới:
[mysqld]
. . .
datadir=/new-drive/mysql
socket=/new-drive/mysql/mysql.sock
. . .
Ở đây thay thế new-drive bằng đường dẫn mà bạn đã di chuyển theo lệnh resync
ở bước 1. Sau đó chèn các lệnh sau vào vị trí bên dưới file nhưng trên dòng include
để tránh phân tách block [mysqld]
:
[client]
port=3306
socket=/new-drive/mysql/mysql.sock
!includedir /etc/my.cnf.d
Đừng quên thay thế new-drive bằng đường dẫn thư mục mới của bạn. Sau khi bạn hoàn tất, nhấn ESC, sau đó gõ :wq!
để lưu và thoát file.
Bước 3 – Khởi động lại MariaDB
Bây giờ bạn đã cập nhật cấu hình để sử dụng đường dẫn lưu trữ mới, hãy sẵn sàng để khởi động MariaDB và kiểm tra cơ sở dữ liệu bằng lệnh:
sudo systemctl start mariadb
sudo systemctl status mariadb
Sau khi khởi động, tiến hành đăng nhập vào MariaDB:
mysql -u root -p
Và thử xuất đường dẫn lưu trữ cơ sở dữ liệu hiện tại để xem MariaDB đã được cập nhật hay chưa:
select @@datadir;
Nếu bạn thấy output là đường dẫn mới tương tự như đã thực hiện ở các bước 1 và 2 thì quá trình di chuyển đã thành công.
Bây giờ bạn có thể xóa thư mục mysql.bak
đã đổi tên ở phần trước, tuy nhiên trước đó hãy chắc rằng mọi thứ hoạt động ổn định ở đường dẫn mới:
sudo rm -Rf /var/lib/mysql.bak
Dọn dẹp không gian đĩa là một phần quan trọng để giữ cho hệ thống của bạn hoạt động hiệu quả. Với VPS Vietnix, bạn sẽ luôn có đủ dung lượng để phát triển, mở rộng database mà không cần lo lắng về việc đầy bộ nhớ.
Vietnix VPS: Giải pháp lưu trữ và quản lý database tối ưu
Để đảm bảo không gian lưu trữ có thể mở rộng linh hoạt theo sự gia tăng của cơ sở dữ liệu MariaDB sau một thời gian sử dụng, việc sử dụng VPS của Vietnix làm nơi lưu trữ dữ liệu sẽ là sự lựa chọn tối ưu nhất. Với hơn 13 năm hoạt động, Vietnix đã phục vụ hơn 100.000 khách hàng, bao gồm cá nhân, doanh nghiệp như GTV, iVIVU, Vietnamworks, SEOSONA, SAGO Media,… Vietnix cũng là nhà cung cấp giải pháp VPS được trao giải thưởng Thương hiệu Việt Nam xuất sắc 2022.
Thông tin liên hệ:
- Hotline: 18001093.
- Email: sales@vietnix.com.vn.
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/.
Câu hỏi thường gặp
Tại sao cần di chuyển thư mục dữ liệu MariaDB?
– Giải phóng dung lượng trên phân vùng gốc: Khi database phát triển lớn, nó có thể chiếm hết dung lượng trên phân vùng hệ thống, gây ảnh hưởng đến hoạt động của toàn bộ server.
– Tối ưu hiệu suất: Di chuyển database sang một phân vùng hoặc ổ đĩa riêng biệt (đặc biệt là NVMe) có thể cải thiện đáng kể tốc độ đọc/ghi, giúp các truy vấn database nhanh hơn.
– Quản lý dễ dàng hơn: Tách biệt dữ liệu database khỏi các file hệ thống khác giúp việc sao lưu, phục hồi và quản lý tổng thể trở nên đơn giản hơn.
– Mở rộng linh hoạt: Dễ dàng thêm không gian lưu trữ chuyên dụng cho database khi cần mà không ảnh hưởng đến phân vùng gốc.
Có cách nào khác để giải phóng dung lượng cho database không?
– Tối ưu hóa bảng: Sử dụng lệnh OPTIMIZE TABLE
để thu gọn và sắp xếp lại dữ liệu trong các bảng, giải phóng không gian không sử dụng.
– Xóa dữ liệu cũ/không cần thiết: Định kỳ xóa các bản ghi cũ, log file hoặc dữ liệu không còn cần thiết.
– Sử dụng phân vùng log riêng: Di chuyển các file log của MariaDB/MySQL sang một phân vùng riêng biệt.
– Nén bảng: Đối với một số engine lưu trữ, bạn có thể nén dữ liệu bảng để giảm không gian vật lý.
– Sharding/Partitioning: Đối với database rất lớn, chia nhỏ database thành nhiều phần nhỏ hơn (partitioning) hoặc phân tán trên nhiều server (sharding) có thể giúp quản lý dung lượng và hiệu suất.
Có rủi ro nào khi di chuyển thư mục dữ liệu MariaDB không?
Có, việc di chuyển thư mục dữ liệu MariaDB nếu không được thực hiện đúng cách có thể dẫn đến mất dữ liệu hoặc lỗi database không thể khởi động. Các rủi ro bao gồm:
– Mất mát dữ liệu: Nếu quá trình sao chép bị gián đoạn hoặc không hoàn chỉnh.
– Lỗi quyền truy cập: Nếu quyền sở hữu hoặc quyền truy cập tệp không được giữ nguyên.
– Lỗi cấu hình: Nếu đường dẫn mới trong tệp cấu hình MariaDB không chính xác. Để giảm thiểu rủi ro, hãy luôn sao lưu dữ liệu trước khi di chuyển và tuân thủ chặt chẽ các bước hướng dẫn.
Vậy là qua hướng dẫn về cách di chuyển thư mục dữ liệu MariaDB sang vị trí mới trên CentOS 7 này, bạn đã biết cách di chuyển thư mục cơ sở dữ liệu của MariaDB đến một vị trí mới và cấu hình lại để chúng có thể hoạt động một cách ổn định. Mong rằng bạn có thể áp dụng những thông tin từ bài hướng dẫn này để tối ưu hệ thống và giảm thiểu tình trạng đầy dung lượng do cơ sở dữ liệu mang lại.