Cố gắng thực hiện sao lưu gia tăng hàng giờ của một máy chủ Postgres (Win7 64).
Tôi có các thiết lập sau postgresql.conf
:
max_wal_senders = 2
wal_level = archive
archive_mode = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'
(khởi động lại)
Tôi đã thực hiện sao lưu cơ sở với pg_basebackup -U postgres -D ..\foo -F t -x
Nó tạo ra một base.tar
tệp lớn trong foo
thư mục và thêm một số tệp 16.384 KB, mà tôi giả sử là WALs.
Điều tôi không hiểu là tại sao WALs foo
không thay đổi . Các WAL data/pg_xlog
thay đổi. Là pg không phải sao chép chúng hơn? Làm thế nào để nó quyết định làm như vậy?
Có lẽ tôi cần phải thiết lập archive_timeout=3600
?
Tôi đã thấy một số trang web (danh sách gửi thư của pg, trang postgres của bacula) nói rằng bạn cần gọi pg_start_backup () và pg_stop_backup (), nhưng tôi tin rằng những điều đó là không bắt buộc. Điều đó có đúng không?
Câu hỏi phụ:
Làm thế nào thường làm các WAL trong
data/pg_xlog
được viết? Điều gì kích hoạt một bài viết?Nó dường như cập nhật WAL nếu tôi thực hiện một số DML sau đó
\q
trong psql. Hoặc chỉnh sửa bảng trong pgAdmin sau đó đóng cửa sổ. Tôi hình dung nó sẽ viết trên cam kết.Thực hành tốt nhất? pg_basBackup mỗi tuần một lần? Lưu trữ WAL vào cùng một máy như PG hoặc máy từ xa?