Yêu cầu thg 9 7, 2019 5:44 CH 187 0 2
  • 187 0 2
+1

Cách lưu database song song trong php

Chia sẻ
  • 187 0 2

Chào mọi người, cho mình hỏi là. Hiện tại mình đang làm một blog trên nền php thuần sử dụng csdl là mysql (dùng pdo) trên hosting cpanel. Vậy cho mình hỏi là có cách nào để nó tự động lưu vào 2 databale khi mình import vào database không. Nhu cầu là sau khi mình import một dữ liệu vào database 1 thì 5-10p sau database 2 kia sẽ tự import theo( hoặc ngay lập tức). Database 2 chỉ cho phép import (Insert into) không cho phép update. Có cách nào không ạ ? Vì vừa rồi mình gặp 1 trường hợp khá thốn là sau khi update cho bảng mình mới phát hiện là quên chỉ định id ( WHERE id = ... ) Nên nó thay đổi toàn bộ bảng blog của mình thành nội dung giống hệt nhau (lỗi khi sửa lại code). Thế là phải xoá hết database và up lại toàn bộ post (cũng không nhiều do mình mới bắt đầu) nhưng mình sợ sau này lại bị một lần nữa ( đề phòng code ngu lần 2). Các cao nhân có cách nào để xử lý vấn đề này không ạ ? Xin cảm ơn.

2 CÂU TRẢ LỜI


Đã trả lời thg 9 9, 2019 1:07 SA
Đã được chấp nhận
+4

Nếu hosting provider có cung cấp dịch vụ auto backup database thì bạn dùng luôn để tự backup theo ngày là được rồi bạn. Nếu bạn không dùng dịch vụ backup của hosting provider thì bạn có thể chạy command line để backup database với mysqldump.

mysqldump -uusername -ppassword database_name > $(date "+%Y-%m-%d-%H-%M").sql

VD: lệnh trên sẽ export dastabase của bạn ra một file .sql có tên file là ngày tháng năm luôn, bạn có thể dùng để import lại database khi gặp sự cố.

Bạn set command trên vào cronjob để cho nó tự động backup database vào một thời điểm nào đó ít người sử dụng như 1h, 2h hay 3h sáng chẳng hạn. Hoặc bạn cho nó backup cứ cách 4 tiếng chẳng hạn...

Bạn có thể xem xét giải pháp này thay vì hướng giải quyết hiện tại của bạn nhé.

Chia sẻ
Đã trả lời thg 9 8, 2019 4:17 SA
+1

tạo connection mysql rồi lưu data vào database 1 -> chạy cron job 5 phút sau -> lấy bản ghi cuối cùng của database 1 của cái bảng đó -> tạo connection khác lưu vào database 2 -> ghi vào database 2. Luồng đi chắc như này sẽ ổn

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí