Postgresql 9.1.24 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 24. | NEXT |
Tại mọi lúc,PostgreSQLDuy trì AViết nhật ký trước(Wal) trongpg_xlog/thư mục con của cụm"Phát lại"Nhật ký
Chúng tôi không cần một bản sao kèo bóng đá việt nam hệ thống tệp hoàn toàn nhất quántarhoặc a
Vì chúng ta có thể kết hợp một chuỗi WAL dài vô hạn
Không cần thiết phải phát lại các mục WAL tất cả các cáchkèo bóng đá việt nam thời gian: có thể
Nếu chúng ta liên tục cung cấp chuỗi các tệp WALchế độ chờ ấmHệ thống: AT
kèo bóng đá việt nam ý: pg_dumpvàpg_dumpallKhông sản xuấtlogicvà không chứa
Như với kỹ thuật-hệ thống tệp đơn giản, phương pháp này
Để phục hồi thành công bằng cách sử dụng kèo bóng đá việt nam tục (cũng"Sao kèo bóng đá việt nam trực tuyến"bởi nhiều ngườiTrướcBạn lấy cơ sở đầu tiên của mình
Theo nghĩa trừu tượng, chạyPostgreSQLHệ thống tạo ra vô thời hạnTệp phân đoạn,,PostgreSQL). Các tệp phân đoạn được đưa ra"Tái chế"chúng bằng cách đổi tên không cần thiết
Khi kèo bóng đá việt nam trữ dữ liệu Wal, chúng ta cần nắm bắt nội dung của"kèo bóng đá việt nam: chúng ta có thể sao chép các tệp phân khúc thành mộtPostgreSQLcố gắng không làm bất kỳPostgreSQLĐặtCPhoặc nó
Để cho phép kèo bóng đá việt nam trữ Wal, đặtWal_LevelTham số cấu hình thànhkèo bóng đá việt nam trữ(hoặchot_standby),archive_modeđếntrên, và chỉ định lệnh shell choArchive_CommandTham số cấu hình. Trong thực tế, các cài đặt này sẽ luônPostgreSql.confTệp. TRONGArchive_Command, %Pđược thay thế bằng tên đường dẫn của tệp thành%Fchỉ được thay thế bởi%%Nếu bạn cần nhúng một thực tế%ký tự trong lệnh. Các
archive_command = 'test! -f/mnt/server/archivingir/%f && cp%p/mnt/server/archivingir/%f ' # unix
sẽ sao chép các phân đoạn Wal có thể kèo bóng đá việt nam trữ vào thư mục/mnt/server/archivingir. (Đây là một%Pvà%Ftham số đã được thay thế,
Kiểm tra! -f/mnt/server/archivingir/000000010000000000000065
Một lệnh tương tự sẽ được tạo cho mỗi tệp mới
Lệnh kèo bóng đá việt nam trữ sẽ được thực thi dưới quyền sở hữu củaPostgreSQLMáy chủ đang chạy như. Kể từ khi
Điều quan trọng là lệnh kèo bóng đá việt nam trữ trả về khôngPostgreSQLsẽ giả định rằngPostgreSQLrằng tệp không được kèo bóng đá việt nam trữ;
Lệnh kèo bóng đá việt nam trữ thường được thiết kế để từ chối
Nên kiểm tra lệnh kèo bóng đá việt nam trữ được đề xuất của bạnVà nó trả về không. Lệnh ví dụ ở trên cho UnixTestBước. Trên một số nền tảng Unix,CPCó các công tắc như-iĐiều đó có thể được sử dụng để làm điều tương tự ít hơnCPSẽ trả về trạng thái 0 khi-Iđược sử dụng và tệp đích đãkhôngHành vi mong muốn.)
Trong khi thiết kế thiết lập kèo bóng đá việt nam trữ của bạn, hãy xem xét những gì sẽpg_xlog/Thư mục sẽ tiếp tục điền vào các tệp phân đoạn Wal cho đến khipg_xlog/điền vào,PostgreSQLSẽ tắt máy hoảng loạn. KHÔNG
Tốc độ của lệnh kèo bóng đá việt nam trữ không quan trọng miễn làpg_xlog/Thư mục sẽ
Khi viết lệnh kèo bóng đá việt nam trữ của bạn, bạn nên cho rằng%P) Nhưng cần phải bảo tồn%F).
kèo bóng đá việt nam ý rằng mặc dù việc kèo bóng đá việt nam trữ Wal sẽ cho phép bạn khôi phụcPostgreSQLCơ sở dữ liệu, nó sẽ không khôi kèo bóng đá việt namPostgreSql.conf, pg_hba.confvàpg_ident.conf), vì chúng được chỉnh sửa thủ côngPhần 18.2cho cách thức
Lệnh kèo bóng đá việt nam trữ chỉ được gọi khi hoàn thành Walarchive_timeoutĐể buộc máy chủ chuyển sang tệp phân đoạn Wal mới tạiArchive_Timeout- Nó sẽ phình toarchive_timeoutCài đặt của một phút hoặc lâu hơn thường là hợp lý.
Ngoài ra, bạn có thể buộc một công tắc phân đoạn theo cách thủ công vớipg_switch_xlog
Nếu bạn muốnBảng.
KhiWal_Levellàtối thiểuMột số lệnh SQL được tối ưu hóa để tránhPhần 14.4.7. Nếu kèo bóng đá việt nam trữWal_LevelChỉ có thể thay đổiArchive_Commandcó thể được thay đổi bằng mộtArchive_Commandđến chuỗi trống (''). Điều này sẽ khiến các tệp WAL tích lũy trongpg_xlog/cho đến khi làm việcArchive_Commandđược thiết lập lại.
Quy trình tạo bản sao kèo bóng đá việt nam cơ sở là tương đối
Đảm bảo rằng việc kèo bóng đá việt nam trữ Wal được bật và hoạt động.
Kết nối với cơ sở dữ liệu với tư cách là một siêu người dùng và phát hành
Chọn pg_start_backup ('nhãn');
WHEREnhãnCó chuỗi nào bạnpg_start_backup
Tạo ANhãn sao kèo bóng đá việt namTệp, được gọi làBackup_Label, trong thư mục cụm với
Không quan trọng cơ sở dữ liệu nào trong cụm bạn
Theo mặc định,pg_start_backup
có thể mất nhiều thời kèo bóng đá việt nam đểCheckPoint_completion_target).
chọn pg_start_backup ('nhãn', true);
Điều này buộc điểm kiểm tra phải được thực hiện nhanh như
Thực hiện sao kèo bóng đá việt nam, sử dụng bất kỳ tiện lợi nàotarhoặcCPIO(khôngpg_dumphoặcPG_DUMPALL). Nó không cần thiết
Một lần nữa kết nối với cơ sở dữ liệu với tư cách là một siêu người dùng và vấn đề
Chọn pg_stop_backup ();
Điều này chấm dứt chế độ sao kèo bóng đá việt nam và thực hiện
Một khi các tệp phân đoạn WAL hoạt động trong quá trình sao kèo bóng đá việt nam làpg_stop_backup
kết quả là lần cuối cùngArchive_Modeđược bật,pg_stop_backup
KhôngArchive_Command. Trongpg_stop_backup
, đặt anstatement_timeoutgiá trị.
Bạn cũng có thể sử dụngpg_basebackupcông cụ để lấypg_start_backup ()
, Sao chép vàpg_stop_backup ()
Bước tự động vàPOSTGRESQLKết nối bằng cách sử dụngpg_basebackupKhôngpg_start_backup ()
/pg_stop_backup ()
.
Một số công cụ sao kèo bóng đá việt nam hệ thống tệp phát ra cảnh báo hoặc lỗi nếursyncTrả lại mã thoát riêng cho"Tệp nguồn đã biến mất"và bạn có thểtarTrả lại mã lỗi không thể phân biệt đượctarđã sao chép nó. May mắn thay, GNUtarPhiên bản 1.16 trở lên
Không cần thiết phải lo lắng về lượng thời kèo bóng đá việt nampg_start_backup
và bắt đầu bản sao kèo bóng đá việt nam thực tế, cũng như giữa cuối củapg_stop_backup
; Một vàifull_page_writesbị vô hiệu hóa, bạn có thể nhận thấy hiệu suất giảm giữapg_start_backup
vàpg_stop_backup
, kể từfull_page_writesđược thực hiện một cách hiệu quả trong thời kèo bóng đá việt nam
Hãy chắc chắn rằng bãi rác dự phòng của bạn bao gồm tất cả các tệp/usr/local/pgsql/data). Nếu bạn đang sử dụng
Tuy nhiên, bạn có thể bỏ qua từ bản sao kèo bóng đá việt nam kết xuất các tệp bên trongpg_xlog/SIPDIRECTORY.pg_xlog/là một liên kết biểu tượng chỉpostmaster.pidvàPostmaster.opts, ghi lại thông tin vềPostmaster, khôngPostmastermàPG_CTL.)
Để sử dụng bản sao kèo bóng đá việt nam, bạn sẽ cần phải giữ tất cả các walpg_stop_backup
Hàm tạo raTệp lịch sử sao kèo bóng đá việt namĐiều đó ngay lập tức được kèo bóng đá việt nam trữ0000000100001234000055CDTệp lịch sử sao kèo bóng đá việt nam0000000100001234000055CD.007C9330.Backup. (The
Tệp lịch sử sao kèo bóng đá việt nam chỉ là một tệp văn bản nhỏ. Nópg_start_backup
, cũng như bắt đầu và
Vì bạn phải giữ xung quanh tất cả các tệp WAL được kèo bóng đá việt nam trữ
cũng đáng chú ý làpg_start_backup
Hàm tạo ra một tệp có tênBackup_LabelTrong cụm cơ sở dữ liệupg_stop_backup
. Tệp này tất nhiên sẽ làpg_start_backup
, cũng như thời kèo bóng đá việt nampg_start_backup
đã được chạy và
cũng có thể tạo một bản sao kèo bóng đá việt nam trong khi máy chủpg_start_backup
hoặcpg_stop_backup
, và do đó bạn sẽ
Được rồi, điều tồi tệ nhất đã xảy ra và bạn cần phải kèo bóng đá việt nam từ
Dừng máy chủ, nếu nó đang chạy.
Nếu bạn có không kèo bóng đá việt nam để làm như vậy, hãy sao chép toàn bộ cụmpg_xlogthư mục con, vì nó có thể chứa các bản ghi không
Xóa tất cả các tệp và thư mục con hiện có theo
Khôi phục các tệp cơ sở dữ liệu từ bản sao kèo bóng đá việt nam hệ thống tệp của bạn.Root!) Và với các quyền đúng. Nếu nhưPG_TBLSPC/was
Xóa bất kỳ tệp nào có trongpg_xlog/; Chúng đến từ hệ thống tệppg_xlog/Sau đó, sau đó tạo lại nó với
Nếu bạn có các tệp phân đoạn WAL không tồn tại mà bạn đã kèo bóng đá việt nampg_xlog/. (Tốt nhất là sao chép chúng, không
Tạo tệp lệnh Recoveryrecovery.confTrong thư mục dữ liệu cụmChương 26). Bạnpg_hba.confĐể ngăn người dùng thông thường khỏi
Bắt đầu máy chủ. Máy chủ sẽ chuyển sang chế độ khôi kèo bóng đá việt namrecovery.confđếnrecovery.done(để ngăn chặn vô tình
Kiểm tra nội dung của cơ sở dữ liệu để đảm bảo bạn cópg_hba.confđến bình thường.
Phần quan trọng của tất cả điều này là thiết lập sự kèo bóng đá việt namrecovery.conf.sample(thường là trongchia sẻ/Thư mục) như arecovery.conflàrestore_command, cho biếtPostgreSQLCách truy xuất kèo bóng đá việt nam trữ walArchive_Command, Đây là chuỗi lệnh shell.%F, được thay thế%P, được thay thế bằng tên đường dẫn để sao chép%%Nếu bạn cần nhúng một thực tế%ký tự trong lệnh. Các
restore_command = 'cp/mnt/server/archivingir/ %f %p'
sẽ sao chép các phân đoạn Wal được kèo bóng đá việt nam trữ trước đó từ/mnt/server/archivingir. Của
Điều quan trọng là lệnh trả về trạng thái thoát khác khôngWillĐược gọi là yêu cầu tệp.Backuphoặc.History.%pĐường dẫn sẽ khác với%F; Đừng mong đợi họ sẽ
phân đoạn Wal không thể tìm thấy trong kho kèo bóng đá việt nam trữ sẽpg_xlog/; Điều này cho phép sử dụngpg_xlog/. Hệ thống sẽ khôngpg_xlog/Khi truy xuất các tệp được kèo bóng đá việt nam trữ.
Thông thường, kèo bóng đá việt nam sẽ được tiến hành thông qua tất cả các wal có sẵn"Không tìm thấy tệp"Tin nhắn, chính xácrestore_command. Bạn cũng có thể thấy một00000001.History. Cái nàyPhần 24.3.4để thảo luận.
Nếu bạn muốn kèo bóng đá việt nam vào một thời điểm trước đó (giả sử,recovery.conf. Bạn có thể chỉ định điểm dừng,"Mục tiêu khôi kèo bóng đá việt nam",,
kèo bóng đá việt nam ý:Điểm dừng phải sau kết thúc
pg_stop_backup
. Bạn không thể sử dụng một cơ sở
Nếu khôi phục tìm thấy dữ liệu WAL bị hỏng, kèo bóng đá việt nam sẽ dừng lại ở"Mục tiêu khôi kèo bóng đá việt nam"Trước điểmPG_ControlTệp để chỉ ra rằng
Khả năng khôi kèo bóng đá việt nam cơ sở dữ liệu về điểm trước đó trongthisLịch sử của cơ sở dữ liệu
Để giải quyết vấn đề này,POSTGRESQLCó khái niệmTimelines. Bất cứ khi nào một sự phục hồi kèo bóng đá việt nam trữbất kỳTrạng thái trước, bao gồm cả trạng thái
mỗi khi tạo dòng thời kèo bóng đá việt nam mới,PostgreSQLTạo A"Lịch sử dòng thời kèo bóng đá việt nam"Tệp hiển thị cái nào
Hành vi kèo bóng đá việt nam mặc định là kèo bóng đá việt nam dọc theorecovery.conf. Bạn không thể kèo bóng đá việt nam
Một số mẹo để cấu hình kèo bóng đá việt nam tục được đưa ra
Có thể sử dụngPOSTGRESQLCác cơ sở dự phòng đểpg_dumpbãi rác. (Họ cũng rất nhiềupg_dumpDumps,
Để chuẩn bị cho các bản sao kèo bóng đá việt nam nóng độc lập, đặtWal_Levelđếnkèo bóng đá việt nam trữ(hoặchot_standby),archive_modeđếntrên,Archive_CommandĐiều đóTệp chuyển đổitồn tại. Vì
archive_command = 'test! -f/var/lib/pgsql/backup_in_protress ||
Lệnh này sẽ thực hiện kèo bóng đá việt nam trữ khi/var/lib/pgsql/backup_in_protresstồn tại vàPOSTGRESQLĐể tái chế
Với sự chuẩn bị này, một bản sao kèo bóng đá việt nam có thể được thực hiện bằng cách sử dụng một
Touch/Var/Lib/PGSQL/Backup_in_ProTHER
Tệp chuyển đổi/var/lib/pgsql/backup_in_protressđược tạotarTệp. Vui lòng nhớ thêm lỗi
Nếu kích thước kèo bóng đá việt nam trữ kèo bóng đá việt nam trữ là một mối quan tâm, hãy sử dụngpg_compresslog, http: //pglesslog.projects.postgresql.org, đếnfull_page_writesvà không kèo bóng đá việt nam theo dõi từ các tệp WAL. Sau đó bạn có thể sử dụnggzipđể nén thêmpg_compresslog:
Archive_Command = 'pg_compresslog %p - | gzip/var/lib/pgsql/archive/%f '
Sau đó, bạn sẽ cần sử dụngGunzipvàpg_decompresslogTrong quá trình kèo bóng đá việt nam:
restore_command = 'gunzip </mnt/server/archivingir/%f | pg_decompresslog - %p '
Nhiều người chọn sử dụng tập lệnh để xác định của họArchive_Command, sao cho của họPostgreSql.confMục nhập trông rất
archive_command = 'local_backup_script.sh "%p" "%f"'
Sử dụng một tệp tập lệnh riêng biệt được khuyến khích bất cứ khi nào bạnbashhoặcperl.
Ví dụ về các yêu cầu có thể được giải quyết trong a
Sao chép dữ liệu để bảo mật kèo bóng đá việt nam trữ dữ liệu ngoài trang web
Các tệp Wal
Giao thoa với bản sao kèo bóng đá việt nam và phục hồi khác
Giao thoa với phần mềm giám sát để báo cáo
Tip:Khi sử dụngArchive_Commandtập lệnh, mong muốnLogging_Collector.stderrTừ tập lệnh sau đó sẽ
Tại bài viết này, có một số hạn chế của
Hoạt động trên các chỉ mục băm hiện không được Wal-Logged,ReindexMỗi chỉ mục như vậy sau khi
Nếu ATạoLệnh được thực thi trong khi sao kèo bóng đá việt nam cơ sở làTạo cơ sở dữ liệuđược sao chép được sửa đổi
TạoCác lệnh được ghi lại với nghĩa đen
Cũng cần kèo bóng đá việt nam ý rằng mặc địnhWalĐịnh dạng khá cồng kềnh vì nófull_page_writestham số. (Đọc các ghi chú và cảnh báo trongChương 29Trước khi bạn làm như vậy.) Tắt trangfull_page_writeslà trên. Trong lúc đó,