Sao lưu nóng với Percona XtraBackup trên Ứng dụng WordPress One-Click

Mục lục

  • Giới thiệu
  • Điều kiện tiên quyết
  • Bước 1: Tạo người dùng hệ thống không root
  • Bước 2: Kiểm tra công cụ lưu trữ
  • Bước 3: Tạo người dùng cơ sở dữ liệu để sao lưu
  • Bước 4: Cài đặt Percona XtraBackup
  • Bước 5: Tạo thư mục lưu trữ sao lưu
  • Bước 6: Tạo bản sao lưu đầy đủ đầu tiên
  • Bước 7: Tạo các bản sao lưu gia tăng sau đây
  • Bước 8: Chuẩn bị các tệp sao lưu để khôi phục cơ sở dữ liệu
  • Bước 9: Khôi phục cơ sở dữ liệu
  • Các bước tiếp theo

Giới thiệu

Percona XtraBackup là một chương trình dựa trên MySQL miễn phí được sử dụng để tạo các bản sao lưu nóng. Nó cũng có nguồn mở. Với Percona XtraBackup, bạn có thể tạo các bản sao lưu nóng khi chạy cơ sở dữ liệu MySQL, MariaDB hoặc Percona Server mà không cần dừng dịch vụ cơ sở dữ liệu của bạn hoặc làm cho nó chỉ đọc. Đây là một tính năng quan trọng trong kinh doanh cho nhiều doanh nghiệp trực tuyến.

Đối với cơ sở dữ liệu sử dụng các công cụ lưu trữ InnoDB, XtraDB và HailDB, Percona XtraBackup có thể thực hiện sao lưu không chặn. Đối với cơ sở dữ liệu sử dụng các công cụ lưu trữ MyISAM, Hợp nhất và Lưu trữ, Percona XtraBackup cũng có thể thực hiện sao lưu bằng cách tạm dừng ghi ngắn vào cuối quy trình sao lưu.

Trong bài viết này, tôi sẽ chỉ cho bạn cách cài đặt và sử dụng Percona XtraBackup để thực hiện sao lưu nóng đầy đủ và gia tăng trên máy chủ Vultr dựa trên ứng dụng WordPress One-Click. Chúng tôi sẽ thực hiện sao lưu toàn bộ và hai bản sao lưu gia tăng, sau đó khôi phục cơ sở dữ liệu về trạng thái của mỗi ba bản sao lưu tương ứng.

Điều kiện tiên quyết

Tôi giả sử rằng bạn đã triển khai một phiên bản máy chủ WordPress Vultr One-Click từ đầu và đã đăng nhập bằng root, sử dụng SSH.

Bước 1: Tạo người dùng hệ thống không root

Vì mục đích bảo mật, một thực tiễn được đề xuất là tạo một tài khoản người dùng khác có quyền root, sau đó sử dụng nó để đăng nhập và thực hiện các hoạt động hàng ngày của bạn trên hệ thống. Bạn vẫn có thể thực thi gần như tất cả các lệnh superuser bằng sudolệnh.

1) Tạo người dùng mới. Thay thế sysuserbằng tên người dùng của riêng bạn.

useradd sysuser

2) Đặt mật khẩu cho người dùng mới của bạn. Thay thế sysuserbằng tên người dùng của riêng bạn.

passwd sysuser

3) Cấp quyền root cho người dùng mới của bạn.

visudo

Tìm đoạn văn dưới đây.

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

Thêm một hàng trực tiếp bên dưới đoạn này, thay thế sysuserbằng tên người dùng của riêng bạn.

sysuser     ALL=(ALL)     ALL

Lưu và đóng.

:wq

4) Chuyển sang tài khoản người dùng mới của bạn.

logout

Sau đó, sử dụng thông tin đăng nhập của người dùng mới để đăng nhập từ cửa sổ đầu cuối của bạn.

Bước 2: Kiểm tra công cụ lưu trữ

Theo mặc định, đăng nhập root MySQL được lưu trên VPS trong /root/.my.cnf. Hiển thị mật khẩu trong thiết bị đầu cuối của bạn với lệnh sau.

sudo cat /root/.my.cnf

Sử dụng thông tin đăng nhập được hiển thị trên màn hình để đăng nhập vào bảng điều khiển MySQL.

mysql -u root -p

Trong shell MySQL, chạy như sau.

SHOW DATABASES;

Tất cả các cơ sở dữ liệu MySQL sẽ được hiển thị trên màn hình. Cơ sở dữ liệu có tên like wp5273512là cơ sở dữ liệu WordPress mà chúng tôi muốn sao lưu. Trong lệnh sau, thay thế wp5273512bằng lệnh của riêng bạn:

USE wp5273512;

Kiểm tra công cụ lưu trữ cho mỗi bảng:

SHOW TABLE STATUS\G

Bạn sẽ thấy rằng tất cả các bảng trong cơ sở dữ liệu WordPress MySQL của bạn đang sử dụng công cụ lưu trữ InnoDB, công cụ hoàn hảo để thực hiện sao lưu nóng với Percona XtraBackup.

Đối với bất kỳ cơ sở dữ liệu MySQL nào khác sử dụng công cụ lưu trữ MyISAM, chúng tôi vẫn có thể sao lưu chúng bằng Percona XtraBackup bằng cách tạm dừng ghi.

Bước 3: Tạo người dùng cơ sở dữ liệu để sao lưu

Vẫn trong shell MySQL, sử dụng các lệnh sau để tạo người dùng cơ sở dữ liệu chuyên dụng để sao lưu. Hãy nhớ thay thế tên người dùng cơ sở dữ liệu xbuservà mật khẩu xbpasswdbằng tên riêng của bạn:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Các đặc quyền được cấp ở trên là cần thiết cho chức năng Percona XtraBackup đầy đủ. Bạn có thể loại bỏ một số trong số chúng để có ít chức năng hơn và bảo mật tốt hơn. Để biết thêm chi tiết, xem trang web chính thức của Percona XtraBackup .

Bước 4: Cài đặt Percona XtraBackup

Bạn có thể cài đặt Percona XtraBackup từ kho lưu trữ RPM của Percona khá dễ dàng:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

Bước 5: Tạo thư mục lưu trữ sao lưu

Đầu tiên, bạn cần thêm người dùng sysuservào mysqlnhóm. Thay thế sysuserbằng tên người dùng của riêng bạn.

sudo gpasswd -a sysuser mysql

Tạo một thư mục để lưu trữ bản sao lưu đầy đủ.

sudo mkdir -p /dbbackup/full/

Tạo một thư mục khác để lưu trữ các bản sao lưu gia tăng.

sudo mkdir -p /dbbackup/inc/

Thay đổi chủ sở hữu của các thư mục này thành người dùng sysuservà nhóm sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Đăng xuất để đưa những thay đổi này có hiệu lực.

logout

Sau đó, đăng nhập sysuserlại.

Bước 6: Tạo bản sao lưu đầy đủ đầu tiên

XtraBackup bao gồm chủ yếu chương trình XtraBackup và innobackupextập lệnh perl. Thông thường, bạn có thể sử dụng innobackupextập lệnh perl để thực hiện các quy trình vận hành khác nhau để thuận tiện.

Nhập lệnh sau để tạo bản sao lưu đầy đủ đầu tiên. Hãy nhớ thay thế tên người dùng cơ sở dữ liệu xbuser, mật khẩu người dùng cơ sở dữ liệu xbpasswdvà thư mục sao lưu đầy đủ /dbbackup/full/bằng tên riêng của bạn.

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

Với lệnh này được thực thi chính xác, bạn sẽ thấy thông báo xác nhận "innobackupex: hoàn thành OK!" ở dòng cuối cùng của đầu ra.

Tất cả các tệp mới được tạo của bản sao lưu đầy đủ này sẽ được lưu trữ trong một thư mục có dấu thời gian bên dưới /dbbackup/full/. Ví dụ , /dbbackup/full/2015-05-22_05-45-54.

Bước 7: Tạo các bản sao lưu gia tăng sau đây

Nhập lệnh sau để tạo bản sao lưu gia tăng đầu tiên. Thay thế các biến trong lệnh cho phù hợp.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

Một lần nữa, bạn sẽ thấy "innobackupex: hoàn thành OK!" ở cuối đầu ra khi lệnh thực thi thành công. Các tập tin sao lưu sẽ được lưu trữ trong một thư mục có dấu thời gian bên dưới /dbbackup/inc/.

Nhập lệnh sau để tạo bản sao lưu gia tăng thứ hai. Thay thế các biến trong lệnh cho phù hợp.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

Sau khi thành công, bạn sẽ thấy "innobackupex: hoàn thành OK!" lại nhắn tin. Kiểm tra /dbbackup/inc/thư mục một lần nữa để xem các tập tin sao lưu.

Bước 8: Chuẩn bị các tệp sao lưu để khôi phục cơ sở dữ liệu

Tất cả các tệp sao lưu cơ sở dữ liệu cần phải được chuẩn bị trước khi chúng có thể được sử dụng để khôi phục cơ sở dữ liệu.

Lưu ý : Trước khi bạn thực hiện các quy trình chuẩn bị và khôi phục, tốt nhất bạn nên giữ một bản sao của toàn bộ thư mục sao lưu (chẳng hạn như /dbbackup/) ở một nơi khác trong trường hợp có bất kỳ thiệt hại nào để sao lưu các tệp là do nhầm lẫn.

Trong mỗi thư mục sao lưu, có một tệp có tên xtrabackup_checkpointsloại sao lưu và số thứ tự nhật ký đầu và cuối ( from_lsnto_lsn). Bạn có thể sử dụng những con số đó để làm rõ chiến lược khôi phục cơ sở dữ liệu của bạn. Nhìn vào các ví dụ dưới đây.

Trong xtrabackup_checkpointstập tin sao lưu đầy đủ đầu tiên, tôi có:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

Trong xtrabackup_checkpointstệp sao lưu gia tăng đầu tiên, tôi có:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

Trong xtrabackup_checkpointstệp sao lưu gia tăng thứ hai, tôi có:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

Tóm lại, bạn nên giải quyết từng bản sao lưu với thứ tự tăng dần của lsn. Nếu chuỗi lsn không đầy đủ hoặc bị rối loạn, bạn có thể mất dữ liệu.

Lưu ý : Các lệnh sau liên quan đến ba thư mục, thay thế chúng bằng thư mục của riêng bạn.

Để khôi phục cơ sở dữ liệu về trạng thái sao lưu toàn bộ đầu tiên, bạn cần chuẩn bị các tệp sao lưu bằng lệnh sau:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Để khôi phục cơ sở dữ liệu về trạng thái sao lưu gia tăng đầu tiên, bạn cần chuẩn bị các tệp sao lưu với các lệnh sau:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Để khôi phục cơ sở dữ liệu về trạng thái sao lưu gia tăng thứ hai, bạn cần chuẩn bị các tệp sao lưu bằng các lệnh sau:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Ghi chú :

Đối với các bản sao lưu gia tăng, Bạn nên sử dụng --redo-onlytùy chọn trên tất cả trừ bản sao lưu gia tăng cuối cùng. Tuy nhiên, sử dụng tùy chọn này trên bản sao lưu gia tăng cuối cùng vẫn vô hại đối với tính nhất quán của dữ liệu của bạn - nó sẽ chỉ gây ra một số chậm trễ do việc khôi phục cơ sở dữ liệu.

Lệnh cuối cùng của mỗi kịch bản gia tăng là tùy chọn nhưng được khuyến nghị, vì nó sẽ tăng tốc khôi phục.

Sau khi chuẩn bị, các thay đổi được ghi trong tệp sao lưu gia tăng sẽ được thêm vào tệp sao lưu đầy đủ cơ sở đã chuẩn bị, vì vậy bạn phải luôn sử dụng tệp sao lưu đầy đủ đã chuẩn bị để khôi phục cơ sở dữ liệu của mình, bất kể bạn chọn sao lưu toàn bộ hoặc sao lưu gia tăng.

Bước 9: Khôi phục cơ sở dữ liệu

Trước khi bạn có thể khôi phục cơ sở dữ liệu của mình, bạn cần dừng dịch vụ cơ sở dữ liệu.

sudo service mysqld stop

Bạn cũng cần làm trống thư mục cơ sở dữ liệu. Bạn có thể di chuyển các tệp cơ sở dữ liệu hiện tại đến một nơi khác để đề phòng.

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

Khôi phục cơ sở dữ liệu của bạn với các tệp "sao lưu đầy đủ" đã chuẩn bị.

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

Vì quy trình khôi phục sẽ sửa đổi chủ sở hữu của thư mục cơ sở dữ liệu, bạn cần thay đổi lại mysql:mysqlđể làm cho nó hoạt động.

sudo chown -R mysql:mysql /var/lib/mysql

Khởi động lại dịch vụ cơ sở dữ liệu.

sudo service mysqld start

Đó là nó. Tại thời điểm này, bạn có thể truy cập trang web WordPress của mình để xác minh rằng quá trình khôi phục đã thành công.



Leave a Comment

ReactOS: Đây có phải là tương lai của Windows?

ReactOS: Đây có phải là tương lai của Windows?

ReactOS, một hệ điều hành mã nguồn mở và miễn phí đã có phiên bản mới nhất. Liệu nó có thể đáp ứng đủ nhu cầu của người dùng Windows hiện đại và hạ gục Microsoft? Hãy cùng tìm hiểu thêm về trải nghiệm hệ điều hành kiểu cũ nhưng mới hơn này.

Liệu AI có thể chiến đấu với số lượng các cuộc tấn công bằng Ransomware ngày càng tăng

Liệu AI có thể chiến đấu với số lượng các cuộc tấn công bằng Ransomware ngày càng tăng

Các cuộc tấn công ransomware đang gia tăng, nhưng liệu AI có thể giúp đối phó với loại virus máy tính mới nhất? AI có phải là câu trả lời? Đọc ở đây biết là AI boone hay cấm

Luôn kết nối thông qua Ứng dụng WhatsApp Desktop 24 * 7

Luôn kết nối thông qua Ứng dụng WhatsApp Desktop 24 * 7

Whatsapp cuối cùng đã ra mắt ứng dụng Máy tính để bàn cho người dùng Mac và Windows. Giờ đây, bạn có thể truy cập Whatsapp từ Windows hoặc Mac một cách dễ dàng. Có sẵn cho Windows 8+ và Mac OS 10.9+

Làm thế nào AI có thể đưa quá trình tự động hóa lên cấp độ tiếp theo?

Làm thế nào AI có thể đưa quá trình tự động hóa lên cấp độ tiếp theo?

Hãy đọc phần này để biết Trí tuệ nhân tạo đang trở nên phổ biến như thế nào đối với các công ty quy mô nhỏ và làm thế nào nó đang tăng khả năng khiến họ phát triển và giúp đối thủ cạnh tranh của họ có thể cạnh tranh.

Bản cập nhật bổ sung macOS Catalina 10.15.4 đang gây ra nhiều vấn đề hơn là giải quyết

Bản cập nhật bổ sung macOS Catalina 10.15.4 đang gây ra nhiều vấn đề hơn là giải quyết

Gần đây Apple đã phát hành macOS Catalina 10.15.4 một bản cập nhật bổ sung để khắc phục các sự cố nhưng có vẻ như bản cập nhật đang gây ra nhiều vấn đề hơn dẫn đến việc máy mac bị chai. Đọc bài viết này để tìm hiểu thêm

13 Công cụ trích xuất dữ liệu thương mại của Dữ liệu lớn

13 Công cụ trích xuất dữ liệu thương mại của Dữ liệu lớn

13 Công cụ trích xuất dữ liệu thương mại của Dữ liệu lớn

Hệ thống tệp nhật ký là gì và nó hoạt động như thế nào?

Hệ thống tệp nhật ký là gì và nó hoạt động như thế nào?

Máy tính của chúng tôi lưu trữ tất cả dữ liệu một cách có tổ chức được gọi là hệ thống tệp Ghi nhật ký. Đây là một phương pháp hiệu quả cho phép máy tính tìm kiếm và hiển thị các tệp ngay khi bạn nhấn tìm kiếm. Https://wethegeek.com/? P = 94116 & preview = true

Điểm kỳ dị về công nghệ: Tương lai xa của nền văn minh nhân loại?

Điểm kỳ dị về công nghệ: Tương lai xa của nền văn minh nhân loại?

Khi Khoa học phát triển với tốc độ nhanh chóng, chiếm rất nhiều nỗ lực của chúng ta, những rủi ro của việc phục tùng bản thân trước một Điểm kỳ dị không thể giải thích cũng tăng lên. Hãy đọc, điểm kỳ dị có thể có ý nghĩa gì đối với chúng ta.

Hiểu rõ hơn về 26 kỹ thuật phân tích dữ liệu lớn: Phần 1

Hiểu rõ hơn về 26 kỹ thuật phân tích dữ liệu lớn: Phần 1

Hiểu rõ hơn về 26 kỹ thuật phân tích dữ liệu lớn: Phần 1

Tác động của trí tuệ nhân tạo trong chăm sóc sức khỏe 2021

Tác động của trí tuệ nhân tạo trong chăm sóc sức khỏe 2021

AI trong lĩnh vực chăm sóc sức khỏe đã có những bước tiến nhảy vọt so với những thập kỷ trước. Vì vậy, tương lai của AI trong Chăm sóc sức khỏe vẫn đang phát triển từng ngày.