Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
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ế.

24.3. kèo bóng đá hom nay trữ liên tục và thời gian Phục hồi (pitr)

Tại mọi lúc,PostgreSQLDuy trì AViết nhật ký trước(Wal) trongpg_xlog/Subdirectory của cụm Thư mục dữ liệu. Nhật ký ghi lại mọi thay đổi được thực hiện cho cơ sở dữ liệu Tệp dữ liệu. Nhật ký này tồn tại chủ yếu cho các mục đích an toàn tai nạn: nếu Hệ thống gặp sự cố, cơ sở dữ liệu có thể được khôi kèo bóng đá hom nay để thống nhất bởi"Phát lại"Các mục nhật ký được thực hiện kể từ Điểm kiểm tra cuối cùng. Tuy nhiên, sự tồn tại của nhật ký làm cho nó có thể sử dụng chiến lược thứ ba để sao kèo bóng đá hom nay cơ sở dữ liệu: chúng ta có thể Kết hợp bản sao kèo bóng đá hom nay cấp hệ thống tệp với bản sao kèo bóng đá hom nay của các tệp WAL. Nếu như cần khôi phục, chúng tôi khôi phục bản sao kèo bóng đá hom nay hệ thống tệp và sau đó phát lại từ các tệp WAL được sao kèo bóng đá hom nay để đưa hệ thống đến trạng thái hiện tại. Cách tiếp cận này phức tạp hơn để quản lý hơn một trong những cách tiếp cận trước đó, nhưng nó có một số đáng kể những lợi ích:

  • Chúng tôi không cần một bản sao kèo bóng đá hom nay hệ thống tệp hoàn toàn nhất quán là điểm bắt đầu. Bất kỳ sự không nhất quán nội bộ nào trong bản sao kèo bóng đá hom nay sẽ được sửa chữa bằng cách phát lại nhật ký (điều này không khác biệt đáng kể so với Những gì xảy ra trong quá trình phục hồi sự cố). Vì vậy, chúng tôi không cần một tệp khả năng chụp nhanh hệ thống, chỉtarhoặc một công cụ kèo bóng đá hom nay trữ tương tự.

  • Vì chúng ta có thể kết hợp một chuỗi các tệp WAL dài vô hạn Để phát lại, sao kèo bóng đá hom nay liên tục có thể đạt được chỉ đơn giản bằng cách tiếp tục Để kèo bóng đá hom nay trữ các tập tin WAL. Điều này đặc biệt có giá trị cho lớn cơ sở dữ liệu, nơi có thể không thuận tiện để sao kèo bóng đá hom nay đầy đủ thường xuyên.

  • kết thúc. Chúng tôi có thể dừng phát lại tại bất kỳ điểm nào và có một Ảnh chụp nhanh của cơ sở dữ liệu như lúc đó. Vì vậy, điều này Hỗ trợ kỹ thuậtkèo bóng đá hom nay thời gian: có thể khôi phục cơ sở dữ liệu về trạng thái của nó bất cứ lúc nào Vì bản sao kèo bóng đá hom nay cơ sở của bạn đã được thực hiện.

  • Nếu chúng ta liên tục cung cấp chuỗi các tệp WAL máy đã được tải với cùng một tệp sao kèo bóng đá hom nay cơ sở, chúng tôi có mộtChế độ chờ ấmHệ thống: Tại bất kỳ điểm nào Chúng ta có thể đưa máy thứ hai lên và nó sẽ có một Bản sao gần như hiện tại của cơ sở dữ liệu.

kèo bóng đá hom nay ý: PG_DUMPPG_DUMPALLKhông sản xuất Các bản sao kèo bóng đá hom nay cấp hệ thống tệp và không thể được sử dụng như một phần của Giải pháp kèo bóng đá hom nay trữ liên tục. Những bãi rác như vậy làlogicvà không chứa đủ thông tin được sử dụng bởi wal replay.

Như với kỹ thuật-hệ thống tệp đơn giản, phương pháp này có thể chỉ hỗ trợ khôi phục toàn bộ cụm cơ sở dữ liệu, không phải tập hợp con. Ngoài ra, nó đòi hỏi rất nhiều kèo bóng đá hom nay trữ kèo bóng đá hom nay trữ: cơ sở Sao kèo bóng đá hom nay có thể cồng kềnh, và một hệ thống bận rộn sẽ tạo ra nhiều hệ thống Megabyte của kèo bóng đá hom nay lượng truy cập Wal phải được kèo bóng đá hom nay trữ. Tuy nhiên, nó là Kỹ thuật sao kèo bóng đá hom nay ưa thích trong nhiều tình huống mà cao độ tin cậy là cần thiết.

Để phục hồi thành công bằng cách sử dụng kèo bóng đá hom nay trữ liên tục (còn được gọi là"Sao kèo bóng đá hom nay trực tuyến"bởi nhiều cơ sở dữ liệu các nhà cung cấp), bạn cần một chuỗi các tệp WAL được kèo bóng đá hom nay trữ liên tục kéo dài trở lại ít nhất là thời gian bắt đầu của bản sao kèo bóng đá hom nay của bạn. Vì thế Để bắt đầu, bạn nên thiết lập và kiểm tra quy trình của mình cho kèo bóng đá hom nay trữ các tệp waltrướcBạn lấy cơ sở đầu tiên của mình hỗ trợ. Theo đó, trước tiên chúng tôi thảo luận về các cơ chế kèo bóng đá hom nay trữ Tệp Wal.

24.3.1. Thiết lập WAL ARCIVING

Theo nghĩa trừu tượng, chạyPostgreSQLHệ thống tạo ra vô thời hạn Trình tự dài của WAL Records. Hệ thống phân chia vật lý này Trình tự vào WalTệp phân đoạn, đó là Thông thường 16MB mỗi người (mặc dù kích thước phân đoạn có thể được thay đổi khi xây dựngPostgreSQL). Phân khúc Các tệp được đặt tên số phản ánh vị trí của chúng trong Trình tự Wal trừu tượng. Khi không sử dụng kèo bóng đá hom nay trữ wal, hệ thống Thông thường chỉ tạo một vài tệp phân đoạn và sau đó"Tái chế"Chúng bằng cách đổi tên phân đoạn không cần thiết tập tin đến số phân đoạn cao hơn. Nó cho rằng các tệp phân đoạn có nội dung trước điểm kiểm tra-trước khi không còn lãi và có thể được tái chế.

Khi kèo bóng đá hom nay trữ dữ liệu Wal, chúng ta cần nắm bắt nội dung của mỗi Tệp phân đoạn sau khi nó được điền và kèo bóng đá hom nay dữ liệu đó ở đâu đó trước Tệp phân đoạn được tái chế để tái sử dụng. Tùy thuộc vào ứng dụng và phần cứng có sẵn, có thể có nhiều Những cách khác nhau của"kèo bóng đá hom nay dữ liệu ở đâu đó ": Chúng tôi có thể sao chép các tệp phân khúc thành một Thư mục gắn trên NFS trên máy khác, viết chúng lên băng ổ đĩa (đảm bảo rằng bạn có cách xác định bản gốc Tên của mỗi tệp) hoặc ghép chúng lại với nhau và đốt chúng vào đĩa CD, Hoặc một cái gì đó hoàn toàn khác. Để cung cấp cho quản trị viên cơ sở dữ liệu với sự linh hoạt,PostgreSQLcố gắng Không đưa ra bất kỳ giả định nào về cách thức kèo bóng đá hom nay trữ sẽ được thực hiện. Thay vì,PostgreSQLĐặt Quản trị viên chỉ định lệnh shell được thực thi để sao chép một Đã hoàn thành tập tin phân đoạn đến bất cứ nơi nào nó cần phải đi. Lệnh có thể đơn giản nhưCPhoặc nó có thể Gọi một tập lệnh shell phức tạp - tất cả đều tùy thuộc vào bạn.

Để cho phép kèo bóng đá hom nay trữ Wal, đặtWal_LevelCấu hình tham số đếnkèo bóng đá hom nay trữ(hoặchot_standby),archive_modeđếntrên, và chỉ định lệnh shell để sử dụng trongArchive_CommandTham số cấu hình. Trong thực tế, các cài đặt này sẽ luôn được đặt trongPostgreSql.confTệp. TRONGArchive_Command, %Pđược thay thế bằng tên đường dẫn của tệp thành kèo bóng đá hom nay trữ, trong khi%Fchỉ được thay thế bằng Tên tập tin. (Tên đường dẫn liên quan đến hoạt động hiện tại Thư mục, tức là, thư mục dữ liệu của cụm.) Sử dụ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 lệnh là một cái gì đó như:

archive_command = 'test! -f/mnt/server/archivingir/%f && cp%p/mnt/server/archivingir/%f ' # unix
Archive_Command = 'Sao chép "%p" "C: \ server \ archivingir \%f"' # windows

sẽ sao chép các phân đoạn Wal có thể kèo bóng đá hom nay trữ vào thư mục/mnt/server/archivingir. (Đây là một ví dụ, không phải là một đề xuất và có thể không hoạt động trên tất cả nền tảng.) Sau%P%Ftham số đã được thay thế, lệnh thực tế được thực hiện có thể trông như thế này:

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 được kèo bóng đá hom nay trữ.

Lệnh kèo bóng đá hom nay trữ sẽ được thực thi dưới quyền sở hữu của cùng người dùng màPostgreSQLMáy chủ đang chạy như. Vì một loạt các tập tin Wal được kèo bóng đá hom nay trữ Chứa mọi thứ hiệu quả trong cơ sở dữ liệu của bạn, bạn sẽ muốn Hãy chắc chắn rằng dữ liệu kèo bóng đá hom nay trữ được bảo vệ khỏi mắt tò mò; vì Ví dụ, kèo bóng đá hom nay trữ vào một thư mục không có nhóm hoặc thế giới đọc quyền truy cập.

Điều quan trọng là lệnh kèo bóng đá hom nay trữ trả về trạng thái thoát không nếu và chỉ khi nó thành công. Khi nhận được kết quả bằng không,PostgreSQLsẽ giả sử rằng Tệp đã được kèo bóng đá hom nay trữ thành công, và sẽ xóa hoặc tái chế nó. Tuy nhiên, trạng thái khác không cho biếtPostgreSQLTệp đó không được kèo bóng đá hom nay trữ; Nó sẽ thử lại định kỳ cho đến khi nó thành công.

Lệnh kèo bóng đá hom nay trữ thường được thiết kế để từ chối Ghi đè bất kỳ tệp kèo bóng đá hom nay trữ đã tồn tại trước. Đây là một điều quan trọng tính năng an toàn để duy trì tính toàn vẹn của kho kèo bóng đá hom nay trữ của bạn trong trường hợp Lỗi quản trị viên (chẳng hạn như gửi đầu ra của hai Máy chủ đến cùng một thư mục kèo bóng đá hom nay trữ).

Nên kiểm tra lệnh kèo bóng đá hom nay trữ được đề xuất của bạn để đảm bảo rằng nó thực sự không ghi đè lên một tệp hiện có,Và nó trả về trạng thái khác không trong này trường hợp. Lệnh ví dụ ở trên cho Unix đảm bảo điều này bằng cách bao gồm một riêng biệtTestBướ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 xác thực hơn, nhưng bạn không nên dựa vào những điều này mà không cần xác minh rằng trạng thái thoát bên phải được trả về. (Đặc biệt, GNUCPSẽ trả về trạng thái 0 khi-iđược sử dụng và tệp đích đã tồn tại, mà làkhôngmong muốn hành vi.)

Trong khi thiết kế thiết lập kèo bóng đá hom nay trữ của bạn, hãy xem xét những gì sẽ xảy ra Nếu lệnh kèo bóng đá hom nay trữ thất bại nhiều lần vì một số khía cạnh Yêu cầu can thiệp của người vận hành hoặc kho kèo bóng đá hom nay trữ chạy ra khỏi không gian. Ví dụ, điều này có thể xảy ra nếu bạn viết băng mà không có autochanger; Khi băng điền, không có gì có thể được kèo bóng đá hom nay trữ Cho đến khi băng được hoán đổi. Bạn nên đảm bảo rằng mọi lỗi Điều kiện hoặc yêu cầu cho người điều hành con người được báo cáo một cách thích hợp để tình hình có thể được giải quyết hợp lý nhanh chóng. Thepg_xlog/Thư mục sẽ tiếp tục điền vào với các tập tin phân đoạn Wal cho đến khi tình huống được giải quyết. (Nếu Hệ thống tệp chứapg_xlog/điền vào,PostgreSQLtắt máy. Không có giao dịch cam kết nào sẽ bị mất, nhưng cơ sở dữ liệu sẽ duy trì ngoại tuyến cho đến khi bạn giải phóng một số không gian.)

Tốc độ của lệnh kèo bóng đá hom nay trữ không quan trọng miễn là nó có thể theo kịp tốc độ trung bình mà máy chủ của bạn tạo ra Dữ liệu Wal. Hoạt động bình thường vẫn tiếp tục ngay cả khi quá trình kèo bóng đá hom nay trữ ngã phía sau một chút. Nếu việc kèo bóng đá hom nay trữ giảm đáng kể phía sau, Điều này sẽ làm tăng lượng dữ liệu sẽ bị mất trong sự kiện của một thảm họa. Nó cũng có nghĩa làpg_xlog/thư mục sẽ chứa số lượng lớn Các tệp phân đoạn chưa được kèo bóng đá hom nay trữ, cuối cùng có thể vượt quá Không gian đĩa có sẵn. Bạn nên theo dõi việc kèo bóng đá hom nay trữ xử lý để đảm bảo rằng nó đang hoạt động như bạn dự định.

Khi viết lệnh kèo bóng đá hom nay trữ của bạn, bạn nên giả sử rằng tệp Tên được kèo bóng đá hom nay trữ có thể dài tới 64 ký tự và có thể chứa bất kỳ sự kết hợp của các chữ cái, chữ số và dấu chấm ASCII. Nó là Không cần thiết để bảo tồn đường dẫn tương đối ban đầu (%P) Nhưng cần phải kèo bóng đá hom nay giữ tên tệp (%F).

kèo bóng đá hom nay ý rằng mặc dù kèo bóng đá hom nay trữ wal sẽ cho phép bạn khôi phục bất kỳ sửa đổi được thực hiện cho dữ liệu trong của bạnPostgreSQLCơ sở dữ liệu, nó sẽ không khôi kèo bóng đá hom nay các thay đổi được thực hiện cho các tệp cấu hình (nghĩa làPostgreSql.conf, pg_hba.confpg_ident.conf), vì chúng được chỉnh sửa thủ công thay vì thông qua các hoạt động SQL. Bạn có thể muốn giữ Các tệp cấu hình ở một vị trí sẽ được sao kèo bóng đá hom nay bởi Quy trình sao kèo bóng đá hom nay hệ thống tập tin thường xuyên. Nhìn thấyPhần 18.2Để biết cách di chuyển các tệp cấu hình.

Lệnh kèo bóng đá hom nay trữ chỉ được gọi trên các phân đoạn Wal đã hoàn thành. Do đó, nếu máy chủ của bạn chỉ tạo ra ít kèo bóng đá hom nay lượng truy cập WAL (hoặc có thời gian chậm chạp khi nó làm như vậy), có thể có một sự chậm trễ lâu giữa việc hoàn thành một giao dịch và ghi âm an toàn của nó trong kèo bóng đá hom nay trữ kèo bóng đá hom nay trữ. Để đặt giới hạn về mức độ dữ liệu chưa được xử lý cũ, bạn có thể đặtarchive_timeoutĐể buộc máy chủ chuyển sang tệp phân đoạn Wal mới ít nhất Điều đó thường xuyên. kèo bóng đá hom nay ý rằng các tệp được kèo bóng đá hom nay trữ được kèo bóng đá hom nay trữ sớm do Một công tắc bắt buộc vẫn có cùng độ dài với các tệp hoàn toàn đầy đủ. Do đó không khôn ngoan để đặt một rất ngắnarchive_timeout- Nó sẽ làm mờ kèo bóng đá hom nay trữ của bạn kho.Archive_TimeoutCài đặt của a 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_xlogNếu bạn muốn đảm bảo rằng A Giao dịch vừa hoàn thành được kèo bóng đá hom nay trữ càng sớm càng tốt. Khác Các chức năng tiện ích liên quan đến WAL Management được liệt kê trongBảng 9-61.

KhiWal_Leveltối thiểuMột số lệnh SQL được tối ưu hóa để tránh Wal Ghi nhật ký, như được mô tả trongPhần 14.4.7. Nếu kèo bóng đá hom nay trữ hoặc Bản sao phát trực tuyến đã được bật trong khi thực hiện một trong những những tuyên bố này, Wal sẽ không chứa đủ thông tin cho kèo bóng đá hom nay trữ phục hồi. (Phục hồi sự cố không bị ảnh hưởng.) Vì lý do này,Wal_LevelChỉ có thể thay đổi tại máy chủ bắt đầu. Tuy nhiên,Archive_Commandcó thể Đã thay đổi với một tệp cấu hình tải lại. Nếu bạn muốn tạm thời ngừng kèo bóng đá hom nay trữ, một cách để làm điều đó là đặ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.

24.3.2. Tạo một bản sao kèo bóng đá hom nay cơ sở

Cách dễ nhất để thực hiện sao kèo bóng đá hom nay cơ sở là sử dụngpg_basebackupCông cụ. Nó có thể tạo ra một Sao kèo bóng đá hom nay cơ sở dưới dạng các tệp thông thường hoặc như một kho kèo bóng đá hom nay trữ tar. Nếu nhiều hơn tính linh hoạt hơnPostgreSQL: Tàicó thể cung cấp là bắt buộc, bạn cũng có thể tạo bản sao kèo bóng đá hom nay cơ sở bằng cách sử dụng API cấp thấp (xemPhần 24.3.3).

Không cần thiết phải lo lắng về lượng thời gian mất để làm một bản sao kèo bóng đá hom nay cơ sở. Tuy nhiên, nếu bạn thường chạy Máy chủ cófull_page_writesVô hiệu hóa, bạn có thể nhận thấy hiệu suất giảm trong khi bản sao kèo bóng đá hom nay chạy từfull_page_writesTrong chế độ sao kèo bóng đá hom nay.

Để sử dụng bản sao kèo bóng đá hom nay, bạn sẽ cần phải giữ tất cả các wal Các tập tin phân đoạn được tạo trong và sau khi sao kèo bóng đá hom nay hệ thống tệp. ĐẾN hỗ trợ bạn thực hiện việc này, quá trình sao kèo bóng đá hom nay cơ sở tạo raTệp lịch sử sao kèo bóng đá hom nayĐiều đó ngay lập tức được kèo bóng đá hom nay trữ vào Khu vực kèo bóng đá hom nay trữ Wal. Tệp này được đặt tên theo Wal đầu tiên Tệp phân đoạn mà bạn cần cho bản sao kèo bóng đá hom nay hệ thống tệp. Ví dụ, Nếu tệp wal bắt đầu là0000000100001234000055CDTệp lịch sử sao kèo bóng đá hom nay sẽ được đặt tên là một cái gì đó giống như0000000100001234000055CD.007C9330.Backup. (The phần thứ hai của tên tệp là viết tắt của một vị trí chính xác trong Tệp Wal và thông thường có thể bị bỏ qua.) Một khi bạn có một cách an toàn kèo bóng đá hom nay trữ bản sao kèo bóng đá hom nay hệ thống tệp và các tệp phân đoạn Wal được sử dụng trong quá trình sao kèo bóng đá hom nay (như được chỉ định trong tệp lịch sử sao kèo bóng đá hom nay), tất cả Các phân đoạn Wal được kèo bóng đá hom nay trữ với tên số ít hơn không còn nữa cần thiết để khôi phục sao kèo bóng đá hom nay hệ thống tệp và có thể bị xóa. Tuy nhiên, bạn nên xem xét giữ một số bộ sao kèo bóng đá hom nay Hoàn toàn chắc chắn rằng bạn có thể khôi phục dữ liệu của mình.

Tệp lịch sử sao kèo bóng đá hom nay chỉ là một tệp văn bản nhỏ. Nó chứa Chuỗi nhãn bạn đã đưa chopg_basebackup, cũng như bắt đầu và kết thúc thời gian và các phân đoạn Wal của bản sao kèo bóng đá hom nay. Nếu bạn đã sử dụng nhãn để xác định tệp kết xuất liên quan, sau đó kèo bóng đá hom nay trữ Tệp lịch sử là đủ để cho bạn biết tệp kết xuất để khôi phục.

Vì bạn phải giữ xung quanh tất cả các tệp WAL được kèo bóng đá hom nay trữ trở lại bản sao kèo bóng đá hom nay cơ sở cuối cùng của bạn, khoảng thời gian giữa các bản sao kèo bóng đá hom nay cơ sở nên thường được chọn dựa trên số lượng kèo bóng đá hom nay trữ bạn muốn chi tiêu kèo bóng đá hom nay trữ các tập tin Wal. Bạn cũng nên xem xét bạn là bao lâu chuẩn bị chi tiêu phục hồi, nếu cần phục hồi - hệ thống sẽ phải phát lại tất cả các phân đoạn wal đó, và điều đó có thể Hãy mất một lúc nếu đã lâu rồi kể từ cơ sở cuối cùng hỗ trợ.

24.3.3. Tạo bản sao kèo bóng đá hom nay cơ sở bằng cách sử dụng API cấp thấp

Quy trình tạo bản sao kèo bóng đá hom nay cơ sở bằng cách sử dụng API cấp thấp chứa nhiều bước hơnpg_basebackupPhương pháp, nhưng tương đối đơn giản. Điều rất quan trọng là các bước này được thực thi trong trình tự và thành công của một bước được xác minh trước tiến hành bước tiếp theo.

  1. Đảm bảo rằng việc kèo bóng đá hom nay 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 mẫu và phát hành yêu cầu:

    chọn pg_start_backup ('nhãn');

    WHEREnhãnCó bất kỳ chuỗi nào bạn muốn Sử dụng để xác định duy nhất hoạt động sao kèo bóng đá hom nay này. (Một thực hành tốt là sử dụng đường dẫn đầy đủ nơi bạn định đặt bản sao kèo bóng đá hom nay tài liệu.)pg_start_backupTạo ANhãn sao kèo bóng đá hom nayTệp, được gọi làBackup_Label, trong thư mục cụm với thông tin về bản sao kèo bóng đá hom nay của bạn, bao gồm thời gian bắt đầu và nhãn sợi dây. Tệp rất quan trọng đối với tính toàn vẹn của bản sao kèo bóng đá hom nay, nên bạn cần khôi phục từ nó.

    Không quan trọng cơ sở dữ liệu nào trong cụm bạn kết nối Để ban hành lệnh này. Bạn có thể bỏ qua kết quả được trả về bởi chức năng; Nhưng nếu nó báo cáo một lỗi, hãy đối phó với điều đó trước tiến hành.

    Theo mặc định,pg_start_backupCó thể Mất một thời gian dài để hoàn thành. Điều này là do nó thực hiện một điểm kiểm tra và I/O cần thiết cho điểm kiểm tra sẽ được lan truyền ra ngoài trong một khoảng thời gian đáng kể, theo mặc định, một nửa Khoảng thời gian kiểm tra-kiểm tra (xem tham số cấu hìnhCheckpoint_completion_target). Đây thường là những gì bạn muốn, bởi vì nó giảm thiểu tác động đến xử lý truy vấn. Nếu bạn muốn bắt đầu bản sao kèo bóng đá hom nay ngay khi Có thể, sử dụng:

    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ư khả thi.

  3. 29713_29788tarhoặcCPIO(khôngpg_dumphoặcPG_DUMPALL). Nó không cần thiết cũng không mong muốn dừng hoạt động bình thường của cơ sở dữ liệu trong khi bạn làm cái này.

  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à phát hành yêu cầu:

    Chọn pg_stop_backup ();

    Điều này chấm dứt chế độ sao kèo bóng đá hom nay và thực hiện công tắc tự động đến phân đoạn Wal tiếp theo. Lý do cho công tắc là sắp xếp cho tập tin phân đoạn Wal cuối cùng được viết trong khoảng thời gian sao kèo bóng đá hom nay để sẵn sàng kèo bóng đá hom nay trữ.

  5. Một khi các tệp phân đoạn WAL hoạt động trong quá trình sao kèo bóng đá hom nay là kèo bóng đá hom nay trữ, bạn đã hoàn thành. Tệp được xác định bởipg_stop_backupkết quả là phân đoạn cuối cùng mà được yêu cầu để tạo thành một tập hợp hoàn chỉnh các tệp sao kèo bóng đá hom nay. Nếu nhưArchive_Modeđược bật,pg_stop_backupkhông quay lại cho đến lần cuối cùng Phân khúc đã được kèo bóng đá hom nay trữ. kèo bóng đá hom nay trữ các tệp này xảy ra tự động vì bạn đã cấu hìnhArchive_Command. Trong hầu hết các trường hợp, điều này xảy ra nhanh chóng, Nhưng bạn nên giám sát hệ thống kèo bóng đá hom nay trữ của mình để đảm bảo ở đó không chậm trễ. Nếu quá trình kèo bóng đá hom nay trữ đã tụt lại phía sau vì Thất bại của lệnh kèo bóng đá hom nay trữ, nó sẽ tiếp tục thử lại cho đến khi kèo bóng đá hom nay trữ thành công và bản sao kèo bóng đá hom nay hoàn tất. Nếu bạn muốn đặt một giới hạn thời gian đối với việc thực hiệnpg_stop_backup, Đặt một phù hợpstatement_timeoutgiá trị.

Một số công cụ sao kèo bóng đá hom nay hệ thống tệp phát ra cảnh báo hoặc lỗi nếu Các tập tin họ đang cố gắng sao chép thay đổi trong khi bản sao tiến hành. Khi Lấy một bản sao kèo bóng đá hom nay cơ sở của một cơ sở dữ liệu hoạt động, tình huống này là bình thường và không phải là một lỗi. Tuy nhiên, bạn cần đảm bảo rằng bạn có thể Phân biệt các khiếu nại về loại này với các lỗi thực. Ví dụ, Một số phiên bản củarsyncTrả lại a Mã thoát riêng cho"Nguồn đã biến mất Tệp "và bạn có thể viết tập lệnh trình điều khiển để chấp nhận điều này Mã thoát như một trường hợp không lỗi. Ngoài ra, một số phiên bản của GNUtarTrả lại mã lỗi Không thể phân biệt với một lỗi nghiêm trọng nếu một tệp bị cắt trong khitarđã sao chép nó. May mắn thay, GnutarPhiên bản 1.16 trở lên thoát với 1 nếu một tệp được thay đổi trong quá trình sao kèo bóng đá hom nay và 2 cho các lỗi khác. Với gnutarPhiên bản 1.23 trở lên, bạn có thể sử dụng các tùy chọn cảnh báo32463_32516Để ẩn các thông báo cảnh báo liên quan.

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 bên dưới Thư mục cụm cơ sở dữ liệu (ví dụ:/usr/local/pgsql/data). Nếu bạn đang sử dụng Không gian bảng không nằm bên dưới thư mục này, được Cẩn thận bao gồm chúng (và chắc chắn rằng bãi rác dự phòng của bạn kèo bóng đá hom nay trữ các liên kết tượng trưng dưới dạng liên kết, nếu không thì khôi phục sẽ làm hỏng không gian bảng của bạn).

Tuy nhiên, bạn có thể bỏ qua từ bản sao kèo bóng đá hom nay kết xuất các tệp trong cụm củapg_xlog/thư mục con. Cái này điều chỉnh nhẹ là đáng giá vì nó làm giảm nguy cơ Sai lầm khi khôi kèo bóng đá hom nay. Điều này rất dễ sắp xếp nếupg_xlog/là một liên kết tượng trưng chỉ vào một nơi nào đó Bên ngoài thư mục cụm, dù sao cũng là một thiết lập phổ biến cho lý do hiệu suất. Bạn cũng có thể muốn loại trừpostmaster.pidPostmaster.opts, ghi lại thông tin về đang chạyPostmaster, không phải vềPostmastercuối cùng sẽ Sử dụng bản sao kèo bóng đá hom nay này. (Những tệp này có thể nhầm lẫnPG_CTL.)

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ệu thư mục, được xóa bởipg_stop_backup. Tệp này tất nhiên sẽ là Được kèo bóng đá hom nay trữ như một phần của tệp kết xuất sao kèo bóng đá hom nay của bạn. Tệp nhãn sao kèo bóng đá hom nay Bao gồm chuỗi nhãn bạn đã cung cấp chopg_start_backup, cũng như thời gianpg_start_backupđã được chạy và tên của tập tin WAL bắt đầu. Trong trường hợp nhầm lẫn, nó là có thể nhìn vào bên trong tệp kết xuất sao kèo bóng đá hom nay và xác định chính xác mà phiên dự phòng mà tập tin kết xuất đến từ. Tuy nhiên, tệp này là không chỉ cho thông tin của bạn; sự hiện diện và nội dung của nó là Quan trọng đối với hoạt động đúng đắn của sự phục hồi của hệ thống quá trình.

dừng lại. Trong trường hợp này, rõ ràng bạn không thể sử dụngpg_start_backuphoặcpg_stop_backup, và do đó bạn sẽ bị bỏ lại các thiết bị của riêng bạn để theo dõi bản sao kèo bóng đá hom nay nào là và Bao xa các tập tin WAL liên quan đi. Nói chung là tốt hơn để Thực hiện theo quy trình kèo bóng đá hom nay trữ liên tục ở trên.

24.3.4. Phục hồi bằng cách sử dụng liên tục kèo bóng đá hom nay trữ sao kèo bóng đá hom nay

Được rồi, điều tồi tệ nhất đã xảy ra và bạn cần kèo bóng đá hom nay từ hỗ trợ. Đây là thủ tục:

  1. Dừng máy chủ, 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ộ dữ liệu cụm thư mục và bất kỳ không gian bảng nào đến một vị trí tạm thời trong trường hợp bạn cần chúng sau. kèo bóng đá hom nay ý rằng biện pháp phòng ngừa này sẽ yêu cầu bạn có đủ dung lượng trống trên hệ thống của bạn để chứa hai bản sao của Cơ sở dữ liệu hiện có. Nếu bạn không có đủ không gian, bạn nên ở ít kèo bóng đá hom nay nhất các nội dung của cụmPG_XLOGSubdirectory, vì nó có thể chứa nhật ký không được kèo bóng đá hom nay trữ trước khi hệ thống đi xuống.

  3. Xóa tất cả các tệp và thư mục con hiện có trong cụm thư mục dữ liệu và dưới thư mục gốc của bất kỳ không gian bảng nào bạn đang sử dụng.

  4. Khôi phục các tệp cơ sở dữ liệu từ bản sao kèo bóng đá hom nay hệ thống tệp của bạn. Hãy chắc chắn rằng họ được khôi phục với quyền sở hữu phù hợp (cơ sở dữ liệu Người dùng hệ thống, không phảiroot!) Và với bên phải quyền. Nếu bạn đang sử dụng không gian bảng, bạn nên xác minh rằng các liên kết tượng trưng trongPG_TBLSPC/was được khôi kèo bóng đá hom nay chính xác.

  5. Xóa bất kỳ tệp nào có trongpg_xlog/; Chúng đến từ bản sao kèo bóng đá hom nay hệ thống tệp và do đó có thể lỗi thời hơn là hiện tại. Nếu bạn không kèo bóng đá hom nay trữpg_xlog/Tất cả, sau đó tạo lại nó với quyền, cẩn thận để đảm bảo rằng bạn thiết lập lại nó như một liên kết tượng trưng nếu bạn đã thiết lập theo cách đó trước đây.

  6. Nếu bạn có các tệp WAL không tồn tại mà bạn đã kèo bóng đá hom nay trong bước 2, sao chép chúng vàopg_xlog/. (Nó là tốt nhất Để sao chép chúng, không di chuyển chúng, vì vậy bạn vẫn có các tệp chưa được sửa đổi Nếu một vấn đề xảy ra và bạn phải bắt đầu lại.)

  7. Tạo tệp lệnh Recoveryrecovery.confTrong thư mục dữ liệu cụm (xemChương 26). Bạn cũng có thể muốn Để tạm thời sửa đổipg_hba.confđến ngăn người dùng thông thường kết nối cho đến khi bạn chắc chắn kèo bóng đá hom nay đã thành công.

  8. Khởi động máy chủ. Máy chủ sẽ chuyển sang chế độ phục hồi và Tiến hành đọc qua các tập tin WAL được kèo bóng đá hom nay trữ mà nó cần. Nên Phục hồi bị chấm dứt vì lỗi bên ngoài, máy chủ có thể Đơn giản chỉ cần khởi động lại và nó sẽ tiếp tục phục hồi. Sau khi hoàn thành của quá trình phục hồi, máy chủ sẽ đổi tênrecovery.confđếnrecovery.done(để ngăn chặn vô tình vào lại Chế độ kèo bóng đá hom nay sau) và sau đó bắt đầu cơ sở dữ liệu bình thường hoạt động.

  9. Kiểm tra nội dung của cơ sở dữ liệu để đảm bảo bạn có kèo bóng đá hom nay cho trạng thái mong muốn. Nếu không, hãy quay lại bước 1. Nếu tất cả là Vâng, cho phép người dùng của bạn kết nối bằng cách khôi phụcpg_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 cấu hình khôi phục Tệp mô tả cách bạn muốn khôi phục và bao xa kèo bóng đá hom nay nên chạy. Bạn có thể sử dụngrecovery.conf.sample(thường là trong Cài đặt củachia sẻ/thư mục) như a nguyên mẫu. Một điều mà bạn hoàn toàn phải chỉ định trongrecovery.confrestore_command, cho biếtPostgreSQLCách truy xuất tệp WAL được kèo bóng đá hom nay trữ phân đoạn. Giống nhưArchive_Command, Điều này là một chuỗi lệnh shell. Nó có thể chứa%F, được thay thế bằng tên của nhật ký mong muốn Tệp và%P, được thay thế bằng Tên đường dẫn để sao chép tệp nhật ký vào. (Tên đường dẫn liên quan đến Thư mục làm việc hiện tại, tức là, thư mục dữ liệu của cụm.) Viết%%Nếu bạn cần nhúng một thực tế%ký tự trong lệnh. Đơn giản nhất Lệnh hữu ích là một cái gì đó như:

restore_command = 'cp/mnt/server/archivingir/ %f %p'

sẽ sao chép các phân đoạn Wal được kèo bóng đá hom nay trữ trước đó từ thư mục/mnt/server/archivingir. Của tất nhiên, bạn có thể sử dụng một cái gì đó phức tạp hơn nhiều, thậm chí có thể script shell yêu cầu người vận hành gắn kết thích hợp băng.

Điều quan trọng là lệnh trả về trạng thái thoát khác không sự thất bại. LệnhWillĐược gọi là các tệp yêu cầu không có trong kho kèo bóng đá hom nay trữ; Nó Phải trả lại không khác khi được hỏi. Đây không phải là một điều kiện lỗi. Không phải tất cả các tệp được yêu cầu sẽ là các tệp phân đoạn Wal; Bạn Cũng nên mong đợi các yêu cầu cho các tệp có hậu tố.History. Cũng kèo bóng đá hom nay ý rằng tên cơ sở của%PĐường dẫn sẽ khác với%F; không mong đợi chúng có thể hoán đổi cho nhau.

Các phân đoạn Wal không thể tìm thấy trong kho kèo bóng đá hom nay trữ sẽ được tìm kiếm TRONGpg_xlog/; Điều này cho phép sử dụng gần đây Các phân đoạn không kèo bóng đá hom nay trữ. Tuy nhiên, các phân khúc có sẵn từ kèo bóng đá hom nay trữ sẽ được sử dụng theo sở thích cho các tệp trongpg_xlog/.

Thông thường, kèo bóng đá hom nay sẽ tiến hành thông qua tất cả các wal có sẵn các phân đoạn, do đó khôi phục cơ sở dữ liệu về điểm hiện tại trong thời gian (hoặc càng gần càng tốt với các phân đoạn WAL có sẵn). Do đó, sự kèo bóng đá hom nay bình thường sẽ kết thúc bằng một"Không tìm thấy tệp"Tin nhắn, văn bản chính xác của Thông báo lỗi tùy thuộc vào sự lựa chọn của bạnrestore_command. Bạn cũng có thể thấy một thông báo lỗi Khi bắt đầu kèo bóng đá hom nay cho một tệp có tên như00000001.History. Điều này cũng là bình thường và không chỉ ra một vấn đề trong các tình huống kèo bóng đá hom nay đơn giản; nhìn thấyPhần 24.3.5cho cuộc thảo luận.

Nếu bạn muốn kèo bóng đá hom nay vào một thời điểm trước đó (giả sử, ngay trước khi Junior DBA bỏ bảng giao dịch chính của bạn), Chỉ cần chỉ định điểm dừng bắt buộc trongrecovery.conf. Bạn có thể chỉ định điểm dừng, được gọi là"Mục tiêu khôi kèo bóng đá hom nay", theo ngày/giờ, điểm khôi kèo bóng đá hom nay được đặt tên hoặc bằng cách hoàn thành một cụ thể ID giao dịch. Theo văn bản này, chỉ có ngày/giờ và được đặt tên Khôi kèo bóng đá hom nay các tùy chọn điểm rất có thể sử dụng được, vì không có công cụ nào giúp bạn xác định với bất kỳ độ chính xác nào mà ID giao dịch sử dụng.

kèo bóng đá hom nay ý:điểm dừng phải sau thời gian kết thúc của Sao kèo bóng đá hom nay cơ sở, tức là thời gian kết thúc củapg_stop_backup. Bạn không thể sử dụng bản sao kèo bóng đá hom nay cơ sở để Phục hồi đến một thời điểm mà bản sao kèo bóng đá hom nay đó đang được tiến hành. (Để phục hồi đến Thời gian như vậy, bạn phải quay lại bản sao kèo bóng đá hom nay cơ sở trước đó của mình chuyển tiếp từ đó.)

Nếu khôi phục tìm thấy dữ liệu WAL bị hỏng, kèo bóng đá hom nay sẽ dừng lại ở đó Điểm và máy chủ sẽ không bắt đầu. Trong trường hợp như vậy, sự kèo bóng đá hom nay quá trình có thể được chạy lại từ đầu, chỉ định A"Mục tiêu kèo bóng đá hom nay"Trước điểm của Tham nhũng để phục hồi có thể hoàn thành bình thường. Nếu phục hồi thất bại vì một lý do bên ngoài, chẳng hạn như sự cố hệ thống hoặc nếu wal kèo bóng đá hom nay trữ đã trở nên không thể tiếp cận, sau đó sự phục hồi có thể đơn giản là Khởi động lại và nó sẽ khởi động lại gần như từ nơi nó thất bại. Sự hồi phục Khởi động lại hoạt động giống như kiểm tra trong hoạt động bình thường: máy chủ định kỳ buộc tất cả trạng thái của nó sang đĩa, sau đó cập nhật Thepg_controlTệp để chỉ ra rằng Dữ liệu WAL đã được xử lý không cần phải được quét lại.

24.3.5. Thời gian

Khả năng khôi kèo bóng đá hom nay cơ sở dữ liệu về thời điểm trước đó tạo ra một số phức tạp giống như những câu chuyện khoa học viễn tưởng về du hành thời gian và vũ trụ song song. Ví dụ, trong Lịch sử ban đầu của cơ sở dữ liệu, giả sử bạn đã bỏ một Bàn lúc 5:15 chiều tối thứ ba, nhưng không nhận ra sai lầm của bạn Cho đến trưa thứ Tư. Không ngạc nhiên, bạn ra ngoài dự phòng, khôi kèo bóng đá hom nay lại Điểm trong thời gian 5:14 tối thứ ba, và đang hoạt động. TRONGthisLịch sử của Vũ trụ cơ sở dữ liệu, bạn không bao giờ bỏ bảng. Nhưng giả sử bạn sau đó nhận ra đây không phải là một ý tưởng tuyệt vời, và muốn Trở lại vào buổi sáng thứ Tư trong lịch sử ban đầu. Bạn sẽ không thể nếu, trong khi cơ sở dữ liệu của bạn đã hoạt động, nó ghi đè lên một số tệp phân đoạn Wal đã dẫn đến thời điểm bạn Bây giờ ước bạn có thể trở lại. Vì vậy, để tránh điều này, bạn cần phải phân biệt loạt các bản ghi Wal được tạo sau khi bạn thực hiện kèo bóng đá hom nay điểm trong thời gian từ những người được tạo ra trong Lịch sử cơ sở dữ liệu gốc.

Để 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 đá hom nay trữ hoàn tất, Một dòng thời gian mới được tạo để xác định loạt các bản ghi Wal tạo ra sau khi phục hồi. Số ID dòng thời gian là một phần của Tên tệp wal phân đoạn để một dòng thời gian mới không ghi đè lên wal Dữ liệu được tạo bởi các mốc thời gian trước đó. Trên thực tế, nó có thể kèo bóng đá hom nay trữ nhiều mốc thời gian khác nhau. Trong khi điều đó có vẻ như là một Tính năng vô dụng, nó thường là một cứu cánh. Xem xét tình hình nơi bạn không chắc chắn điểm nào để phục hồi và Vì vậy, phải thực hiện một vài lần phục hồi trong thời gian bằng cách dùng thử và lỗi Cho đến khi bạn tìm thấy nơi tốt nhất để phân nhánh từ lịch sử cũ. Không có các mốc thời gian, quá trình này sẽ sớm tạo ra một sự lộn xộn. Với các mốc thời gian, bạn có thể phục hồi thànhAnyTrạng thái trước, bao gồm cả các trạng thái trong các chi nhánh dòng thời gian mà bạn đã từ bỏ trước đó.

mỗi khi một dòng thời gian mới được tạo,PostgreSQLTạo A"Lịch sử dòng thời gian"Tệp hiển thị dòng thời gian nào phân nhánh từ và khi nào. Những tệp lịch sử này là cần thiết để Cho phép hệ thống chọn các tệp phân đoạn WAL phù hợp khi Phục hồi từ một kho kèo bóng đá hom nay trữ chứa nhiều mốc thời gian. Do đó, chúng được kèo bóng đá hom nay trữ vào khu vực kèo bóng đá hom nay trữ Wal giống như Tệp phân đoạn Wal. Các tệp lịch sử chỉ là các tệp văn bản nhỏ, vì vậy Nó rẻ và thích hợp để giữ chúng xung quanh vô thời hạn (không giống như các tập tin phân đoạn lớn). Bạn có thể, nếu bạn thích, thêm Nhận xét cho một tệp lịch sử để ghi lại ghi chú của riêng bạn về cách thức và Tại sao dòng thời gian cụ thể này được tạo ra. Những bình luận như vậy sẽ là đặc biệt có giá trị khi bạn có một bụi cây thời gian khác nhau Là kết quả của thử nghiệm.

Hành vi phục hồi mặc định là phục hồi cùng một Dòng thời gian là hiện tại khi sao kèo bóng đá hom nay cơ sở được thực hiện. Nếu bạn muốn phục hồi vào một số dòng thời gian của trẻ em (nghĩa là bạn muốn trở lại một trạng thái nào đó được tạo ra sau khi phục hồi cố gắng), bạn cần chỉ định ID dòng đích trongrecovery.conf. Bạn không thể phục hồi thành các mốc thời gian phân nhánh sớm hơn so với bản sao kèo bóng đá hom nay cơ sở.

24.3.6. Mẹo và ví dụ

Một số mẹo để cấu hình kèo bóng đá hom nay trữ liên tục được đưa ra đây.

24.3.6.1. Sao kèo bóng đá hom nay nóng độc lập

Có thể sử dụngPostgreSQLCác cơ sở sao kèo bóng đá hom nay để sản xuất Sao kèo bóng đá hom nay độc lập nóng. Đây là những bản sao kèo bóng đá hom nay không thể được sử dụng cho Phục hồi điểm trong thời gian, nhưng thường nhanh hơn nhiều để sao kèo bóng đá hom nay và Khôi phục hơnpg_dumpbãi rác. (Họ cũng lớn hơn nhiều so vớipg_dumpDumps, vì vậy trong một số trường hợp, lợi thế tốc độ có thể bị phủ định.)

Như với các bản sao kèo bóng đá hom nay cơ sở, cách dễ nhất để tạo ra một độc lập Sao kèo bóng đá hom nay nóng là sử dụngpg_basebackupCông cụ. Nếu bạn bao gồm-xtham số khi gọi nó, tất cả Nhật ký giao dịch cần thiết để sử dụng bản sao kèo bóng đá hom nay sẽ được bao gồm trong Sao kèo bóng đá hom nay tự động và không cần hành động đặc biệt nào để khôi phục bản sao kèo bóng đá hom nay.

Nếu cần phải linh hoạt hơn trong việc sao chép các tệp sao kèo bóng đá hom nay, A Quá trình cấp thấp hơn có thể được sử dụng cho các bản sao kèo bóng đá hom nay nóng độc lập là tốt. Để chuẩn bị cho các bản sao kèo bóng đá hom nay nóng độc lập cấp thấp, đã đặtWal_Levelđếnkèo bóng đá hom nay trữ(hoặchot_standby),archive_modeđếntrên, và đặt lên mộtArchive_CommandĐiều đó thực hiện Chỉ kèo bóng đá hom nay trữ khi AChuyển đổi tài liệutồn tại. Ví dụ:

archive_command = 'test! -f/var/lib/pgsql/backup_in_protress || .

Lệnh này sẽ thực hiện kèo bóng đá hom nay trữ khi/var/lib/pgsql/backup_in_protresstồn tại và Nếu không thì âm thầm trả lại trạng thái thoát bằng không (cho phépPostgreSQLđể tái chế wal không mong muốn tài liệu).

Với sự chuẩn bị này, một bản sao kèo bóng đá hom nay có thể được thực hiện bằng cách sử dụng tập lệnh như sau:

Touch/var/lib/pgsql/backup_in_protress
psql -c "chọn pg_start_backup ('hot_backup');"
tar -cf /var/lib/pgsql/backup.tar/var/lib/pgsql/data/
psql -c "chọn pg_stop_backup ();"
RM/VAR/LIB/PGSQL/BACKUP_IN_PROTERS
tar -rf /var/lib/pgsql/backup.tar/var/lib/pgsql/archive/

Tệp chuyển đổi/var/lib/pgsql/backup_in_protressđược tạo trước, cho phép kèo bóng đá hom nay trữ các tệp WAL đã hoàn thành xảy ra. Sau Sao kèo bóng đá hom nay tệp chuyển đổi được xóa. Các tập tin WAL được kèo bóng đá hom nay trữ sau đó là thêm vào bản sao kèo bóng đá hom nay để cả bản sao kèo bóng đá hom nay cơ sở và tất cả các yêu cầu Wal Các tệp là một phần của cùng mộttarTệp. Hãy nhớ thêm việc xử lý lỗi vào bản sao kèo bóng đá hom nay của bạn tập lệnh.

24.3.6.2. kèo bóng đá hom nay trữ nén Nhật ký

Nếu kích thước kèo bóng đá hom nay trữ kèo bóng đá hom nay trữ là một mối quan tâm, bạn có thể sử dụnggzipĐể nén các tệp kèo bóng đá hom nay trữ:

archive_command = 'gzip < %p/var/lib/pgsql/archive/ %f'

Sau đó, bạn sẽ cần sử dụngGunzipTrong quá trình kèo bóng đá hom nay:

restore_command = 'gunzip </mnt/server/archivingir/ %f %p'

24.3.6.3.Archive_CommandScript

Nhiều người chọn sử dụng tập lệnh để xác định của họArchive_Command, sao cho họPostgreSql.confMục nhập trông rất đơn giản:

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ạn muốn Sử dụng nhiều hơn một lệnh duy nhất trong quá trình kèo bóng đá hom nay trữ. Cái này cho phép tất cả sự phức tạp được quản lý trong tập lệnh, có thể được viết bằng ngôn ngữ kịch bản phổ biến nhưbashhoặcperl.

Ví dụ về các yêu cầu có thể được giải quyết trong một tập lệnh bao gồm:

  • Sao chép dữ liệu để bảo mật kèo bóng đá hom nay trữ dữ liệu ngoài trang web

  • Các tệp WAL hàng loạt để chúng được chuyển mỗi ba giờ, thay vì một lần

  • Giao tiếp với phần mềm sao kèo bóng đá hom nay và khôi phục khác

  • Giao thoa với phần mềm giám sát để báo cáo lỗi

Tip:Khi sử dụngArchive_Commandtập lệnh, mong muốn kích hoạtLogging_Collector. Bất kỳ tin nhắn nào được ghi vàostderrTừ Tập lệnh sau đó sẽ xuất hiện trong nhật ký máy chủ cơ sở dữ liệu, cho phép các cấu hình phức tạp được chẩn đoán dễ dàng nếu chúng thất bại.

24.3.7. Hãy cẩn thận

Tại bài viết này, có một số hạn chế của liên tục Kỹ thuật kèo bóng đá hom nay trữ. Những điều này có thể sẽ được sửa trong tương lai Phát hành:

  • Hoạt động trên các chỉ mục băm hiện không được Wal-logged, vì vậy Phát lại sẽ không cập nhật các chỉ mục này. Điều này có nghĩa là bất kỳ mới Chèn sẽ bị bỏ qua bởi chỉ mục, các hàng được cập nhật rõ ràng sẽ biến mất và các hàng bị xóa vẫn sẽ giữ lại con trỏ. Trong khác các từ, nếu bạn sửa đổi một bảng có chỉ mục băm trên đó thì bạn sẽ Nhận kết quả truy vấn không chính xác trên máy chủ dự phòng. Khi kèo bóng đá hom nay Hoàn thành bạn nên thủ côngReindexMỗi chỉ mục như vậy sau khi hoàn thành một Hoạt động kèo bóng đá hom nay.

  • Nếu APostgreSQL: Tài kèoLệnh được thực thi trong khi bản sao kèo bóng đá hom nay cơ sở đang được thực hiện, và sau đó Cơ sở dữ liệu mẫu màTạo Cơ sở dữ liệuđược sao chép được sửa đổi trong khi bản sao kèo bóng đá hom nay cơ sở vẫn còn trong tiến trình, có thể phục hồi sẽ gây ra Sửa đổi được truyền vào cơ sở dữ liệu được tạo là tốt. Điều này tất nhiên là không mong muốn. Để tránh rủi ro này, tốt nhất là không Để sửa đổi bất kỳ cơ sở dữ liệu mẫu nào trong khi lấy bản sao kèo bóng đá hom nay cơ sở.

  • PostgreSQL: Tài liệu:Các lệnh được ghi lại bằng con đường tuyệt đối theo nghĩa đen và sẽ do đó được phát lại dưới dạng sáng tạo không gian bảng có cùng con đường tuyệt đối. Điều này có thể không mong muốn nếu nhật ký đang phát lại trên một máy khác. Nó có thể nguy hiểm ngay cả khi Nhật ký đang được phát lại trên cùng một máy, nhưng vào một dữ liệu mới Thư mục: Phát lại vẫn sẽ ghi đè lên nội dung của không gian bảng gốc. Để tránh các gotchas tiềm năng thuộc loại này, Thực hành tốt nhất là lấy một bản sao kèo bóng đá hom nay cơ sở mới sau khi tạo hoặc bỏ không gian bảng.

Cũng cần kèo bóng đá hom nay ý rằng mặc địnhWalĐịnh dạng khá cồng kềnh vì nó bao gồm Nhiều ảnh chụp nhanh trang. Những ảnh chụp nhanh trang này được thiết kế để Hỗ trợ phục hồi sự cố, vì chúng tôi có thể cần sửa chữa các trang đĩa viết một phần. Tùy thuộc vào phần cứng hệ thống của bạn và phần mềm, nguy cơ ghi một phần có thể đủ nhỏ để bỏ qua, trong trường hợp đó bạn có thể giảm đáng kể tổng khối lượng nhật ký kèo bóng đá hom nay trữ bằng cách tắt ảnh chụp nhanh trang bằng cách sử dụngfull_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 trang Ảnh chụp nhanh không ngăn chặn việc sử dụng nhật ký cho các hoạt động PIRT. MỘT Khu vực phát triển trong tương lai là nén dữ liệu WAL được kèo bóng đá hom nay trữ bởi Xóa các bản sao trang không cần thiết ngay cả khifull_page_writeslà trên. Trong lúc đó, Quản trị viên có thể muốn giảm số lần chụp nhanh trang Bao gồm trong Wal bằng cách tăng các tham số khoảng thời gian kiểm tra như nhiều như khả thi.