Xin chào,

Trong một hệ thống, việc quản lý bảo toàn cơ sở dữ liệu ( database ) là vô cùng cần thiết. Sẽ ra sao nếu như website / hệ thống của bạn đã hoạt động được 1 thời gian 5-10 năm, vào một ngày đẹp trời, hệ thống của bạn bị hacker tấn công và xoá hết database, chúng yêu cầu chuộc lại database, hoặc trường hợp ngay cả bản thân người quản lý vận hành, vì thao tác nhầm trên các môi trường ( dev, staging và production ) đã drop database. Nếu bạn không có sự chuẩn bị backup từ trước thì chúc mừng bạn, có thể bạn sẽ phải trả những cái giá khá là đắt đỏ, có thể là tiền để đền bù và uy tín của bạn đối với khách hàng.

Đối với source code , bạn có thể không cần quá lo lắng bởi chúng ta đã có những nơi lưu trữ source code như : github, gitlab, bitbucket… , chỉ một vài thao tác đơn giản như pull push là bạn có thể dựng lại môi trường, nhưng database thì không may mắn như vậy. Mình rất thích một câu nói sau:

Tức chúng ta phải chuẩn bị tất cả viễn cảnh có thể xảy ra , để tránh thương đau

Trong ví dụ này, chúng ta sẽ tạo một command database:backup và chúng ta sẽ lên lịch chạy lệnh này hàng ngày. lệnh này sẽ sao lưu cơ sở dữ liệu và đưa nó vào thư mục lưu trữ ( Storage ). Nào bây giờ chúng ta sẽ cùng bắt đầu

Bước 1: Cài đặt Laravel

Ở bước này, nếu bạn chưa thiết lập ứng dụng laravel thì chúng ta phải tải ứng dụng laravel mới. Vì vậy, hãy chạy lệnh dưới đây và nhận được ứng dụng laravel mới.

Bước 2: Tạo Command

Trong bước này, chúng ta sẽ tạo lệnh console DatabaseBackUp bằng command laravel. vì vậy hãy chạy lệnh dưới đây:

Sau khi chạy command trên, chúng ta sẽ có một file app/Console/Commands/DatabaseBackUp.php

Hãy sửa nội dung file trên như sau:

Bước 3: Tạo thư mục Backup

Ở bước này, chúng ta cần tạo thư mục “backup” trong thư mục lưu trữ của bạn. bạn phải tạo “backup” theo đường dẫn sau:

Hãy chắc chắn rằng bạn cho phép đặt tập tin sao lưu.

Bước 4: Thiết lập thời gian chạy command

Bây giờ, trong bước này, chúng ta cần lên lịch cho lệnh đã tạo của mình. vì vậy hãy cập nhật tệp kernel như dưới đây:

Bây giờ bạn có thể kiểm tra bằng cách bật terminal lên và thực hiện lệnh sau:

Nó sẽ tạo một tập tin sao lưu trên thư mục sao lưu của bạn (storage/app/backup) . bạn có thể kiểm tra ở đó

Bước 5: Thiết lập trên Server

Bây giờ, chúng ta đã sẵn sàng thiết lập cron trên máy chủ của mình.

Chạy command sau :

Bạn có thể thêm dòng sau vào tệp crontab của mình. bạn phải thay đổi đường dẫn thư mục đúng với đường dẫn chứa source code của bạn

Như vậy mình đã hướng dẫn các bạn command backup database hàng ngày, chúng ta có thể backup và up lên google driver , s3…. tuỳ theo nhu cầu của bạn.

Ngoài ra có một số package hỗ trợ việc backup này, nổi bật là package Laravel Backup của spatie, bạn có thể tìm hiểu package này ở đây

Neartech xin trân trọng cảm ơn bạn đã quan tâm bài viết này! Nếu bạn gặp khó khăn gì hãy để lại comment ở bên dưới, nếu có thể mình sẽ giúp đỡ bạn!

 

 

1 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments