Mục lục

1. Giới thiệu pgBackRest

Nếu bạn nào đang làm Database Administrator cho Oracle database, giờ chuyển sang PostgreSQL sẽ thấy hơi hụt hẫng ở khâu backup dữ liệu.

Công cụ backup RMAN của Oracle phải gọi là quá xịn xò, gần như mình không có nhu cầu phải dùng đến công cụ của một hãng thứ 3 khác. Trong khi đó, PostgreSQL cũng cung cấp sẵn cho chúng ta một công cụ backup là pg_basebackup, nhưng nó đơn sơ quá!

Đọc thêm  Backup database PostgreSQL bằng pg_basebackup

Trong bài viết này, mình sẽ giới thiệu cho các bạn cách cài đặt công cụ backup dành cho  PostgreSQL, mà mình thấy ưng ý nhất với các tiêu chí:

  • Trải nghiệm gần như như RMAN của Oracle
  • Có đầy đủ các kiểu backup (full, incremental)
  • Đáp ứng tốt về mặt hiệu năng.

Đó là pgBackRest.

Đọc thêm  Các thuật ngữ thường dùng trong chiến lược backup database

 

2. Download và cài đặt pgBackRest

Đầu tiên bạn cần phải dùng yum cài đặt pgbackrest đã

# yum install -y pgbackrest

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos-hcm.viettelidc.com.vn
 * epel: download.nus.edu.sg
 * extras: centos-hcm.viettelidc.com.vn
 * updates: centos-hcm.viettelidc.com.vn
Resolving Dependencies
--> Running transaction check
---> Package pgbackrest.x86_64 0:2.33-1.rhel7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================================
 Package                                            Arch                                           Version                                              Repository                                           Size
==================================================================================================================================================================================================================
Installing:
 pgbackrest                                         x86_64                                         2.33-1.rhel7                                         pgdg-common                                         322 k

Transaction Summary
==================================================================================================================================================================================================================
Install  1 Package

Total download size: 322 k
Installed size: 861 k
Downloading packages:
pgbackrest-2.33-1.rhel7.x86_64.rpm                                                                                                                                                         | 322 kB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pgbackrest-2.33-1.rhel7.x86_64                                                                                                                                                                 1/1 
  Verifying  : pgbackrest-2.33-1.rhel7.x86_64                                                                                                                                                                 1/1 

Installed:
  pgbackrest.x86_64 0:2.33-1.rhel7                                                                                                                                                                                

Complete!

Kiểm tra lại xem đã cài đặt thành công chưa:

su - postgres
$ pgbackrest info
No stanzas exist in the repository.

 

3. Cấu hình pgBackRest

Đầu tiên chúng ta chỉnh sửa file cấu hình /etc/pgbackrest.conf

Backup lại file cấu hình cũ

cp /etc/pgbackrest.conf /etc/pgbackrest.conf.bk

Sửa lại nội dung file /etc/pgbackrest.conf như sau:

vi /etc/pgbackrest.conf
[global]
repo1-path=/var/lib/pgsql/13/backups
log-level-console=info
log-level-file=debug
start-fast=y

[test_stanza]
pg1-path=/var/lib/pgsql/13/data
repo1-retention-full=1

Để tôi giải thích một chút:

  • Trong pgBackRest, nó có 1 khái niệm gọi là stanza. Đó là nơi chúng ta sẽ đặt bản backup vào (Khái niệm này giống với Fast recovery area trong Oracle). Có thể định nghĩa được nhiều stanza.
  • Các tham số nằm sau [global] là các tham số áp dụng cho toàn bộ stanza.
    • repo1-path: Là địa chỉ đặt các stanza.
    • log-level-console và log-level_file: Là các tham số quy định mức độ hiển thị thông tin khi chạy pgBackRest
    • start-fast=y : Trước khi chạy backup, tiến trình checkpoint sẽ được gọi, để backup được nhanh hơn.
  • Mỗi stanza sẽ có những tham số tùy chọn riêng (trong ví dụ bên trên tên của stanza tôi đặt là test_stanza, bạn có thể đặt bất cứ tên gì khác tùy thích)
    • pg1-path: Là data directory của PostgreSQL.
    • repo1-retention-full: Là số các bản backup full gần nhất được giữ lại. Những bản cũ hơn sẽ bị xóa đi.

Ok, tiếp theo chúng ta sẽ cấu hình các tham số trong Database.

 

4. Cấu hình tham số trong Database

Đầu tiên, bạn cần đưa database về chế độ Archive mode trước đã. Bạn có thể tham khảo cách làm tại bài viết sau:

Đọc thêm  Cấu hình chức năng archive mode trong PostgreSQL

Bạn sửa các tham số như sau:

alter system set archive_command='pgbackrest --stanza=test_stanza archive-push %p';
alter system set max_wal_senders = 3;
alter system set wal_level = replica;

Sau đó reload lại tham số của PostgreSQL

pg_ctl reload
Đọc thêm  Cấu hình tham số trong PostgreSQL

 

5. Tạo mới một Stanza

su - postgres

$ pgbackrest --stanza=test_stanza stanza-create

2021-05-22 17:07:25.651 P00   INFO: stanza-create command begin 2.33: --exec-id=20450-c9fbd327 --log-level-console=info --log-level-file=debug --pg1-path=/var/lib/pgsql/13/data --repo1-path=/var/lib/pgsql/13/backups --stanza=test_stanza
2021-05-22 17:07:26.263 P00   INFO: stanza-create for stanza 'test_stanza' on repo1
2021-05-22 17:07:26.276 P00   INFO: stanza-create command end: completed successfully (626ms)

Start stanza:

$ pgbackrest --stanza=test_stanza start

2021-05-22 17:08:52.489 P00   INFO: start command begin 2.33: --exec-id=20745-de40d07f --log-level-console=info --log-level-file=debug --stanza=test_stanza
WARN: stop file does not exist for stanza test_stanza
2021-05-22 17:08:52.489 P00   INFO: start command end: completed successfully (2ms)

Kiểm tra lại:

$ pgbackrest --stanza=test_stanza check
2021-05-22 17:09:23.382 P00   INFO: check command begin 2.33: --exec-id=20781-131764aa --log-level-console=info --log-level-file=debug --pg1-path=/var/lib/pgsql/13/data --repo1-path=/var/lib/pgsql/13/backups --stanza=test_stanza
2021-05-22 17:09:24.008 P00   INFO: check repo1 configuration (primary)
2021-05-22 17:09:24.213 P00   INFO: check repo1 archive for WAL (primary)
2021-05-22 17:09:24.616 P00   INFO: WAL segment 00000001000004E300000048 successfully archived to '/var/lib/pgsql/13/backups/archive/test_stanza/13-1/00000001000004E3/00000001000004E300000048-01fa5bb31bbcd02e320e889fafaed2d7870f2276.gz' on repo1
2021-05-22 17:09:24.617 P00   INFO: check command end: completed successfully (1237ms)

 

6. Backup database bằng pgBackRest

Bây giờ tôi sẽ thử backup database bằng pgBackRest nhé.

Đầu tiên là Backup full:

$ pgbackrest --stanza=test_stanza --log-level-console=info --type=full backup

Kết quả:

 

Tiếp theo là Backup incremental:

$ pgbackrest --stanza=test_stanza --log-level-console=info --type=diff backup

Kết quả:

 

Kiểm tra lại các bản backup:

pgbackrest info

 

Như vậy là Ok rồi đó

Nguồn: https://dangxuanduy.com/

Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.

KHOÁ DÀNH CHO NGƯỜI MỚI

KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)

CÁC KHOÁ NÂNG CAO:

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD

CÁC KHOÁ COMBO:

COMBO 1: ADMIN 1 + MULTITENANT 12c

COMBO 2: ADMIN 1 + DATA GUARD

COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD

LỊCH HỌC:

Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE 

ĐĂNG KÝ:

https://forms.gle/MtCAoRQFenP886y79

Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x