Tôi đang cố gắng thiết lập hai máy chủ PostgreSQL trên một máy và thực hiện sao chép phát trực tuyến. Tôi đã thành công một lần, nhưng khi tôi đã thử lại theo chính xác các bước tương tự thì nó không hoạt động .. Đó là các bước: Tôi có $ PGDATA = home / postgresql / 9.1 / data và $ STANDBY = home / postgresql / 9.1 / dữ liệu2
- Thiết lập hai nút:
initdb -D $ PGDATA initdb -D $ TIÊU CHUẨN
- Trong nút chính tạo một người dùng để nhân rộng. Tôi làm điều đó trong pgAdmin (nó có đặc quyền siêu người dùng)
- Trong nút chính trong pg_hba.conf thêm phần cho phép kết nối ở chế độ chờ:
host replication repuser 127.0.0.1/0 md5
Trong nút chính trong postgresql.conf được đặt:
max_wal_senders = 1 archive_mode = bật archive_command = 'cp% p ~ / postgresql / backup / archivingir /% f' wal_level = lưu trữ wal_keep_segments = 32
Bắt đầu nút chủ và thực hiện sao lưu cơ sở:
psql -d dellstore2 -c "CHỌN pg_start_backup ('sao lưu để sao chép', đúng)" rsync -av $ {PGDATA} / $ STANDBY - bao gồm postmaster.pid psql -d dellstore2 -c "chọn pg_stop_backup ()"
pg_stop_backup nói rằng mọi thứ đều ổn, tất cả các tệp WAL đã được lưu trữTrong nút dự phòng (data2) tôi tạo recovery.conf với:
chế độ chờ_mode = 'trên' chính_conninfo = 'host = 127.0.0.1 port = 5432 user = repuser password = haslo' trigger_file = '/home/michau/postgresql/replication.trigger' restore_command = 'cp / home / michau / postgresql / backup / archuredir /% f "% p"'
Bắt đầu nút chủ, sau đó bắt đầu nút chờ - sao chép sẽ bắt đầu và chế độ chờ sẽ bắt kịp với nút chính. Đó chính xác là những gì đã xảy ra lần đầu tiên. Bây giờ khi tôi bắt đầu chế độ chờ, tôi nhận được: lỗi "Địa chỉ đã được sử dụng" . Tất nhiên cả dự phòng và chủ đều có cùng một cổng được chỉ định trong postgresql.conf (chúng có chính xác các tệp postgresql.conf). Nếu tôi thay đổi cổng ở chế độ chờ thành 5433 thì tôi nhận được:
LOG: hệ thống cơ sở dữ liệu đã ngừng hoạt động trong phục hồi vào 2012-06-12 19:48:01 CEST LOG: vào chế độ chờ cp: không thể stat / home / michau / postgresql / backup / archivingir / 000000010000000000000007: Không có tệp hoặc thư mục như vậy LOG: trạng thái phục hồi nhất quán đạt được tại 0/7000070 LOG: bản ghi có độ dài bằng 0 tại 0/7000070 cp: không thể stat / home / michau / postgresql / backup / archivingir / 000000010000000000000007: Không có tệp hoặc thư mục như vậy LOG: sao chép phát trực tuyến kết nối thành công với chính ĐĂNG NHẬP: làm lại bắt đầu từ 0/7000070
Và nó chỉ treo ở đây. Chạy ps -ef | sản lượng grep postgresql:
michau 2491 1898 0 19:46 pts / 0 00:00:00 postgres -D /home/michau/postgresql/9.1/data michau 2493 2491 0 19:46? 00:00:01 postgres: quá trình nhà văn michau 2494 2491 0 19:46? 00:00:00 postgres: quá trình nhà văn wal michau 2495 2491 0 19:46? 00:00:00 postgres: quá trình khởi động autovacuum michau 2496 2491 0 19:46? 00:00:00 postgres: quá trình lưu trữ cuối cùng là 000000010000000000000008 michau 2497 2491 0 19:46? 00:00:00 postgres: quy trình thu thập số liệu thống kê michau 2571 2214 0 19:49 điểm / 1 00:00:00 postgres -D /home/michau/postgresql/9.1/data2 michau 2572 2571 0 19:49? 00:00:01 postgres: quá trình khởi động phục hồi 000000010000000000000009 michau 2575 2571 0 19:49? 00:00:01 postgres: quá trình nhà văn michau 2578 2571 0 19:49? 00:00:02 postgres: quá trình nhận wal phát 0 / 99782DC michau 2579 2491 0 19:49? 00:00:00 postgres: repal process repuser 127.0.0.1 (42142) streaming 0 / 99782DC michau 2586 2491 0 19:51? 00:00:00 postgres: michau postgres :: 1 (49941) nhàn rỗi michau 2587 2491 0 19:51? 00:00:01 postgres: michau dellstore2 :: 1 (49942) nhàn rỗi0000000010000009 đang phục hồi khi thay đổi trong một thời gian, nhưng trong nửa giờ thì không còn nữa.
Tôi chắc chắn có một cái gì đó tôi phải làm lần đầu tiên và không được viết ra hoặc một cái gì đó, nhưng tôi hoàn toàn không biết phải nói nó là gì. Tôi sẽ đánh giá cao sự giúp đỡ nào.
ps
đầu ra, việc nhân rộng dường như hoạt động.