Việc chuyển dữ liệu giữa 2 máy chủ nhiều lúc làm bạn cảm thấy stress, vì phải download một lượng lớn dữ liệu rồi lại tải lên máy chủ mới. Rất mệt mỏi và tốn thời gian. Chính vì vậy mình xin mạn phép viết bài hướng dẫn các bạn chuyển toàn bộ dữ liệu từ máy chủ linux này sang máy chủ khác, Việc chuyển dữ liệu giữa 2 server cùng DataCenter cực đơn giản và nhanh chóng, chỉ mất 10 phút thôi.
Bước 1. Tạo một thư mục backup dữ liệu
mkdir ~/bak2911
Mình tạo một thư mục có tên là bak2911 bạn có thể tạo thư mục khác tùy ý.
mkdir là lệnh tạo thư mục mới trên linux.
Bước 2. Backup MySql: Hãy sử dụng mysqldump để backup dữ liệu theo cấu trúc sau
mysqldump -uroot -pmật_khẩu tên_database > ~/bak2911/tên_database .sql
có bao nhiêu password thì bạn lặp lại lênh trên tưng đấy lần nhé.
mysqldump là lệnh backup dữ liệu, rất nhanh chóng và chính xác, với những dữ liệu lớn bạn chỉ cần 1 câu lệnh và chờ vài giây là xong.
Bước 3. Backup toàn bộ dữ liệu web
tar -cvzf ~/bak2911/web-all.tar /var/www/html/
trong đó: /var/www/html/ là thư mục chứa toàn bộ website của bạn ( DocumentRoot )
tar -cvzf là lệnh nén thư mục vào file .tar, rất nhanh chóng và tiện lợi.
Bước 4. Chuyển dữ liệu sang máy chủ mới
scp -r -P22 /root/bak2911 root@ip_server_mới:/thư_mục_trên_server_mới
Với đường truyền tốc độ cao bạn chỉ mất khoảng 5 phút để chuyển 1 GB dữ liệu. Rất nhanh chóng phải không?
scp là lệnh dùng để copy dữ liệu giữa 2 máy chủ.
-r: recusive – đệ quy có nghĩa là copy toàn bộ thư mục, thư mục con và các file chứa trong đó
-P22: là cổng 22, Nếu máy chủ đặt ssh ở cổng khác bạn cần thay đổi thông số này.
Bước 5. Khôi phục dữ liệu Mysql trên Server mới
Hãy tạo các database trên server mới và bắt đầu tiến hành khôi phục. Chạy dòng lệnh sau đây để khôi phục dữ liệu.
mysql -uroot -pmật_khẩu tên_database < /thư_mục_trên_server_mới/tên_database .sql
mysql -uroot -pPassword dbname < file.sql : Đây chính là lệnh khôi phục dữ liệu mysql. Cực nhanh chóng và an toàn.
Bước 6. Khôi phục toàn bộ dữ liệu web
Đầu tiên bạn cần giải nén file backup dữ liệu web
cd /thư_mục_trên_server_mới/
tar -zxvpf web-all.tar
tar -zxvpf là lệnh giải nén file .tar hoặc .tar.gz (với file zip bạn dùng lệnh unzip)
Sau khi giải nén bạn cần chuyển toàn bộ dữ liệu sang thư mục gốc của Apache ( hoặc Nginx)
mv * -Rf /thư_mục_gốc_http
Vậy là bạn đã hoàn thành việc backup và khôi phục là dữ liệu từ VPS cũ sang VPS mới.
Chúc các bạn thành công. Mọi thắc mắc bạn vui lòng để lại comment dưới bài viết. Mình sẽ trả lời trong thời gian sớm nhất có thể.
Không thể backups all data được sao bạn, nếu dữ liệu có khoảng 100 website thì như thế nào ?
100 website thì bạn backup thư mục chứa 100 website đó,
còn db bạn viết 1 bash script để backup là được
Pingback: Những bài viết nên xem khi học VPS
việc backups all data thì làm thế nào? chứ từng data của từng website trên vps không thể nhớ hết cũng như không thể lấy hết được. Chỉ giúp cách có thể backup all data? thanks
Bạn cho hỏi khi copy backup sang server mới (scp -r -P22 /root/bak2911 root@ip_server_mới:/thư_mục_trên_server_mới) không cần yêu cầu xác thực mật khẩu gì à. Vậy ai biết ip và thư mục của mình đều có thể đẩy data sang đúng không?
Mình cũng đang cần chuyển VPS mà nghĩ đến phải chuyển cả loạt website thấy oải quá, hic hic