Hướng Dẫn Quản Lý & Di Chuyển Tệp Cơ Sở Dữ Liệu trên ServBay
ServBay là môi trường phát triển web cục bộ mạnh mẽ, tích hợp nhiều hệ quản trị cơ sở dữ liệu phổ biến với việc quản lý tệp dữ liệu nhất quán. Việc hiểu rõ cấu trúc lưu trữ tệp cơ sở dữ liệu mặc định của ServBay rất quan trọng cho các nhà phát triển khi cần sao lưu, phục hồi hoặc di chuyển dữ liệu.
Bài viết này sẽ trình bày chi tiết về cấu trúc lưu trữ tệp cơ sở dữ liệu mặc định trên ServBay và hướng dẫn sử dụng công cụ dòng lệnh chuẩn để quản lý, di chuyển dữ liệu giữa các môi trường khác nhau.
TIP
ServBay cung cấp tính năng sao lưu và phục hồi dữ liệu; bạn có thể tự động hoặc thủ công sao lưu các cơ sở dữ liệu MySQL, MariaDB, PostgreSQL. Tham khảo thêm tại Sao lưu & Phục hồi để biết thêm chi tiết.
Cấu Trúc Lưu Trữ Tệp Cơ Sở Dữ Liệu Mặc Định của ServBay
Để dễ dàng quản lý và tách biệt dữ liệu giữa các phiên bản cơ sở dữ liệu khác nhau, ServBay lưu trữ tất cả các tệp dữ liệu cơ sở dữ liệu trong thư mục /Applications/ServBay/db
. Tại đây, dữ liệu được phân loại theo từng loại hệ quản trị, và bên trong là các thư mục theo số phiên bản chính (major version).
Ví dụ cấu trúc thư mục điển hình dưới /Applications/ServBay/db
như sau:
/Applications/ServBay/db
├── mysql
│ ├── 8.0
│ └── 8.1
├── mariadb
│ ├── 10.10
│ ├── 10.11
│ ├── 10.5
│ ├── 10.6
│ ├── 10.7
│ ├── 10.8
│ ├── 10.9
│ ├── 11.0
│ ├── 11.1
│ ├── 11.2
│ └── 11.3
├── postgresql
│ ├── 10
│ ├── 11
│ ├── 12
│ ├── 13
│ ├── 14
│ ├── 15
│ └── 16
└── redis
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Giải Thích Cấu Trúc
/Applications/ServBay/db
: Thư mục gốc lưu tất cả tệp cơ sở dữ liệu của ServBay.mysql
: Lưu tệp dữ liệu của MySQL, bên trong chia theo các thư mục phiên bản chính (8.0
,8.1
,...).mariadb
: Chứa tệp dữ liệu của MariaDB, cũng phân chia theo phiên bản chính (10.11
,11.3
,...).postgresql
: Lưu dữ liệu của PostgreSQL, chia theo phiên bản (15
,16
,...).redis
: Thư mục chứa file lưu trữ dữ liệu lâu dài của Redis, thường là filedump.rdb
.
Với cấu trúc này, bạn có thể cài đặt và chạy đồng thời nhiều phiên bản chính của cùng một hệ quản trị cơ sở dữ liệu trên ServBay mà dữ liệu của chúng không bị lẫn lộn hay xung đột.
Quản Lý Tệp Cơ Sở Dữ Liệu
Trong quá trình phát triển, việc sao lưu, phục hồi hoặc di chuyển dữ liệu là thao tác cần thiết. Dưới đây là hướng dẫn sử dụng các công cụ dòng lệnh chuẩn để thực hiện các thao tác này. Lưu ý: bạn nên thao tác trong môi trường Terminal của ServBay hoặc đảm bảo biến môi trường đã khai báo đúng, để có thể gọi trực tiếp các công cụ tương ứng.
Sao Lưu Cơ Sở Dữ Liệu
Sao lưu thường xuyên là bước quan trọng giúp bảo vệ dữ liệu khỏi rủi ro. Sau đây là hướng dẫn thực hiện việc sao lưu cho từng hệ quản trị.
Sao lưu MySQL
Công cụ mysqldump
là lựa chọn tiêu chuẩn để sao lưu dữ liệu MySQL.
# Chuyển sang terminal của ServBay hoặc đảm bảo PATH đã bao gồm thư mục bin của ServBay
# Ví dụ: export PATH="/Applications/ServBay/bin:$PATH"
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
2
3
4
your_username
: Thay bằng tên người dùng cơ sở dữ liệu của bạn.your_database
: Thay bằng tên cơ sở dữ liệu cần sao lưu./Applications/ServBay/backup/your_database.sql
: Đường dẫn và tên tệp backup; nên lưu bên ngoài thư mục ServBay, ví dụ ở thư mục HOME cá nhân.
Sao lưu MariaDB
Sao lưu MariaDB được thực hiện giống như MySQL, cũng dùng mysqldump
.
# Chuyển sang terminal của ServBay hoặc đảm bảo PATH đã đúng
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
2
3
- Tham số như trên.
Sao lưu PostgreSQL
Dùng công cụ pg_dump
để sao lưu dữ liệu PostgreSQL. Lưu ý, trên ServBay, PostgreSQL thường sử dụng kết nối bằng Unix Domain Socket tại /Applications/ServBay/tmp
, nên cần chỉ định đường dẫn socket với -h /Applications/ServBay/tmp
.
# Chuyển sang terminal của ServBay hoặc đảm bảo PATH đã đúng
pg_dump -h /Applications/ServBay/tmp -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/your_database.dump
2
3
-h /Applications/ServBay/tmp
: Đường dẫn file socket của Postgres server.-U your_username
: Thay bằng tên đăng nhập vào cơ sở dữ liệu.-d your_database
: Tên cơ sở dữ liệu cần sao lưu.-F c
: Định dạng lưu trữ custom (khuyến nghị).-b
: Bao gồm các Large Object (blob).-v
: Hiển thị chi tiết quá trình.-f /Applications/ServBay/backup/your_database.dump
: Đường dẫn và tên file backup.
Sao lưu Redis
Sao lưu với Redis thường bằng cách copy file dump.rdb
.
# Chuyển sang terminal của ServBay
# Đảm bảo Redis đang chạy hoặc đã cấu hình tự động lưu (BGSAVE)
cp /Applications/ServBay/db/redis/dump.rdb /Applications/ServBay/backup/dump.rdb
2
3
4
/Applications/ServBay/db/redis/dump.rdb
: Đường dẫn file RDB của Redis./Applications/ServBay/backup/dump.rdb
: Nơi lưu trữ tệp backup mong muốn.
Phục Hồi Cơ Sở Dữ Liệu
Khi mất dữ liệu hoặc cần quay lại trạng thái trước đó, có thể phục hồi cơ sở dữ liệu từ file backup.
Phục hồi MySQL
Dùng công cụ mysql
CLI để phục hồi MySQL từ file backup.
# Chuyển sang terminal của ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
2
3
your_username
: Tên đăng nhập cơ sở dữ liệu.your_database
: Tên cơ sở dữ liệu cần phục hồi vào, cần tạo sẵn trước./Applications/ServBay/backup/your_database.sql
: File backup dùng để phục hồi.
Phục hồi MariaDB
Tương tự MySQL, dùng mysql
tool để phục hồi.
# Chuyển sang terminal của ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
2
3
- Tham số như trên.
Phục hồi PostgreSQL
Dùng công cụ pg_restore
để phục hồi từ file backup dạng custom. Nhớ chỉ định đường dẫn socket bằng -h /Applications/ServBay/tmp
.
# Chuyển sang terminal của ServBay
pg_restore -h /Applications/ServBay/tmp -U your_username -d your_database -v /Applications/ServBay/backup/your_database.dump
2
3
-h /Applications/ServBay/tmp
: Đường dẫn file socket của Postgres.-U your_username
: Tên đăng nhập Postgres.-d your_database
: Tên cơ sở dữ liệu cần phục hồi – cần tạo sẵn trước.-v
: Hiển thị chi tiết./Applications/ServBay/backup/your_database.dump
: File backup cần phục hồi.
Phục hồi Redis
Phục hồi Redis là sao chép file dump.rdb
về lại thư mục dữ liệu. Lưu ý: Phải đảm bảo dịch vụ Redis đã dừng trước đó!
# Chuyển sang terminal của ServBay
# Dừng dịch vụ Redis trên ServBay
# Sao chép file backup
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# Khởi động lại dịch vụ Redis trên ServBay
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: File backup gốc./Applications/ServBay/db/redis/dump.rdb
: File dữ liệu mặc định của Redis.
Di Chuyển Cơ Sở Dữ Liệu
Di chuyển cơ sở dữ liệu là quá trình chuyển dữ liệu từ một môi trường sang môi trường khác (có thể là giữa hai ServBay hoặc từ/dến máy chủ khác,...), thường gồm xuất dữ liệu ở nguồn và nhập vào ở đích.
Di chuyển MySQL
Di chuyển MySQL là nhu cầu phổ biến trong quá trình phát triển.
Xuất dữ liệu tại nguồn:
bash# Trong terminal nguồn mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: Người dùng cơ sở dữ liệu ở nguồn.your_database
: Tên cơ sở dữ liệu cần di chuyển.your_database.sql
: Tên file xuất.
Chuyển file SQL sang môi trường đích: Dùng
scp
hoặc công cụ truyền file đưa file SQL tới vị trí truy cập được ở ServBay đích (ví dụ/Applications/ServBay/backup/
).Tạo database tại ServBay đích:
bash# Tại terminal ServBay đích mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: Người dùng cơ sở dữ liệu tại ServBay đích.your_database
: Tên database cần tạo (nên giống với tên nguồn).
Nhập dữ liệu vào ServBay đích:
bash# Tại terminal ServBay đích mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: Đường dẫn thực tế của file SQL trên máy đích.
Di chuyển MariaDB
Di chuyển MariaDB thực hiện giống hệt MySQL nhờ dùng chung chuẩn giao tiếp và định dạng tệp.
- Xuất database ở nguồn:bash
# Tại terminal nguồn mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - Chuyển file SQL tới máy đích.
- Tạo database ở ServBay đích:bash
# Tại terminal ServBay đích mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - Nhập dữ liệu vào ServBay đích:bash
# Tại terminal ServBay đích mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2
Di chuyển PostgreSQL
Di chuyển PostgreSQL dùng pg_dump
và pg_restore
. Nhớ lưu ý về đường dẫn socket.
Xuất dữ liệu tại nguồn:
bash# Tại terminal nguồn # Nếu nguồn cũng là ServBay pg_dump -h /Applications/ServBay/tmp -U your_source_username -d your_database -F c -b -v -f your_database.dump # Nếu môi trường khác, điều chỉnh tham số phù hợp cấu hình của họ
1
2
3
4your_source_username
: Người dùng nguồn.your_database
: Tên cơ sở dữ liệu cần di chuyển.your_database.dump
: Tên file backup xuất ra.
Chuyển file backup tới ServBay đích: Dùng
scp
hoặc công cụ truyền file đưa file vào môi trường đích.Tạo database mới trên ServBay đích:
bash# Tại terminal ServBay đích # Kết nối tới database postgres để tạo mới psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: Người dùng ở ServBay đích.your_database
: Tên database muốn tạo mới.
Nhập dữ liệu vào database vừa tạo:
bash# Tại terminal ServBay đích pg_restore -h /Applications/ServBay/tmp -U your_target_username -d your_database -v /path/to/your_database.dump
1
2/path/to/your_database.dump
: Đường dẫn file backup trên máy đích.
Di chuyển Redis
Việc di chuyển Redis thường là sao chép trực tiếp file dump.rdb
.
Lấy file
dump.rdb
ở nguồn:bash# Tại terminal nguồn # Đảm bảo đã dừng Redis hoặc đợi BGSAVE xong cp /path/to/source/redis/dump.rdb ./dump.rdb
1
2
3Chuyển file sang thư mục dữ liệu Redis đích:
bash# Tại máy nguồn hoặc server trung gian scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
: Địa chỉ/máy chủ cài ServBay đích.- Lưu ý: Trước khi ghi đè file này bên phía ServBay đích, phải đảm bảo đã dừng dịch vụ Redis.
Khởi động lại Redis ở ServBay đích: Khi khởi động lại, Redis sẽ tự động nạp file
dump.rdb
mới.
Lưu Ý Quan Trọng
- Phải dừng dịch vụ: Trước khi copy hoặc di chuyển tệp dữ liệu (đặc biệt là các thư mục dữ liệu của MySQL/MariaDB/PostgreSQL), bạn bắt buộc phải dừng dịch vụ thông qua GUI hoặc dòng lệnh của ServBay. Sao chép tệp khi dịch vụ đang chạy có thể khiến dữ liệu không đồng nhất, thậm chí bị hỏng. Với Redis cũng phải dừng trước khi phục hồi file RDB.
- Quyền truy cập: Đảm bảo người dùng thực hiện sao chép, di chuyển, nhập dữ liệu có đủ quyền trên thư mục/tệp liên quan.
- Đường dẫn file: Kiểm tra kỹ đường dẫn cài đặt ServBay (thường là
/Applications/ServBay
) và các thư mục dữ liệu, kể cả khi bạn dùng nhiều phiên bản cơ sở dữ liệu. - Người dùng & quyền hạn: Sau khi di chuyển dữ liệu, kiểm tra lại tài khoản, quyền hạn và file cấu hình database cho phù hợp với môi trường mới.
- Sao lưu tích hợp của ServBay: ServBay hỗ trợ chức năng sao lưu, phục hồi qua giao diện đồ họa thân thiện với người dùng, có thể backup settings, mã nguồn website, database và SSL, phù hợp làm lựa chọn bổ sung hoặc thay thế việc quản lý tệp thủ công.
Tổng Kết
ServBay với cấu trúc lưu trữ hợp lý giúp bạn dễ dàng quản lý, backup các tệp dữ liệu cơ sở dữ liệu. Bài viết đã trình bày kỹ về vị trí lưu trữ dữ liệu của MySQL, MariaDB, PostgreSQL, Redis trên ServBay, cùng với hướng dẫn thực tế cho việc backup, phục hồi và di chuyển bằng dòng lệnh chuẩn. Nắm vững các thao tác này sẽ giúp bạn chủ động quản lý dữ liệu môi trường phát triển, nâng cao an toàn và khả năng chuyển đổi dự án giữa các môi trường khác nhau. Kết hợp với các tính năng tiện ích vốn có của ServBay (như backup tự động), bạn sẽ tiết kiệm thời gian, tăng hiệu quả phát triển và bảo vệ dữ liệu luôn an toàn.