Sao lưu và phục hồi dữ liệu trong MariaDB Server 10.4.x

30/12/2020

Sao lưu và khôi phục dữ liệu là vấn đề rất quan trọng khi quản trị cơ sở dữ liệu (CSDL), đảm bảo cho dữ liệu không bị mất mát và nếu có sự cố xảy ra thì có thể khôi phục lại trạng thái của CSDL trước khi xảy ra sự cố. Bài viết này hướng dẫn bạn sao lưu và phục hồi cơ sở dữ liệu MariaDB trên máy chủ CentOS 7.

Mục lục

1. Mô hình

2. Chuẩn bị

3. Backup – Sao lưu dữ liệu

4. Sử dụng SCP để chuyển file/folder giữa các hệ thống

5. Khôi phục dữ liệu được backup qua SSH

1. Mô hình

2. Chuẩn bị

  • 2 máy ảo CentOS 7 cài MariaDB 10.4.x, có kết nối Internet.
  • Tài khoản có thể đăng nhập vào hệ thống và có quyền sudo. Hướng dẫn dưới đây sử dụng tài khoản root.
  • Yêu cầu tối thiểu đối với các thông số trên Server:

3. Backup – Sao lưu dữ liệu

SSH vào MariaDB Server backup bằng root user

ssh [email protected]

Cú pháp:

mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql

username – tên người dùng có quyền sao lưu cơ sở dữ liệu
databasename – tên cơ sở dữ liệu cần sao lưu
filename – tên của bản sao dữ liệu
-$(date +%F) mốc thời gian sao lưu dữ liệu

Ví dụ 1: Tạo bản sao lưu của toàn bộ hệ thống quản lý cơ sở dữ liệu

mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p 

Ví dụ 2: Sao lưu một sơ sở dữ liệu cụ thể. Thay test bằng tên cơ sở dữ liệu bạn muốn sao lưu.

mysqldump -u root -p test --single-transaction --quick --lock-tables=false > test-backup-$(date +%F).sql

Ví dụ 3: Sao lưu một bảng duy nhất từ một cơ sở dữ liệu. Thay test bằng tên cơ sở dữ liệu chứa bảng, thay sinhvien bằng tên bảng bạn muốn sao lưu.

mysqldump -u root -p --single-transaction --quick --lock-tables=false test sinhvien > test-sinhvien-$(date +%F).sql

Phân tích các tùy chọn lệnh được sử dụng ở trên:

--single-transaction – đưa ra câu lệnh BEGIN SQL trước khi vào máy chủ
--quick – Đọc các bảng lớn theo cách không yêu cầu có đủ RAM để phù hợp với toàn bộ bảng trong bộ nhớ.
--lock-tables=false – Không khóa bảng cho phiên sao lưu.

4. Sử dụng SCP để chuyển file/folder giữa các hệ thống

SCP là viết tắt của Secure Copy là một ứng dụng sử dụng giao thức SSH thường dùng để sao chép dữ liệu từ máy linux này sang máy linux khác.

Cài đặt SCP trên Centos 7(Thực hiện trên cả 2 server)

Thường thì SCP được cài đặt sẵn trên linux, nếu chưa có sử dụng lệnh dưới để cài:

yum install scp -y
Lệnh cơ bản
  • Cú pháp:
scp source_file username@destination_host:/destination_folder

Ví dụ 1: Trên server backup chuyển file test-backup-2019-08-10.sql đến server restore

scp test-backup-2019-08-10.sql [email protected]:/root/testscp

Kiểm tra trên server restore đã nhận được file backup chưa

ls -lah

Output:

-rw-r--r--.  1 root root 2.1K Aug  3 03:32 testscp

Ví dụ 2: Chuyển nhiều file cùng lúc:

Trên server restore, tạo 1 folder chứa các file backup được chuyển đến

 mkdir test 

Trên server backup, thực hiện sao chép 2 file test-backup-2019-08-10.sqltest-sinhvien-2019-08-10.sql sang folder test vừa tạo trên server restore:

scp test-backup-2019-08-10.sql test-sinhvien-2019-08-10.sql  [email protected]:/root/test

Kiểm tra server restore đã nhận được file backup chưa

ls -lah

Output:

drwxr-xr-x.  3 root root  113 Aug  3 02:34 test
  • Chuyển cả một thư mục, sử dụng tham số -r
scp -r /var/lib [email protected]:/root/test
  • Từ server backup lấy dữ liệu trên server restore về:
 scp user@hostname:/dir_backup [dir_save] 

Ví dụ: Lấy file /root/test/test-backup-2019-08-10.sql trên server restore về và lưu lại trong file /var/testrestore

scp [email protected]:/root/test/test-backup-2019-08-10.sql /var/testrestore 

5. Khôi phục dữ liệu được backup qua SSH

Câu lệnh:

mysql -u user -p -h host database_name < backupfile.sql

user – tên tài khoản bạn dùng để khôi phục dữ liệu
host – phần hostname của tài khoản(%, localhost, IP)
database_name – tên cơ cở dữ liệu bạn muốn khôi phục vào
backupfile.sql – file dữ liệu đã sao lưu bạn dùng để khôi phục.

Ví dụ: Trên server restore khôi phục CSDL có trong test-backup-2019-08-10.sql vào CSDL test

mysql -u root -p -h localhost test < /root/test/test-backup-2019-08-10.sql

hoặc

mysql -u root -p
create database test;
source /root/test/test-backup-2019-08-10.sql;

Tham khảo các bài viết khác

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Jitsi [Part 2] – Hướng dẫn cài đặt Jitsi Meet trên Ubuntu 18.04 LTS

Jitsi hiện đang là một trong số những công cụ hội nghị truyền hình mã nguồn mở được sử...
30/12/2020

[Apache] Cấu hình Basic Authentication

Basic Authentication là kiểu xác thực cơ bản nhất của một Web Server Apache Mô hình Các bước...
30/12/2020

Hướng dẫn cài đặt LEMP stack trên Ubuntu 20.04 LTS

LEMP là một nhóm các phần mềm có thể dùng để phục vụ các trang web động và các ứng dụng...
30/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

SỰ KHÁC BIỆT GIỮA RESIDENTIAL PROXY VÀ PROXY DATACENTER
17/02/2024

Mua Proxy v6 US Private chạy PRE, Face, Insta, Gmail
07/01/2024

Mua shadowsocks và hướng dẫn sữ dụng trên window
05/01/2024

Tại sao Proxy Socks lại được ưa chuộng hơn Proxy HTTP?
04/01/2024

Mua thuê proxy v4 nuôi zalo chất lượng cao, kinh nghiệm tránh quét tài khoản zalo
02/01/2024