Sao lưu dữ liệu và khôi phục cơ sở dữ liệu MySQL là một trong những vấn đề doanh nghiệp quan tâm. Chúng ta thường sẽ sử dụng MySQL để backup một database ( sao lưu cùng lúc nhiều cơ sở dữ liệu database). Nếu database có dữ liệu quá lớn, thì giải pháp là gì? Bạn đọc hãy cùng FStorage tìm hiểu cách sao lưu dữ liệu MySQL lên cloud storage trong bài viết lần này.
Mục lục
MYSQL là gì ?
MySQL là một hệ thống quản trị về cơ sở dữ liệu với mã nguồn mở (được gọi tắt là RDBMS) và đang hoạt động theo mô hình dạng client-server. Đối với RDBMS – Relational Database Management System thì MySQL đã được tích hợp apache và PHP. MySQL hiện đang quản lý dữ liệu qua những cơ sở dữ liệu, với mỗi một cơ sở dữ liệu hoàn toàn có thể có rất nhiều những bản quan hệ có chứa dữ liệu. Ngoài ra, MySQL cũng có cùng 1 cách thức truy xuất cũng như mã lệnh tương tự cùng với ngôn ngữ SQL.

Ưu điểm MySQL
- Nhanh chóng: Nhờ vào việc đưa ra một số những tiêu chuẩn và cho phép MySQL làm việc hiệu quả cũng như tiết kiệm chi phí, giúp gia tăng tốc độ thực thi.
- Đa tính năng: MySQL hiện đang hỗ trợ nhiều những chức năng SQL rất được mong chờ từ 1 hệ quản trị CSDL quan hệ cả gián tiếp cũng như trực tiếp.
- Mạnh mẽ và khả năng mở rộng dữ liệu: MySQL hoàn toàn có thể xử lý số lượng lớn dữ liệu và đặc biệt hơn thế nữa thì nó còn có thể mở rộng nếu như cần thiết.
- Dễ dàng sử dụng: MySQL đang là cơ sở dữ liệu dễ sử dụng, ổn định, tốc độ cao và hoạt động trên rất nhiều những hệ điều hành đang cung cấp 1 hệ thống lớn những hàm tiện ích rất mạnh.
- Độ bảo mật cao: Hiện tại nó đang rất thích hợp cho những ứng dụng truy cập CSDL thông qua internet khi sở hữu rất nhiều những tính năng về bảo mật và thậm chí là đang ở cấp cao.
Nhược điểm MySQL
- Dung lượng hạn chế: Trong trường hợp nếu như số lượng bản ghi của bạn đang lớn dần lên thì khi đó quá trình truy xuất dữ liệu sẽ diễn ra vô cùng khó khăn. Như vậy cần phải áp dụng rất nhiều những biện pháp khác nhau để có thể gia tăng được tốc độ truy xuất những dữ liệu ví dụ như tạo cache MySQL hoặc chia tải database ra nhiều server.
- Giới hạn: Theo thiết kế thì MySQL không có ý định thực hiện toàn bộ và nó đang đi kèm cùng với những hạn chế liên quan tới chức năng mà một số ứng dụng có thể cần tới.
- Độ tin cậy: Theo đó cách thức nhận chức năng cụ thể đang được xử lý cùng với MySQL (ví dụ như kiểm toán, những giao dịch, tài liệu tham khảo,…) khiến cho nó trở nên kém tin cậy hơn một số những hệ quản trị về cơ sở dữ liệu có quan hệ khác.
Hướng Dẫn Backup dữ liệu MYSQL với FStorage

Chuẩn bị cài đặt AWS CLI
AWS CLI là một ứng dụng được AWS phát triển để hỗ trợ thao tác với S3 amazon bằng commandline trên hệ hiều hành Linux
B1: Cài đặt AWS CLI
Trên Centos chạy command.
yum install -y awscli
Hoặc
wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
unzip awscli-exe-linux-x86_64.zip
./aws/install
/usr/local/bin/aws --version
Trên Ubuntu chạy command
apt-get install awscli
Hoặc
wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
unzip awscli-exe-linux-x86_64.zip
./aws/install
/usr/local/bin/aws --version
B2: Cấu hình account S3
Chạy command: aws configure --profile fstorage
AWS Access Key ID [None]: “Nhập Access_key_id”
AWS Secret Access Key [None]: “Nhập Secret_key_id”
Default region name [None]: “Không cần nhập”
Default output format [json]: “json”
Test kết nối.
Chạy command: aws s3 --profile fstorage --endpoint-url https://s3.fstorage.vn ls s3://fstoragedemo

Upload dữ liệu từ server lên Fstorage
aws s3 --profile fstorage --endpoint-url https://s3.fstorage.vn cp /root/openresty-1.13.6.2.tar.gz s3://fstoragedemo
Download dữ liệu từ S3 xuống Server
aws s3 --profile fstorage --endpoint-url https://s3.fstorage.vn cp s3://fstoragedemo/awscli-exe-linux-x86_64.zip /root
Đồng bộ
aws s3 --profile fstorage --endpoint-url https://s3.fstorage.vn sync /var/log/ s3://fstoragedemo/log
Awscli hỗ trợ một số command
ls : list danh sách Bucket/File/Folder
cp : copy file/folder từ máy tính lên Fstorage hoặc ngược lại
rm : xóa file/folder
mb : tạo bucket
rb : xóa bucket
mv : move file/folder từ máy tính lên Fstorage và ngược lại
sync : đồng bộ dữ liệu từ máy tính lên Fstorage và ngược lại
Các bước thực hiện
Tạo File Script Backup MySQL
vi /backup/scripts/s3-backup-mysql.sh
#!/usr/bin/env bash
DATE_FORMAT=$(date +"%Y-%m-%d")
# MySQL server credentials
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="user"
MYSQL_PASSWORD="password"
# Path to local backup directory
LOCAL_BACKUP_DIR="/backup/dbbackup"
# Set s3 bucket name and directory path
S3_BUCKET_NAME="s3-bucket-name"
S3_BUCKET_PATH="backups/db-backup"
# Number of days to store local backup files
BACKUP_RETAIN_DAYS=30
# Use a single database or space separated database's names
DATABASES="DB1 DB2 DB3"
##### Do not change below this line
mkdir -p ${LOCAL_BACKUP_DIR}/${DATE_FORMAT}
LOCAL_DIR=${LOCAL_BACKUP_DIR}/${DATE_FORMAT}
REMOTE_DIR=s3://${S3_BUCKET_NAME}/${S3_BUCKET_PATH}
for db in $DATABASES; do
mysqldump \
-h ${MYSQL_HOST} \
-P ${MYSQL_PORT} \
-u ${MYSQL_USER} \
-p${MYSQL_PASSWORD} \
--single-transaction ${db} | gzip -9 > ${LOCAL_DIR}/${db}-${DATE_FORMAT}.sql.gz
aws s3 cp ${LOCAL_DIR}/${db}-${DATE_FORMAT}.sql.gz ${REMOTE_DIR}/${DATE_FORMAT}/
done
DBDELDATE=`date +"${DATE_FORMAT}" --date="${BACKUP_RETAIN_DAYS} days ago"`
if [ ! -z ${LOCAL_BACKUP_DIR} ]; then
cd ${LOCAL_BACKUP_DIR}
if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then
rm -rf ${DBDELDATE}
fi
fi
## Script ends here
Thay đổi các Path theo nhu cầu của bạn.
Phần quyền cho file script
chmod +x s3-backup-mysql.sh
Set lịch để tự động chạy script
Gõ lệnh
crontab -e
Copy & Paste vào crontab
0 23 * * * /backup/scripts/s3-backup-mysql.sh > /dev/null 2>&1
(Thay đổi thời gian theo mong muốn của bạn)
Kết luận
Như vậy với những thông tin tổng quan được FStorage cung cấp qua bài viết đã giúp bạn hiểu được rõ hơn về sao lưu dữ liệu MySQL. Giúp doanh nghiệp có giải pháp tốt hơn trong việc xử lý database lớn trong tương lai.
Để tìm hiểu thêm về dịch vụ FStorage, vui lòng liên hệ đến :
Fanpage: https://www.facebook.com/fstorage
Email: [email protected]