Trong phần đầu tiên của blog này, Jonathan đã giải thích cách hoạt động của lệnh barman-wal-archive. Bây giờ, giả sử bạn đã làm theo các hướng dẫn đó, bạn có một phiên bản PostgreSQL được định cấu hình đúng cách đang hoạt động. Trong phần thứ hai này, tôi sẽ chỉ cho bạn cách barman-cloud-backup
lệnh hoạt động.
Như bạn có thể đoán từ chính tên lệnh, barman-cloud-backup
lệnh cho phép bạn thực thi sao lưu trực tiếp từ máy chủ PostgreSQL và sử dụng kho lưu trữ đối tượng tương thích S3 trong Đám mây làm đích.
[email protected]:~ $ barman-cloud-backup --helpusage:barman-cloud-backup [-V] [--help] [-v | -q] [-P PROFILE] [-z | -j] [-e {AES256, aws:kms}] [-t] [-h HOST] [-p PORT] [-U USER] [--im ngay-checkpoint] [-J JOBS] [-S MAX_ARCHIVE_SIZE] [--endpoint-url ENDPOINT_URL] destination_url server_name Tập lệnh này có thể được sử dụng để thực hiện sao lưu phiên bản PostgreSQL cục bộ và chuyển (các) tarball kết quả lên Đám mây. Hiện tại, chỉ AWS S3 được hỗ trợ. Đối số vị trí:URL đích_url của đích đám mây, chẳng hạn như một nhóm trong AWS S3. Ví dụ:`s3:// bucket / path / to / folder`. server_name tên của máy chủ như được định cấu hình trong các đối số Barman.optional:-V, - số phiên bản của chương trình và thoát ra khỏi chương trình --giúp hiển thị thông báo trợ giúp này và thoát -v, --verbose tăng độ dài đầu ra (ví dụ:-vv là hơn -v) -q, --quiet giảm độ chi tiết đầu ra (ví dụ:-qq nhỏ hơn -q) -P PROFILE, - tên cấu hình PROFILE của tệp (ví dụ:phần INI trong tệp thông tin xác thực AWS) -z, --gzip gzip-nén WAL trong khi tải lên đám mây -j, --bzip2 bzip2-nén WAL trong khi tải lên đám mây -e {AES256, aws:kms}, --encryption {AES256, aws:kms} Bật phía máy chủ mã hóa cho việc chuyển giao. Giá trị được phép:'AES256' | 'aws:kms'. -t, --test Kiểm tra kết nối đám mây và thoát -h HOST, - máy chủ HOST hoặc ổ cắm Unix cho kết nối PostgreSQL (mặc định:cài đặt libpq) -p PORT, - cổng PORT cho kết nối PostgreSQL (mặc định:cài đặt libpq) -U USER, - user USER tên người dùng cho kết nối PostgreSQL (mặc định:cài đặt libpq) - điểm kiểm tra tức thời buộc điểm kiểm tra ban đầu được thực hiện càng nhanh càng tốt -J JOBS, - thu thập số lượng quy trình con JOBS để tải dữ liệu lên S3 (mặc định:2) -S MAX_ARCHIVE_SIZE, - max-archive-size MAX_ARCHIVE_SIZE kích thước tối đa của tệp lưu trữ khi tải lên S3 (mặc định:100GB) --endpoint-url ENDPOINT_URL Ghi đè URL điểm cuối S3 mặc định bằng một
Bây giờ chúng tôi đã có ý tưởng rõ ràng hơn về lệnh và các tùy chọn của nó, chúng tôi đã sẵn sàng thực hiện sao lưu đám mây đầu tiên của mình:
[email protected]:~ $ barman-cloud-backup -P barman-cloud \ -e AES256 -j --im Instant-checkpoint -J 4 \ s3:// barman-s3-test / pg12
Sau khi hoàn tất sao lưu thành công, base
thư mục chứa bản sao lưu sẽ nằm trong nhóm S3 của bạn. Hãy kiểm tra nó, xây dựng đường dẫn đích với tên máy chủ và base
thư mục:
[email protected]:~ $ aws s3 - hồ sơ barman-cloud ls s3:// barman-s3-test / pg12 / base / PRE 20200713T120856 /
Ngoài ra, bạn có thể sử dụng barman-cloud-backup-list
, nhưng trong bài viết này, tôi muốn tập trung vào cơ chế đằng sau nó.
20200711T092548
thư mục chứa tất cả các tệp liên quan đến bản sao lưu mà chúng tôi vừa thực hiện. Hãy xem nội dung của nó:
[email protected]:~ $ aws s3 - hồ sơ barman-cloud ls s3:// barman-s3-test / pg12 / base / 20200713T120856 / 2020-07-13 12:09:08 1138 backup.info2020 -07-13 12:09:07 9263096 data.tar.bz2
Như chúng ta có thể thấy, có một tệp được nén và mã hóa chứa bản sao lưu của chúng tôi (data.tar.bz2
) và một tệp có tên backup.info
chứa thông tin liên quan đến bản sao lưu. Chúng tôi có thể khôi phục bản sao lưu bằng cách sao chép và giải nén data.tar.bz2
tệp trên máy chủ cục bộ của chúng tôi như được hiển thị bên dưới:
[email protected]:~ $ aws s3 - tệp barman-cloud cp s3://barman-s3-test/pg12/base/20200713T120856/data.tar.bz2 restore-dirdownload:s3:// barman -s3-test / pg12 / base / 20200713T120856 / data.tar.bz2 to restore-dir/[email protected]:~ $ cd [email protected]:~ / restore-dir $ tar xjvf [email protected]:~/restore-dir $ lsPG_VERSION conf.d pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans pg_wal postgresql.confbackup_label data.tar.bz2 pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_xactbase global pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase postgresql.auto.conf
Tuyệt quá! Như chúng ta có thể thấy, tất cả các tệp trong DATADIR của phiên bản PostgreSQL mà chúng tôi đã sao lưu, bao gồm cả các tệp cấu hình, được liệt kê chính xác tại đây.
Kết luận
Với barman-cloud-backup
Lệnh Barman giới thiệu một tính năng quan trọng cho phép bạn thực thi và gửi trực tiếp các bản sao lưu cơ sở từ máy chủ PostgreSQL cục bộ tới các dịch vụ lưu trữ đối tượng đám mây tương thích với AWS S3 chỉ trong một vài bước đơn giản. Nó hỗ trợ mã hóa, tải lên song song, nén và cho phép tiết kiệm dung lượng đĩa trên máy chủ cục bộ của bạn và chuyển các bản sao lưu lên đám mây một cách an toàn.
Với việc phát hành Barman 2.11
, đã xảy ra cách đây vài ngày, các tính năng mới quan trọng đã được giới thiệu, bao gồm barman-cloud-wal-restore
và barman-cloud-restore
các lệnh cho phép truy xuất các tệp sao lưu và WAL từ một kho lưu trữ đối tượng như AWS S3. Về vấn đề đó, chúng tôi sẽ sớm xuất bản một bài viết blog mới giải thích cách chuẩn bị khôi phục một phiên bản PostgreSQL bằng cách sử dụng các lệnh này. Hãy theo dõi.