Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Bài 26. Backup Drupal multisite

ICT

1. Vì sao Drupal multisite đặc biệt rủi ro khi backup?

Drupal multisite cho phép:

  • Nhiều website

  • Dùng chung một codebase

  • Mỗi site có cấu hình, dữ liệu riêng

Ưu điểm:

  • Dễ quản lý code

  • Tiết kiệm tài nguyên

  • Triển khai nhanh

Nhưng rủi ro lớn nhất là:

Một lỗi backup hoặc restore có thể làm hỏng nhiều website cùng lúc.

📌 Backup multisite không thể làm theo cách “một site đơn lẻ”.


2. Cấu trúc Drupal multisite cần hiểu rõ

Một hệ thống Drupal multisite điển hình:

/web
├── core/
├── modules/
├── themes/
├── sites/
│    ├── default/
│    ├── siteA/
│    │     ├── files/
│    │     └── settings.php
│    ├── siteB/
│    │     ├── files/
│    │     └── settings.php
│    └── sites.php
 

📌 Mỗi site có:

  • Database riêng (hoặc schema riêng)

  • Files riêng

  • Cấu hình riêng


3. Nguyên tắc cốt lõi khi backup Drupal multisite

  1. Phân biệt rõ phần dùng chung và phần riêng

  2. Không backup “gom chung” mù quáng

  3. Có khả năng restore từng site độc lập

  4. Tránh single point of failure


4. Nhóm dùng chung cho toàn bộ multisite

4.1. Codebase dùng chung

  • Drupal core

  • Module dùng chung

  • Theme dùng chung

📌 Có thể tái tạo từ Git / Composer, nhưng vẫn nên backup để phục hồi nhanh.


4.2. File sites.php

  • Mapping domain → site folder

  • Quyết định site nào được load

📌 Sai sites.php = site không truy cập được.


5. Nhóm RIÊNG cho từng site (bắt buộc backup)

5.1. Database từng site (quan trọng nhất)

  • Mỗi site một database

  • Hoặc chung DB nhưng khác prefix (không khuyến nghị)

📌 Phải backup từng DB riêng biệt, không dump chung mù quáng.


5.2. Thư mục files của từng site

  • sites/siteA/files

  • sites/siteB/files

📌 Không trộn files giữa các site.


5.3. File cấu hình từng site

  • sites/siteA/settings.php

  • sites/siteB/settings.php

📌 Chứa:

  • DB credential

  • Hash salt

  • Trusted host

  • Path đặc thù


6. Backup cấu hình Drupal cho multisite

6.1. Configuration Management

Có 2 mô hình phổ biến:

a) Mỗi site một config riêng

  • config/siteA/

  • config/siteB/

b) Một config chung (ít dùng)

  • Dễ xung đột

  • Khó restore chọn lọc

📌 Khuyến nghị: mỗi site một config export riêng.


7. Backup Composer và dependency

  • composer.json

  • composer.lock

📌 Dùng chung cho toàn multisite.


8. Backup multisite theo từng lớp

8.1. Backup hằng ngày

  • Database từng site

  • Files từng site

8.2. Backup định kỳ

  • Codebase

  • Config export

  • Composer files

8.3. Off-site

  • Database

  • Files

  • Config


9. Restore Drupal multisite đúng cách

9.1. Restore toàn bộ hệ thống

  1. Restore codebase

  2. Restore sites.php

  3. Restore từng site:

    • DB

    • files

    • settings.php

  4. Import config

  5. Clear cache

  6. Test từng domain


9.2. Restore một site đơn lẻ (rất quan trọng)

Một chiến lược backup đúng phải cho phép:

  • Restore site A

  • Không ảnh hưởng site B, C

📌 Nếu không làm được điều này → backup chưa đạt yêu cầu.


10. Sai lầm phổ biến khi backup Drupal multisite

  • Dump chung toàn bộ database

  • Gộp files của nhiều site

  • Không ghi rõ mapping site ↔ DB

  • Restore nhầm site

  • Không test restore từng site


11. Checklist backup Drupal multisite

BẮT BUỘC

  • Database từng site

  • Files từng site

  • settings.php từng site

  • sites.php

RẤT NÊN

  • Config export từng site

  • Composer files

  • Custom module/theme


12. Liên hệ với hệ thống thực tế

Trong hệ thống:

  • Nhiều website theo phòng ban

  • Nhiều domain con

  • Cùng một hạ tầng

Drupal multisite giúp quản lý hiệu quả, nhưng:

Backup sai = sự cố hàng loạt.


 

Drupal multisite mạnh vì dùng chung,
nhưng backup phải luôn tách biệt.

Một chiến lược backup multisite đúng:

  • Phân tách rõ ràng

  • Restore được từng site

  • Không lan truyền lỗi