Topic gần đây nhất của em có nói đến vụ CPU tăng cao và nâng cấp nhầm VPS ấy mọi người. Và trưa nay em đã tiến hành move nó sang VPS có gói thấp hơn để.. còn có cái mà ăn. Và các bước em làm move database và source code như sau: Backup tất cả các thư mục public_html từng file .gz Backup tất cả file nginx của từng web Move các file backup (1) + (2) ra bằng rsync Chi tiết cài đặt và sử dụng rsync tại đây HTML: https://www.digitalocean.com/community/tutorials/how-to-copy-files-with-rsync-over-ssh Rsync tất cả các thư mục cache qua server mới luôn Vậy còn hơn 70GB database thì sao? Do em không thể dùng lệnh mysqldump nên bèn dùng cách của anh nào trên stackoverflow.com bằng cáh rsync luôn thư mục mysql qua và.. em đã làm theo. Mọi chuyện sẽ kết thúc tốt đẹp và em sẽ xách đầu đi lên những site mới nếu mysql không down sau khi em xóa cái VPS cũ đi Vâng, và nó đã down ngay khi em xóa VPS cũ với 1 giấc ngủ trưa nhẹ nửa tiếng. Và giờ thì toàn bộ lô web chỉ Hoạt động với cache và crawl real time. Luôn có báo lỗi khi tới các dòng kết nối mysql (vì mysql down rồi thì làm sao mà kết nối) Start mysql service thì báo ok mà kết nối đến mysql thì không được. Hiện tại đang đang nghi vấn: Rsync nguyên thư mục /var/lib/mysql chưa đúng cách (Vì lúc rsync là dịch vụ mysql trên 2 server đều run nên có thể có những file không rsync). Nghi ngờ enable IP private của DO (Đang snapshot ra VPS khác để test coi sao chứ disable không được). Cuối cùng là nếu cái nghi vấn 2 nếu sai là site tạm thời phải crawl lại từ đầu chờ đến lúc xử lý thư muc /var/lib/mysql đã rsync chưa chuẩn kia. Check status khi start mysql Update cách khắc phục Tình hình là đã khắc phục được khoảng 99% (Còn 1% thì ko chắc vì không biết xót không) Sau đây là các bước fix lại mớ file .idb (Trong thư mục /var/lib/mysql/<tên table> Bước 1: Chuẩn bị một server khác (Srv B) tương tự server mysql down (Server A) (Không biết tận dụng server hiện tại bằng cách tạo 1 database với tên khác được không vì mình chưa test với ổ cứng của VPS ko cho phép làm điều đó). Bước 2: Tạo các table có cấu trúc tương tự bản gốc (cột, index các kiểu) Bước 3: Thực thi câu lệnh sau trong mysql HTML: ALTER TABLE mytable DISCARD TABLESPACE; Bước 4: Copy /var/lib/mysql/<tên data>/<tên table>.ibd từ srv A sang srv B Bước 5: Run command sau trong mysql Code: ALTER TABLE mytable IMPORT TABLESPACE; Bước 6: Kiểm tra lại các table có select được hết không (count, sum, where các kiểu). Nếu trường hợp các có table ko count được hoặc ko duyệt được hết ở nhiều rows thì qua bước 7 (Mình gặp ở table product, có thể do dữ liệu có sự sai sốt do quá trinhf sync cả 2 srv mysql đều run) Bước 7: Dùng mysqldump ra từng nhóm dòng (service này sẽ tự loại bỏ các rows có vấn đề (không select được)). Câu lệnh mình sử dụng như sau: Code: mysqldump -t -u root -p {database_name} {table_name} --where="id > 12000000 AND id <= 13000000" > /path/{data_name}.sql Cách làm dựa trên bài hướng dẫn sau (Mình làm theo cách này không được nên phải bỏ vài bước trong hướng dẫn) và tự hoàn thiện các vấn đề còn gặp phải. Nên khi gặp phải vấn đề trên thì ưu tiên cách làm của tác giả cho đúng chắc ăn nhá https://www.voxteneo.com/restoring-tables-mysql-database-frm-ibd-files-available/
Backup mysql db theo kiểu copy file (rsync) thì data engine phải là myISAM và cấp quyền cho mysql trên folder mới tạo ra.
Hiz vậy là ko fix được đúng ko anh. Vì data em dùng không phải myISAM dù đã phân quyền thư mục lại sau khi copy
Em có dùng tính năng gì của nó đâu. Em dùng script VPSSIM, mặc định nó dùng innodb nên em dùng thôi à. Hiện tại em đang làm theo bài hướng dẫn này, có gì update kết quả sau HTML: https://www.voxteneo.com/restoring-tables-mysql-database-frm-ibd-files-available/
Sao bác ko dump mẹ nó sang vps mới luôn, ý em là tạo db mới ở vps B rồi dump qua luôn cho nhẹ nhàng??
dùng cái này dc nè. tạo đưa về 1 vps lưu trữ rồi để đó luôn https://viblo.asia/p/gioi-thieu-ve-mysql-replication-master-slave-bxjvZYwNkJZ
https://www.cyberciti.biz/tips/howto-copy-mysql-database-remote-server.html Bác thử coai. Em dùng cách này với postgresql thì dump+restore đc luôn cả cục db sang db ở vps khác, khá tiện
Thank bác. Lần sau có cơ hội sẽ áp dụng cách này. Victim của em nó chặn ip kinh lắm anh ơi. rotate proxy mà em phải curl 3 - 4 lần mới được 1 page đó anh. Mà hiện tại thì em restore cũng sắp xong rồi. Giờ đang test lại. Khi nào thấy ổn thiệt update cho ai lỡ dại như em.