Sao lưu và khôi phục cơ sở dữ liệu MySQL cho Windows
Môi trường xác nhận hoạt động
- MySQL
-
- Phiên bản cộng đồng MySQL 8.0
- Windows
-
- Cửa sổ 11
Môi trường yêu cầu
- MySQL
-
- MySQL 8.0
- Windows
-
- Cửa sổ 11
- Cửa sổ 10
- Máy chủ Windows
-
- Máy chủ Windows 2022
- Máy chủ Windows 2019
- Máy chủ Windows 2016
- Máy chủ Windows 2012 R2
Điều kiện tiên quyết
- Cơ sở dữ liệu MySQL phải được cài đặt
- Cơ sở dữ liệu cần sao lưu đã tồn tại
- Định cấu hình các biến môi trường và cho phép bạn chạy MySQL từ dấu nhắc lệnh
Giới thiệu về các loại sao lưu
Tôi sẽ không đi vào chi tiết ở đây, nhưng MySQL có các loại sao lưu sau:
Lệnh sao lưu | Loại dữ liệu sao lưu | Nhận xét |
---|---|---|
mysqldump | Sao lưu logic | Một phương pháp sao lưu cũ. GUI cũng sử dụng điều này |
máy bơm mysql | Sao lưu logic | Phiên bản cải tiến của mysqldump |
Tiện ích kết xuất phiên bản MySQL Shell và Tiện ích tải kết xuất | Sao lưu logic | Là một bản sao lưu hợp lý, nó là mới nhất vào lúc này |
Percona XtraBackup | Sao lưu vật lý | Các sản phẩm của bên thứ ba cho phép sao lưu vật lý |
PLUGIN SAO CHÉP | Sao lưu vật lý | Sao lưu vật lý chính thức của MySQL. Tuy nhiên, cần có thêm plugin |
Sao lưu cơ sở dữ liệu bằng GUI (MySQL Workbench)
Nếu bạn muốn hoạt động an toàn trong GUI mà không cần sử dụng các lệnh, bạn có thể thực hiện sao lưu trong MySQL Workbench. Loại sao lưu được thực hiện trong MySQL Workbench là "mysqldump".
Khởi chạy MySQL Workbench.
Chọn kết nối với cơ sở dữ liệu bạn muốn sao lưu.
Với cơ sở dữ liệu cần sao lưu, hãy chọn tab Quản trị từ Bộ điều hướng ở bên trái và chọn Xuất dữ liệu.
Mô hình Xuất dữ liệu mở ra. Màn hình khá lớn, vì vậy hãy mở rộng cửa sổ cho đến khi bạn thấy nút "Bắt đầu xuất" ở góc dưới bên phải.
Đầu tiên, chọn cơ sở dữ liệu bạn muốn sao lưu. Bạn cũng có thể chọn nhiều hơn.
Trong "Đối tượng để xuất", bạn có thể chọn sao lưu các thủ tục, trình kích hoạt, v.v. hay không. Mục này là tùy chọn.
Trong "Tùy chọn xuất", bạn có thể chọn từ hai tùy chọn sau:
Mô tả các loại | |
---|---|
Xuất sang thư mục dự án kết xuất | Xuất ra dưới dạng bảng hoặc từng thủ tục file trong một thư mục nhất định. |
Xuất sang tệp khép kín | Nhúng mọi thứ vào một tệp duy nhất và xuất ra nó. |
Không quan trọng bạn xuất ra cái nào. Nếu bạn chọn ở trên, thật dễ dàng vì bạn có thể dễ dàng xóa nó nếu bạn chỉ muốn khôi phục một bảng cụ thể. Các lựa chọn sau đây được xuất ra một tệp duy nhất, giúp di chuyển và quản lý tệp như một đơn vị cơ sở dữ liệu dễ dàng hơn. Lần này tôi đã chọn những điều sau đây.
Sau khi định cấu hình, hãy nhấp vào Bắt đầu xuất ở dưới cùng bên phải để bắt đầu xuất.
Quá trình xuất bắt đầu và hoàn tất.
Nếu bạn xuất ra trong một tệp duy nhất, nó sẽ trông như thế này:
Nếu bạn xuất sang một thư mục, nó sẽ trông như thế này:
Khôi phục cơ sở dữ liệu bằng GUI (MySQL Workbench)
Mở MySQL Workbench, chọn kết nối của bạn, chọn tab Quản trị từ Bộ điều hướng ở bên trái và chọn Nhập/Khôi phục dữ liệu. Như nó nói "Nhập / Khôi phục", bạn có thể tạo cơ sở dữ liệu mới từ tệp đã xuất hoặc ghi đè lên cơ sở dữ liệu gốc.
Mở rộng cửa sổ cho đến khi bạn thấy nút "Bắt đầu nhập" ở góc dưới cùng bên phải.
Vui lòng chọn "Tùy chọn nhập" theo định dạng tệp đã xuất. Vì lần này tôi đã xuất nó dưới dạng một tệp duy nhất, tôi đã chọn "Nhập từ tệp khép kín" bên dưới và chỉ định tệp đã xuất.
Chọn lược đồ (cơ sở dữ liệu) sẽ được khôi phục. Bạn có thể khôi phục vào cơ sở dữ liệu hiện có hoặc bạn có thể khôi phục nó dưới dạng cơ sở dữ liệu mới từ nút "mới" ở bên phải.
Sau khi chỉ định, hãy nhấp vào nút "Bắt đầu nhập" ở góc dưới bên phải để bắt đầu khôi phục.
Đảm bảo dữ liệu của bạn được khôi phục khi quá trình khôi phục hoàn tất.
Tạo tài khoản sao lưu cơ sở dữ liệu thông qua lệnh
Không có vấn đề gì nếu bạn muốn chạy một lệnh để sao lưu một lần, nhưng ví dụ, nếu bạn chuẩn bị trước một lệnh dưới dạng tệp và chạy nó, bạn cần viết mật khẩu dưới dạng văn bản thuần túy, vì vậy sẽ an toàn hơn nếu bạn tạo một tài khoản riêng để chạy bản sao lưu.
Các quyền cần thiết để sao lưu như sau, nhưng có thể tăng hoặc giảm tùy thuộc vào thông tin cần thiết.
- SỰ KIỆN
- BÀN KHÓA
- LỰA
- HIỂN THỊ VIEW
Nếu bạn tạo nó bằng một lệnh, nó sẽ trông như thế này: Chạy nó bằng công cụ dòng lệnh MySQL.
create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;
ví dụ
create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;
Quyền thư mục cho đích sao lưu
Quyền đối với thư mục lưu trữ tệp sao lưu phải được đặt thành cùng quyền với quyền thực thi lệnh. Nếu bạn muốn chạy các lệnh với quyền Quản trị viên, bạn không cần đặt bất kỳ quyền bổ sung nào cho thư mục.
Sao lưu cơ sở dữ liệu bằng lệnh (mysqldump)
Có một số bản sao lưu lệnh, nhưng lần này tôi sẽ sao lưu bằng "mysqldump" cũ và ổn định.
Nhấp chuột phải vào menu Bắt đầu và khởi chạy Terminal (Command Prompt). Xin lưu ý rằng nó không phải là "MySQL 8.0 Command Line Client".
Bạn có thể sao lưu nó bằng lệnh sau:
mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"
ví dụ
mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"
--default-character-set=utf8
sẽ là mã ký tự giống như khi được sao lưu trong GUI. Điều này cũng cho phép bạn nhập chúng vào GUI.- Không đặt khoảng trắng giữa trường
-p
mật khẩu và mật khẩu.- Nếu bạn cũng muốn xuất thông tin không gian bảng,
--no-tablespaces
vui lòng bỏ chọn . Trong trường hợp đó, quyền củaPROCESS
người dùng thực thi là bắt buộc.
Một tệp sao lưu sẽ được tạo ở vị trí được chỉ định.
Khôi phục cơ sở dữ liệu bằng lệnh (mysqldump)
Các tệp được sao lưu bằng mysqldump ở định dạng có thể chạy trong SQL, vì vậy bạn chỉ cần chạy SQL đích. Tôi nghĩ rằng việc khôi phục thường được thực hiện thủ công, vì vậy bạn có thể chạy nó trên tài khoản gốc.
Nếu bạn muốn chạy nó từ một lệnh, hãy chạy nó tại dấu nhắc lệnh thay vì PowerShell. Điều này là <
do PowerShell không cho phép các ký hiệu.
Chạy lệnh sau:
mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>
ví dụ
mysql -u root -ppassword test_database < C:\Temporary\Backup.sql
Sao lưu cơ sở dữ liệu tự động
Đối với Windows, người ta thường sử dụng bộ lập lịch tác vụ. Bắt đầu bằng cách tạo một tệp hàng loạt. Tạo tệp dơi, nhập nội dung khi chúng được sao lưu bằng lệnh và lưu chúng. Lưu mã ký tự bằng Shift-JIS. Vị trí và tên tệp của tệp lô có thể tùy ý.
Đăng ký với bộ lập lịch tác vụ. Nhấp chuột phải vào menu Bắt đầu và chọn "Quản lý máy tính".
Từ menu bên trái, chọn Quản lý máy tính > Công cụ hệ thống > Bộ lập lịch tác vụ > Thư viện Bộ lập lịch tác vụ. Chọn Tạo tác vụ từ menu bên phải.
Đặt tab Chung. "Tên" sẽ được hiển thị trong danh sách nhiệm vụ, vì vậy hãy đặt một cái tên dễ hiểu. Trong các tùy chọn bảo mật, hãy chọn "Chạy cho dù người dùng có đăng nhập hay không".
Tab Triggers đặt thời điểm sao lưu sẽ được thực hiện. Cài đặt này phải được đặt theo hoạt động của bạn.
Trong tab Operations (Hoạt động), hãy đặt tệp hàng loạt bạn vừa tạo để khởi chạy.
Khi bạn đã đặt từng người trong số chúng, hãy xác nhận chúng bằng đồng ý cái nút.
Nhập mật khẩu của bạn để đăng ký chạy trên tài khoản được chỉ định.
Bây giờ hãy kiểm tra xem bản sao lưu có chạy vào thời điểm được chỉ định hay không.