Postgresql | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 23. | Chuyển tiếp nhanh | NEXT |
Tại mọi lúc,PostgreSQLDuy trì AViết nhật ký trước(Wal) trongpg_xlog/Subdirectory của cụm"Phát lại"Nhật ký
Chúng tôi không cần sao kèo bóng đá hôm nay và ngày mai hoàn toàn nhất quán nhưtarhoặc một công cụ kèo bóng đá hôm nay và ngày mai trữ tương tự.
Vì chúng ta có thể xâu chuỗi lại một chuỗi dài vô thời hạn
Không có gì nói rằng chúng ta phải phát lại Walkèo bóng đá hôm nay và ngày mai hồi thời gian: có thể
Nếu chúng ta liên tục cung cấp chuỗi các tệp WAL cho một tệp khác"Chế độ chờ nóng"Hệ thống: AT
Như với kỹ thuật-hệ thống tệp đơn giản, phương pháp này
Để khôi phục thành công bằng cách sử dụng bản kèo bóng đá hôm nay và ngày mai, bạn cầntrướcbạn lấy của bạn
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 đá hôm nay và ngày mai trữ dữ liệu WAL, chúng tôi muốn nắm bắt nội dung của"kèo bóng đá hôm nay và ngày mai: chúng ta có thể sao chép các tệp phân đoạn thành mộtPostgreSQLcố gắng không làmPostgreSQLĐặtCPhoặc
lệnh shell để sử dụng được chỉ định bởiArchive_Commandtham số cấu hình, trong thực tế sẽ luôn luônPostgreSql.confTệp.%Pđược thay thế bởi%Fchỉ được thay thế bằng tên tệp. (Con đường%%Nếu bạn cần nhúng một thực tế%ký tự trong lệnh. Đơn giản nhất hữu ích
12362_12434
sẽ sao chép các phân đoạn Wal có thể kèo bóng đá hôm nay và ngày mai trữ vào thư mục/mnt/server/archivingir. (Đây là một
Lệnh kèo bóng đá hôm nay và ngày mai 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 Archive return return exitPostgreSQLsẽ giả định rằngPostgreSQLrằng tệp đó là
Lệnh kèo bóng đá hôm nay và ngày mai trữ thường được thiết kế để từ chốiVà nó trả về không. Chúng tôi đã tìm thấy rằngCP -IĐiều này có chính xác trên một số nền tảng nhưng
archive_command = 'test! -f .../%f && cp%p .../%f '
hoạt động chính xác trên hầu hết các biến thể Unix.
Trong khi thiết kế thiết lập kèo bóng đá hôm nay và ngày mai 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 khi
Tốc độ của lệnh kèo bóng đá hôm nay và ngày mai trữ không quan trọng, quá lâupg_xlog/Thư mục sẽ
Nếu bạn lo lắng về việc có thể kèo bóng đá hôm nay và ngày mai hồi ngayCronCông việc định kỳ (mỗi phút một lần,PostgreSQLBởi vì chúng tôi không muốnArchive_CommandBằng cách yêu cầu nó theo dõi liên tục được kèo bóng đá hôm nay và ngày mai trữ, nhưngArchive_Commandchỉ được gọi trên các phân đoạn Wal đã hoàn thành. Ngoại trừ trong trường hợp
bằng cách viết lệnh kèo bóng đá hôm nay và ngày mai trữ của bạn, bạn nên cho rằng%P) Nhưng cần phải nhớ%F).
kèo bóng đá hôm nay và ngày mai ý rằng mặc dù việc kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày maiPostgreSql.conf, pg_hba.confvàpg_ident.conf), vì chúng được chỉnh sửa thủ côngPhần 17.2cho cách thức
Quy trình sao kèo bóng đá hôm nay và ngày mai cơ sở là tương đối
Đảm bảo rằng việc kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày maiTệ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
Thực hiện sao kèo bóng đá hôm nay và ngày mai, sử dụng bất kỳ sự thuận tiện nàotarhoặcCPIO. Nó không cần thiết cũng không
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 sẽ trở lại thành công.
Một khi các tệp phân đoạn Wal được sử dụng trong quá trình sao kèo bóng đá hôm nay và ngày mai là
Một số công cụ sao kèo bóng đá hôm nay và ngày mai mà bạn có thể muốn sử dụng các cảnh báo phát rarsyncTrả lại mã thoát riêng cho"Tệp nguồn đã biến mất"và bạn có thểtarcoi đó là lỗi nếu tệp làtarđang sao chéptar'starlà do đó
Không cần thiết phải rất quan tâm đến số lượng củapg_start_backup
Và bắt đầu thực tếpg_stop_backup
; Một vài phút trì hoãn sẽ không
Hãy chắc chắn rằng kết xuất 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 đá hôm nay và ngày mai kết xuất các tệp bên trongpg_xlog/thư mục con củapg_xlog/là a
Để sử dụng bản sao kèo bóng đá hôm nay và ngày mai này, bạn sẽ cần phải giữ tất cảpg_stop_backup
Hàm tạo raTệp lịch sử sao kèo bóng đá hôm nay và ngày maiĐiều đó ngay lập tức được kèo bóng đá hôm nay và ngày mai trữ0000000100001234000055CDTệp lịch sử sao kèo bóng đá hôm nay và ngày mai0000000100001234000055CD.007C9330.Backup. (Thepg_stop_backup
Và việc kèo bóng đá hôm nay và ngày mai trữ của tất cả Wal
Tệp lịch sử sao kèo bóng đá hôm nay và ngày mai chỉ là một tệp văn bản nhỏ. Nópg_start_backup
, cũng như sự khởi đầu và
Vì bạn phải giữ xung quanh tất cả các tệp WAL được kèo bóng đá hôm nay và ngày mai trữ
Cũng đáng chú ý làpg_start_backup
Hàm tạo 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 gianpg_start_backup
đã được chạy và
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 đá hôm nay và ngày mai hồi từ
Dừng người nhận bưu điện, nếu nó đang chạy.
Nếu bạn có không gian để làm như vậy, hãy sao chép toàn bộ cụmpg_xlogthư mục của thư mục dữ liệu cụm, như nó có thể
Làm sạch tất cả các tệp và thư mục con hiện có
Khôi phục các tệp cơ sở dữ liệu từ kết xuất sao kèo bóng đá hôm nay và ngày mai của bạn. LàPG_TBLSPC/Đã được khôi kèo bóng đá hôm nay và ngày mai chính xác.
Xóa bất kỳ tệp nào có trongpg_xlog/; Những thứ này đến từ bãi dự phòngpg_xlog/ATpg_xlog/archive_status/
Nếu bạn có các tệp WAL không tồn tại mà bạn đã kèo bóng đá hôm nay và ngày maipg_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ụmkèo bóng đá hôm nay và ngày mai hồi). Bạn cũng có thể muốn sửa đổi tạm thờipg_hba.confĐể ngăn chặn thông thường
Bắt đầu Bưu điện. Người bưu điện sẽ đi vàorecovery.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 chính của tất cả điều này là thiết lập lệnh khôi kèo bóng đá hôm nay và ngày mairecovery.conf.sample(thường được cài đặt trongchia sẻ/Thư mục) như arecovery.conflàrestore_command, cho biếtPostgreSQLLàm thế nào để lấy lại kèo bóng đá hôm nay và ngày mai 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%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 đá hôm nay và ngày mai trữ trước đó từ/mnt/server/archivingir. Bạn
Điều quan trọng là lệnh trả về trạng thái thoát khác khôngWillđược yêu cầu các tệp nhật ký mà%PĐường dẫn sẽ được%F; Đừng mong đợi họ
Các phân đoạn Wal không thể tìm thấy trong kho kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai trữ.
Thông thường, kèo bóng đá hôm nay và ngày mai hồi sẽ được tiến hành thông qua tất cả các wal có sẵnrecovery.conf. Bạn có thể chỉ định"kèo bóng đá hôm nay và ngày mai hồi, theo ngày/giờ hoặc bằng cách hoàn thành một
kèo bóng đá hôm nay và ngày mai ý:Đ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ở
Các cài đặt này chỉ có thể được thực hiện trongrecovery.confTệp và chỉ áp dụng cho
Lệnh Shell để thực thi để truy xuất một kèo bóng đá hôm nay và ngày mai trữ%FTrong chuỗi%PIS%%Để nhúng một thực tế%ký tự trong
Điều quan trọng là lệnh phải trả về số 0Willđược hỏi
restore_command = 'cp/mnt/server/archivingir/%f "%p"'
Tham số này chỉ định dấu thời gian cho đến đórecovery_target_timevàrecovery_target_xidcó thể được chỉ định. Mặc định là kèo bóng đá hôm nay và ngày mai hồi đến cuốirecovery_target_inclusive.
Tham số này chỉ định ID giao dịch lên đếnrecovery_target_xidvàrecovery_target_timecó thể được chỉ định. Mặc định là kèo bóng đá hôm nay và ngày mai hồi đến cuốirecovery_target_inclusive.
Chỉ định xem chúng ta có dừng ngay sau khi được chỉ địnhTRUE) hoặcSai). Áp dụng cho cả hairecovery_target_timevàrecovery_target_xid,,TRUE.
Chỉ định kèo bóng đá hôm nay và ngày mai hồi thành một dòng thời gian cụ thể. CácPhầnđể thảo luận.
Khả năng khôi kèo bóng đá hôm nay và ngày mai cơ sở dữ liệu về điểm trước đó trongthisLịch sử của cơ sở dữ liệu
Để giải quyết những 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 đá hôm nay và ngày mai trữ làanyTrạng thái trước, bao gồm cả trạng thái
Mỗi lần tạo dòng thời gian mới,PostgreSQLTạo A"Lịch sử dòng thời gian"Tệp hiển thị cái nào
Hành vi kèo bóng đá hôm nay và ngày mai hồi mặc định là kèo bóng đá hôm nay và ngày mai hồi dọc theorecovery.conf. Bạn không thể kèo bóng đá hôm nay và ngày mai hồi
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 và r-cây hiện khôngReindexMỗi chỉ mục như vậy sau khi hoàn thành một
Nếu ATạo cơ sở dữ liệuLệnh làTạođược sao chép được sửa đổi trong khi bản sao kèo bóng đá hôm nay và ngày mai cơ sở là
Tạo không gian bảngCác lệnh là
Cũng cần kèo bóng đá hôm nay và ngày mai ý 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 26Trước khi bạn làm như vậy.) Tắt trangfull_page_writeslà trên. Trong lúc đó,