pg_start_backup
sẽ thực hiện một điểm kiểm tra, như ghi chú dezso. Điều này có ảnh hưởng, nhưng dù sao cơ sở dữ liệu của bạn vẫn thực hiện các điểm kiểm tra khá thường xuyên và phải làm như vậy để hoạt động, vì vậy rõ ràng chúng không phải là vấn đề đối với bạn. Một điểm kiểm tra sớm có nghĩa là ít dữ liệu đã được tích lũy, có nghĩa là nếu bất cứ điều gì một điểm kiểm tra từ đó pg_start_backup
sẽ có tác động thấp hơn bình thường.
Nơi bạn cần lo lắng là rsync hoặc pg_basebackup
bước tương đương . Việc đọc I / O từ điều này sẽ không quá tệ vì nó liên tục, nhưng nó vẫn có thể làm tổn hại đáng kể đến hiệu suất I / O của cơ sở dữ liệu của bạn và nó cũng sẽ có xu hướng đẩy dữ liệu nóng ra khỏi bộ nhớ cache RAM ít hơn dữ liệu được sử dụng, gây ra lỗi bộ đệm khi dữ liệu cần thiết hơn sau đó được đọc lại.
Bạn có thể sử dụng nice
và ionice
để giúp hạn chế tác động I / O (nhưng không ảnh hưởng đến bộ đệm); tuy nhiên, có một chi phí cho điều đó. Việc sao lưu sẽ mất nhiều thời gian hơn và cho đến khi bạn hoàn thành sao lưu và chạy pg_stop_backup
hệ thống của mình - theo tôi hiểu - tích lũy WAL, nó không thể xóa, tích lũy nợ điểm kiểm tra cho điểm kiểm tra LỚN ở cuối quá trình sao lưu và đang tích lũy bảng và chỉ mục phình to vì nó không thể dọn sạch hàng chết. Vì vậy, bạn thực sự không đủ khả năng để sao lưu vĩnh viễn, đặc biệt nếu bạn có các bảng khuấy rất cao.
Cuối cùng, thật khó để nói liệu bạn có thể sử dụng an toàn pg_start_backup
và pg_stop_backup
sao lưu dự phòng nóng trong môi trường của mình hay không. Hầu hết mọi người đều có thể, nhưng nếu bạn ở gần rìa của những gì phần cứng của bạn có thể làm, có yêu cầu về thời gian chặt chẽ, không thể chấp nhận rủi ro của một gian hàng và có các bảng khuấy rất cao cũng như các bảng rất lớn, điều đó có thể gây rắc rối .
Thật không may, bạn khá nhiều cần phải kiểm tra nó và xem.
Nếu bạn có thể, có thể đáng để ban hành CHECKPOINT
sau đó chụp ảnh nguyên tử cho khối lượng mà cơ sở dữ liệu của bạn đang bật thay vì sử dụng LVM, công cụ SAN của bạn, EBS hoặc bất cứ thứ gì bạn đang sử dụng. Nếu bạn có thể làm điều này, thì bạn có thể sao chép ảnh chụp nhanh lúc rảnh rỗi. Cách tiếp cận này không phù hợp để thực hiện sao lưu cơ sở cho PITR / chế độ chờ ấm / chế độ chờ nóng, nhưng nó hoàn toàn tốt cho bản sao lưu tĩnh và tác động đến hệ thống thấp hơn nhiều. Bạn chỉ có thể làm điều này nếu ảnh chụp nhanh của bạn là nguyên tử và toàn bộ cơ sở dữ liệu của bạn bao gồm WAL nằm trên một tập duy nhất.
Một khả năng tôi chưa điều tra là kết hợp cả hai cách tiếp cận. Nó xảy ra với tôi rằng người ta có thể ( chưa được kiểm tra và có thể sai và không an toàn , tôi chưa biết):
pg_start_backup
- Ảnh chụp nhanh kích hoạt của tất cả các không gian bảng, datadir chính và âm lượng xlog
pg_stop_backup
- Sao chép WAL lên đến kho lưu trữ cuối cùng từ
pg_stop_backup
- Sao chép dữ liệu từ các khối được chụp
Về cơ bản, ý tưởng là giảm thời gian DB phải trì hoãn các điểm kiểm tra của nó bằng cách lấy thời gian của từng tập mà bạn có thể sao chép tùy ý.