Thường xuyên sao lưu cơ sở dữ liệu là một trong những bước quan trọng sau khi đưa dự án vào hoạt động. Tần suất sao lưu có thể là một lần trong một ngày hoặc một tuần. Việc sao lưu hàng ngày được ưu tiên cho các ứng dụng mà việc thay đổi cơ sở dữ liệu thường xuyên hơn. Trong trường hợp cơ sở dữ liệu có tính khả dụng cao, việc thiết lập cụm thích hợp phải được xem xét thay vì mở rộng quy mô theo chiều dọc. Hướng dẫn này giải thích cách sử dụng
Ghi chú :Hướng dẫn này chỉ bao gồm các tùy chọn phổ biến nhất được sử dụng với
Sao lưu cục bộ
Sao lưu - Phần này giải thích việc sao lưu cục bộ trong một tệp bằng cách xuất một hoặc nhiều cơ sở dữ liệu.
Quyền -
- CHỌN - để kết xuất các bảng
- HIỂN THỊ CHẾ ĐỘ XEM - để kết xuất lượt xem
- TRIGGER - để kết xuất các trình kích hoạt
- BẢNG KHÓA - trong trường hợp - tùy chọn giao dịch đơn lẻ không được sử dụng
Lệnh - Dưới đây được đề cập là việc sử dụng
# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>
Các ví dụ để sử dụng lệnh thông thường như được đề cập bên dưới. Các lệnh mẫu này đang sử dụng người dùng doanh nghiệp để sao lưu cơ sở dữ liệu doanh nghiệp . Không cần chỉ định người dùng và mật khẩu trong trường hợp tài khoản người dùng đang sử dụng auth_socket thuật toán đăng nhập vào máy chủ MySQL. Người sử dụng hệ thống có thể truy cập trực tiếp vào cơ sở dữ liệu. Bạn có thể tham khảo Cách sử dụng mật khẩu gốc với MySQL 5.7 và Cách cài đặt MySQL 8 trên Ubuntu để tìm hiểu thêm về các thuật toán mật khẩu.
Ghi chú :Không cần sử dụng tùy chọn -p, trong trường hợp không có mật khẩu nào được chỉ định cho người dùng.
Dưới đây được đề cập là các ví dụ để sao lưu một cơ sở dữ liệu duy nhất với tên người dùng, máy chủ lưu trữ và cổng. Mật khẩu không được cung cấp với các lệnh này cho mục đích bảo mật. Bạn có thể chỉ định mật khẩu cho
# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql
# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql
# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql
# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql
# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql
# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql
Dưới đây được đề cập là các ví dụ để sao lưu nhiều cơ sở dữ liệu với tên người dùng, máy chủ và cổng.
# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql
# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql
Dưới đây được đề cập là ví dụ để sao lưu tất cả cơ sở dữ liệu với tên người dùng, máy chủ và cổng.
# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql
# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql
Người dùng PowerShell trên Windows sẽ cần lệnh khác như được đề cập bên dưới.
# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>
# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql
Các lệnh nêu trên sẽ xuất cơ sở dữ liệu và bảng đã chọn đến vị trí tệp được chỉ định trong lệnh.
Sao lưu cơ sở dữ liệu
Phần này giải thích việc sao lưu cơ sở dữ liệu sang một cơ sở dữ liệu khác được sử dụng cho mục đích sao lưu bằng cách sử dụng Shell Pipes. Chúng tôi có thể xuất cơ sở dữ liệu sang tệp cục bộ và sau đó sử dụng tệp này để nhập sang cơ sở dữ liệu khác hoặc xuất trực tiếp sang cơ sở dữ liệu khác bằng cách sử dụng shell pipe.
Lệnh được đề cập dưới đây có thể được sử dụng để xuất cơ sở dữ liệu trực tiếp sang cơ sở dữ liệu khác. Ngoài ra, hãy đảm bảo rằng bạn có quyền truy cập vào cả hai máy chủ trước khi thực hiện lệnh.
# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup
# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise
Đây là cách chúng tôi có thể xuất hoặc sao lưu cơ sở dữ liệu.