Phiên bản không được hỗ trợ:8.1 / 8.0
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

23.3. kèo bóng đá hôm nay và ngày mai và phục hồi thời gian

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

23.3.1. Thiết lập Wal

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.confpg_ident.conf), vì chúng được chỉnh sửa thủ côngPhần 17.2cho cách thức

23.3.2. Tạo một bản sao kèo bóng đá hôm nay và ngày mai cơ sở

Quy trình sao kèo bóng đá hôm nay và ngày mai cơ sở là tương đối

  1. Đả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.

  2. 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_backupTạ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

  3. 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

  4. 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.

  5. 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_backupVà 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_backupHà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_backupVà 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_backupHà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_backuphoặcpg_stop_backup, và do đó bạn sẽ

23.3.3. kèo bóng đá hôm nay và ngày mai hồi với một trực tuyến

Đượ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ừ

  1. Dừng người nhận bưu điện, nếu nó đang chạy.

  2. 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ể

  3. Làm sạch tất cả các tệp và thư mục con hiện có

  4. 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.

  5. 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/

  6. 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

  7. 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

  8. 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

  9. 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.confrestore_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úcpg_stop_backup). Bạn không thể sử dụng một cơ sở

23.3.3.1. Sự hồi kèo bóng đá hôm nay và ngày mai

Các cài đặt này chỉ có thể được thực hiện trongrecovery.confTệp và chỉ áp dụng cho

restore_command(chuỗi)

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"'
recovery_target_time(Dấu thời gian)

Tham số này chỉ định dấu thời gian cho đến đórecovery_target_timerecovery_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.

recovery_target_xid(chuỗi)

Tham số này chỉ định ID giao dịch lên đếnrecovery_target_xidrecovery_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.

recovery_target_inclusive(Boolean)

Chỉ định xem chúng ta có dừng ngay sau khi được chỉ địnhTRUE) hoặcSai). Áp dụng cho cả hairecovery_target_timerecovery_target_xid,,TRUE.

recovery_target_timeline(chuỗi)

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.

23.3.4. Thời gian

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

23.3.5. Hãy cẩn thận

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 đó,