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 root@192.168.136.133

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 root@192.168.136.132:/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  root@192.168.136.132:/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 root@192.168.136.132:/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 root@192.168.136.132:/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

Change Hostname Permanently on CentOS7

The hostname of a system can be used to make it easier to identify the host and not rely on an IP address which is difficult...
28/12/2020

[MariaDB] Các thao tác cơ bản với MySQL WorkBench

MySQL Workbench là một công cụ giúp ta thao tác dễ dàng, trực quan hơn với database. Thay vì phải...
30/12/2020

Hướng dẫn tạo Dashboard theo dõi thời hạn chứng chỉ SSL website với TIG-stack

Đối với dịch vụ web, việc cài đặt SSL là vô cùng cần thiết. Tuy nhiên, chứng chỉ SSL có thời...
30/12/2020
Bài Viết

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

mua Proxy riêng ở đâu, và nó đem lại lợi ích gì cho người sử dụng
22/11/2022

Hướng dẫn sử dụng Proxy Helper Fakeip khi thuê proxy
21/11/2022

PROXY NUÔI TÀI KHOẢN FACEBOOK – KINH NGHIỆM FAKE IP – THUÊ PROXY GIÁ RẺ
14/11/2022

Mua Proxy Nuôi Zalo Giá Rẻ Tại Onet.com.vn
14/11/2022

BẢNG GIÁ MUA PROXY VIỆT NAM và PROXY US Onet.com.vn
14/11/2022