(+84) 236.3827111 ex. 402

Di chuyển dữ liệu MySQL đến một vị trí mới sử dụng liên kết mềm (SYMLINK)


Cơ sở dữ liệu phát triển theo thời gian, đôi khi vượt ra ngoài không gian trên hệ thống tập tin. RAID, network block storage, và các thiết bị khác có thể cung cấp khả năng dự phòng cũng như các tính năng hấp dẫn khác. Cho dù bạn đang thêm nhiều không gian hơn, đánh giá cách để tối ưu hóa hiệu suất, hoặc tìm cách để tận dụng lợi thế của các tính năng lưu trữ khác. Bài viết sẽ hướng dẫn bạn thông qua việc di chuyển các thư mục dữ liệu MySQL.

Yêu cầu:

- Một máy chủ Ubuntu 16.04;

- Một máy chủ MySQL;

- Một bản sao lưu cơ sở dữ liệu của bạn.

Trong ví dụ này, chúng ta đang di chuyển dữ liệu đến một block storage tại /mnt/volume-nyc1-01.

Hướng dẫn sau có thể giúp bạn di chuyển các thư mục dữ liệu đến một vị trí mới.

Bước 1 - Di chuyển thư mục dữ liệu MySQL

sudo systemctl stop mysql

sudo systemctl status mysql

Máy chủ ngừng hoạt động, chúng ta sẽ chuyển thư mục cơ sở dữ liệu hiện tại đến vị trí mới:

sudo mv /var/lib/mysql /mnt/volume-nyc1-01/mysql

Tiếp theo, chúng ta sẽ tạo các liên kết mềm:

sudo ln -s /mnt/volume-nyc1-01/mysql /var/lib/mysql

Bước 2 - Cấu hình quy tắc kiểm soát truy cập AppArmor

Khi bạn di chuyển thư mục MySQL, bạn sẽ cần phải tạo ra một bí danh (alias) AppArmor.

Thêm bí danh, chỉnh sửa các tập tin bí danh AppArmor:

sudo nano /etc/apparmor.d/tunables/alias

Thêm các quy tắc alias vào dưới cùng của tập tin:

/etc/apparmor.d/tunables/alias

. . .

alias /var/lib/mysql/ -> /mnt/volume-nyc1-01/mysql/,

. . .

Khởi động lại AppArmor:

sudo systemctl restart apparmor

Thự hiện khởi chạy MySQL và kiểm tra

sudo systemctl start mysql

sudo systemctl status mysql

Trong hướng dẫn này, chúng ta đã di chuyển dữ liệu MySQL và sử dụng một liên kết tượng trưng để làm cho MySQL nhận thức được vị trí mới. Chúng ta cũng đã cập nhật AppArmor ACL của Ubuntu để thích ứng với điều chỉnh.