9892_9931 | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 23. Sao kèo bóng đá hom nay và khôi phục | Chuyển tiếp nhanh | Tiếp theo |
Tại mọi lúc,PostgreSQLduy trì AViết nhật ký trước(Wal) trongpg_xlog/10995_11241"Phát lại"Nhật ký Các mục được thực hiện từ điểm kiểm tra cuối cùng. Tuy nhiên, sự tồn tại của Nhật ký giúp sử dụng chiến lược thứ ba để sao kèo bóng đá hom nay Cơ sở dữ liệu: Chúng tôi 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 tin WAL. Nếu cần phục hồi, chúng tôi sẽ khôi phục bản sao kèo bóng đá hom nay và sau đó phát lại từ các tệp WAL được sao kèo bóng đá hom nay để mang lại bản sao kèo bóng đá hom nay cho đến thời điểm 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ố Lợi ích đáng kể:
Chúng tôi không cần sao kèo bóng đá hom nay hoàn toàn nhất quán như đ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 đáng kể khác 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 khả năng chụp nhanh hệ thống tệp, chỉtarhoặc một công cụ kèo bóng đá hom nay 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 có thể đạt được các tệp wal, sao kèo bóng đá hom nay liên tục Đơn giản chỉ bằng cách tiếp tục kèo bóng đá hom nay trữ các tập tin WAL. Đây là đặc biệt có giá trị cho cơ sở dữ liệu lớn, nơi nó có thể không thuận tiện để có một bản sao kèo bóng đá hom nay đầy đủ thường xuyên.
Không có gì nói rằng chúng ta phải phát lại Wal Mục nhập tất cả các cách đến cuối cùng. 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 nhất quán của cơ sở dữ liệu là Đó là lúc đó. Do đó, kỹ thuật này hỗ trợ12811_12835: 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 kể từ cơ sở của bạn Sao kèo bóng đá hom nay đã đượ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ờ ấm ápHệ thống: AT bất kỳ điểm nào chúng tôi 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.
Như với kỹ thuật-hệ thống tệp đơn giản, phương pháp này chỉ có thể 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ũng được gọi là "sao kèo bóng đá hom nay trực tuyến" bởi nhiều nhà cung cấp cơ sở dữ liệu), bạn cần Trình tự liên tục của các tệp WAL được kèo bóng đá hom nay trữ 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ì vậy, để bắt đầu, Bạn nên thiết lập và kiểm tra quy trình của mình để kèo bóng đá hom nay trữ các tệp WALtrướcBạn lấy của bạn Sao kèo bóng đá hom nay cơ sở đầu tiên. Theo đó, trước tiên chúng tôi thảo luận về các cơ chế của kèo bóng đá hom nay trữ các tệp WAL.
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ý chuỗi này vào walTệp phân đoạn,, thông thường là 16MB mỗi người (mặc dù kích thước có thể đã thay đổi khi xây dựngPostgreSQL). Các tệp phân đoạn được đưa ra Tên số phản ánh vị trí của họ trong Walk sự liên tiếp. 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ế"14999_15217
Khi kèo bóng đá hom nay trữ dữ liệu Wal, chúng tôi muố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 khi 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ể là nhiều cách khác nhau của"kèo bóng đá hom nay dữ liệu ở đâu đó "15570_15936PostgreSQLcố gắng không làm Bất kỳ giả định về cách 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.
Lệnh Shell sẽ sử dụng được chỉ định bởiArchive_Commandtham số cấu hình, trong thực tế sẽ luôn luôn được đặt trongPostgreSql.confTệp. Trong chuỗi này, bất kỳ%Pđược thay thế bởi tên đường dẫn của tệp để kèo bóng đá hom nay trữ, trong khi bất kỳ%Fchỉ được thay thế bằng tên tệp. (Con đường Tên là liên quan đến thư mục làm việc của máy chủ, 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 hữu ích lệnh là một cái gì đó giống 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 khuyến nghị và có thể không hoạt động trên tất cả nền tảng.)
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 một người dùng màPostgreSQLMáy chủ đang chạy như. Kể từ khi một loạt các tập tin WAL được kèo bóng đá hom nay trữ có chứa hiệu quả Mọi thứ trong cơ sở dữ liệu của bạn, bạn sẽ muốn chắc chắn rằng Dữ liệu kèo bóng đá hom nay trữ được bảo vệ khỏi đôi mắt tò mò; 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 truy cập.
Điều quan trọng là lệnh kèo bóng đá hom nay trữ trả về không trạng thái nếu và chỉ khi nó thành công. Khi nhận được kết quả bằng không,PostgreSQLsẽ giả định rằng Tệp phân đoạn Wal đã được kèo bóng đá hom nay trữ thành công và sẽ loại bỏ hoặc tái chế nó. Tuy nhiên, trạng thái khác không cho biếtPostgreSQLrằng tệp đó là 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 tính năng an toàn quan trọng để duy trì tính toàn vẹn của kèo bóng đá hom nay trữ 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ủ khác nhau vào cùng một kho kèo bóng đá hom nay trữ thư mục).
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ề không trạng thái trong trường hợp này19019_1909919122_19128Bướ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ơn Verbosely, 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, đó làkhôngHành vi mong muốn.)
19655_20195pg_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ình huống được giải quyết.
Tốc độ của lệnh kèo bóng đá hom nay trữ không quan trọng, quá lâu vì nó có thể theo kịp tốc độ trung bình mà máy chủ của bạn Tạo 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ữ tụt lại phía sau một chút. Nếu kèo bóng đá hom nay trữ rơi Đáng kể phía sau, điều này sẽ tăng lượng dữ liệu Điều đó sẽ bị mất trong trường hợp thảm họa. Nó cũng sẽ có nghĩa làpg_xlog/Thư mục sẽ chứa một số lượng lớn các tệp phân đoạn chưa được kèo bóng đá hom nay trữ, mà Cuối cùng có thể vượt quá không gian đĩa có sẵn. Bạn được thông báo để theo dõi quy trình kèo bóng đá hom nay trữ để đả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ên tệp được kèo bóng đá hom nay trữ có thể dài lên 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. Không cần thiết phải nhớ con đường tương đối ban đầu (%P) Nhưng cần phải nhớ Tên tệp (%F).
kèo bóng đá hom nay ý rằng mặc dù việc kèo bóng đá hom nay trữ Wal sẽ cho phép bạn khôi phục mọi 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.confvàpg_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 của bạn. Nhìn thấyPhần 17.2cho cách thức Để di chuyển các tệp cấu hình.
Lệnh kèo bóng đá hom nay trữ chỉ được gọi khi hoàn thành Wal phân đoạn. Do đó, nếu máy chủ của bạn chỉ tạo ra ít wal giao thông (hoặc có thời gian chùng khi nó làm như vậy), có thể có Một sự chậm trễ lâu dài giữa việc hoàn thành một giao dịch và Ghi lại an toàn trong kèo bóng đá hom nay trữ kèo bóng đá hom nay trữ. Để đặt giới hạn về bao nhiêu tuổi Dữ liệu chưa tồn tại có thể, bạn có thể đặtarchive_timeout22548_22812Archive_Timeout- Nó sẽ làm mờ kèo bóng đá hom nay trữ kèo bóng đá hom nay trữ.Archive_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
23100_23260Bảng
9-47.
Quy trình sao kèo bóng đá hom nay cơ sở tương đối đơn giản:
Đảm bảo rằng việc kèo bóng đá hom nay 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 yêu cầu
chọn pg_start_backup ('nhãn');
WHEREnhãnCó 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 toàn bộ con đường nơi bạn dự định
Để đặt tệp kết xuất sao kèo bóng đá hom nay.)pg_start_backup
Tạ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.
24351_24581
Thực hiện sao kèo bóng đá hom nay, sử dụng bất kỳ sự thuận tiện nào Công cụ hậu vệ hệ thống tệp nhưtarhoặcCPIO. 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 điều này.
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à sự cố Lệnh
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 Tự động chuyển sang phân đoạn WAL tiếp theo. Lý do cho Công tắc là sắp xếp tệp 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 ngay lập tức sẵn sàng kèo bóng đá hom nay trữ.
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 đá 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_backup
kết quả là kết quả cuối cùng
Phân khúc cần được kèo bóng đá hom nay trữ để hoàn thành bản sao kèo bóng đá hom nay.
kèo bóng đá hom nay trữ các tệp này sẽ tự động xảy ra, vì
bạn đã cấu hìnhArchive_Command. Trong nhiều trường hợp, điều này xảy ra
khá nhanh chóng, nhưng bạn được khuyên nên theo dõi
hệ thống kèo bóng đá hom nay trữ để đảm bảo điều này đã diễn ra để bạn
có thể chắc chắn rằng bạn có một bản sao kèo bóng đá hom nay hoàn chỉnh.
Một số công cụ sao kèo bóng đá hom nay mà bạn có thể muốn sử dụng các cảnh báo phát ra hoặc lỗi nếu các tệp họ đang cố gắng sao chép thay đổi trong khi Sao chép tiền thu được. Tình huống này là bình thường, và không phải là một lỗi, 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; Vì vậy, bạn cần phải đả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 lỗi thực sự. Ví dụ: một số phiên bản củarsyncTrả lại mã thoát riêng cho"Tệp nguồn đã biến mất"và bạn có thể Viết tập lệnh trình điều khiển để chấp nhận mã thoát này dưới dạng không lỗi trường hợp. 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 được từ 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 ra với1Nếu một tệp được thay đổi trong quá trình sao kèo bóng đá hom nay và2cho khác lỗi.
27096_27184pg_start_backup
và bắt đầu thực tế
Sao kèo bóng đá hom nay, cũng như giữa cuối bản sao kèo bóng đá hom nay vàpg_stop_backup
; Một vài phút trì hoãn sẽ không
làm tổn thương bất cứ điều gì. (Tuy nhiên, nếu bạn thường chạy máy chủ vớifull_page_writesbị vô hiệu hóa, bạn có thể
kèo bóng đá hom nay ý sự sụt giảm hiệu suất giữapg_start_backup
vàpg_stop_backup
, kể từfull_page_writesđược ép buộc một cách hiệu quả trong thời gian
Chế độ sao kèo bóng đá hom nay.) Bạn phải đảm bảo rằng các bước này được thực hiện
theo trình tự mà không có bất kỳ sự chồng chéo nào, hoặc bạn sẽ
vô hiệu hóa bản sao kèo bóng đá hom nay.
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 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ản sao kèo bóng đá hom nay của bạn kèo bóng đá hom nay trữ các liên kết tượng trưng như liên kết, nếu không thì khôi phục sẽ làm rối loạn máy tính 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 bên trong Thepg_xlog/thư mục con của thư mục cụm. Biến chứng nhỏ này đáng giá Bởi vì nó làm giảm nguy cơ sai lầm khi khôi kèo bóng đá hom nay. Đây là Dễ dàng sắp xếp nếupg_xlog/là a Liên kết tượng trưng chỉ vào một nơi nào đó bên ngoài cụm thư mục, dù sao cũng là thiết lập phổ biến cho hiệu suất lý do.
Để 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 tệp phân đoạn Wal được tạo trong và sau tệp
Sao kèo bóng đá hom nay hệ thống. Để hỗ trợ bạn trong việc này,pg_stop_backup
Hàm 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 tên đầu tiên
Tệp phân đoạn Wal mà bạn cần phải sử dụng
hỗ trợ. 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
Số thứ hai trong tên tệp là viết tắt của một vị trí chính xác
trong tập tin WAL và thông thường có thể bị bỏ qua.) Một khi bạn
đã kèo bóng đá hom nay trữ an toàn các bản sao kèo bóng đá hom nay hệ thống tệp và phân đoạn Wal
Các tệp được sử dụng trong quá trình sao kèo bóng đá hom nay (như được chỉ định trong bản sao kèo bóng đá hom nay
Tệp lịch sử), tất cả các phân đoạn WAL được kèo bóng đá hom nay trữ có tên bằng số
không còn 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.
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_start_backup
, cũng như bắt đầu và
Thời gian kết thúc 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 nơi giữ tệp kết xuất được liên kết, sau đó
Tệp lịch sử được kèo bóng đá hom nay trữ là đủ để cho bạn biết tệp kết xuất nào
Để khôi phục, bạn cần phải làm như vậy.
Vì bạn phải giữ xung quanh tất cả các tệp WAL được kèo bóng đá hom nay trữ Quay 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ơ sở Sao kèo bóng đá hom nay thường nên được chọn dựa trên số lượng kèo bóng đá hom nay trữ bạn Muốn chi cho các tệp WAL được kèo bóng đá hom nay trữ. Bạn cũng nên xem xét Bạn đã chuẩn bị trong bao lâu để phục hồi, nếu phục hồi cần thiết là cần thiết - hệ thống sẽ phải phát lại tất cả những thứ đó Các phân đoạn wal, và điều đó có thể mất một lúc nếu nó đã được một thời gian dài thời gian kể từ bản sao kèo bóng đá hom nay cơ sở cuối cùng.
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ệu
thư mục, sau đó được xóa một lần nữ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. Nhãn sao kèo bóng đá hom nay
Tệp 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 bối rối, nó sẽ
do đó có thể nhìn vào bên trong một tệp kết xuất sao kèo bóng đá hom nay và
Xác định chính xác phiên bản sao kèo bóng đá hom nay mà tệp kết xuất đã đến
từ.
cũng có thể tạo bản sao kèo bóng đá hom nay trong khi máy chủ
được dừng lại. Trong trường hợp này, rõ ràng bạn không thể sử dụngpg_start_backup
hoặcpg_stop_backup
31963_32198
Được rồi, điều tồi tệ nhất đã xảy ra và bạn cần phải phục hồi từ bản sao kèo bóng đá hom nay của bạn. Đây là thủ tục:
Dừng máy chủ, 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ụm thư mục dữ liệu 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ó đủ không gian trống trên hệ thống của mình để Giữ hai bản sao của cơ sở dữ liệu hiện tại của bạn. Nếu bạn không có đủ không gian, bạn cần ít nhất để sao chép nội dung củapg_xlogthư mục của thư mục dữ liệu cụm, như nó có thể chứa các bản ghi không được kèo bóng đá hom nay trữ trước khi hệ thống đi xuống.
Làm sạch tất cả các tệp và thư mục con hiện có Thư mục dữ liệu cụm và dưới các thư mục gốc của bất kỳ không gian bảng nào bạn đang sử dụng.
33431_33719PG_TBLSPC/Đã được khôi kèo bóng đá hom nay 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òng và do đó có lẽ đã lỗi thời hơn là hiện tại. Nếu như Bạn đã không kèo bóng đá hom nay trữpg_xlog/AT tất cả, sau đó tạo lại nó, và chắc chắn sẽ tái tạo thư mục conpg_xlog/archive_status/
Nếu bạn có các tệp phân đoạn Wal chưa được phát hành mà bạn đã kèo bóng đá hom nay Trong bước 2, sao chép chúng vàopg_xlog/. (Tốt nhất là sao chép chúng, không di chuyển chúng, để bạn vẫn có các tệp không biến đổi nếu một Vấn đề xảy ra và bạn phải bắt đầu lại.)
Tạo tệp lệnh Recoveryrecovery.confTrong thư mục dữ liệu cụm (nhìn thấykèo bóng đá hom nay Cài đặt). 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 Người dùng kết nối cho đến khi bạn chắc chắn rằng sự kèo bóng đá hom nay có đã làm việc.
Khởi động máy chủ. Máy chủ sẽ chuyển sang chế độ khôi phục và tiến hành đọc qua các tệp wal kèo bóng đá hom nay trữ nó nhu cầu. Nên kết thúc việc phục hồi vì Lỗi bên ngoài, máy chủ có thể 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 sự phục hồi xử lý, máy chủ sẽ đổi tên35408_35423đếnrecovery.done(để ngăn chặn vô tình Nhập lại chế độ kèo bóng đá hom nay trong trường hợp xảy ra sự cố sau đó) và sau đó bắt đầu các hoạt động cơ sở dữ liệu thông thường.
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 đến nơi bạn muốn. Nếu không, hãy trở lại bước 1. Nếu tất cả đều tốt, hãy để người dùng của bạn 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 tệp lệnh Recovery Điều đó mô tả cách bạn muốn kèo bóng đá hom nay và thời gian kèo bóng đá hom nay bao xa nên chạy. Bạn có thể sử dụngrecovery.conf.sample(thường được cài đặt trong Cài đặtchia 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.conflàRESTORE_COMMAND, cho biếtPostgreSQLLàm thế nào để lấy lại kèo bóng đá hom nay trữ wal Phân đoạn tập tin. Giống nhưArchive_Command36556_36611%F, được thay thế tên của tệp nhật ký mong muốn và%P, được thay thế bằng tên đường dẫn để sao chép Các tập tin nhật ký đến. (Tên đường dẫn liên quan đến công việc Thư mục của máy chủ, tức là, thư mục dữ liệu của cụm.) Viết%%Nếu bạn cần nhúng thật sự%ký tự trong lệnh. Các Lệnh hữu ích đơn giản nhất là một cái gì đó giống 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. Bạn Tất nhiên có thể sử dụng một cái gì đó phức tạp hơn nhiều, có lẽ Ngay cả một tập lệnh shell yêu cầu người vận hành gắn kết Băng thích hợp.
Điều quan trọng là lệnh trả về trạng thái thoát khác không về thất bại. LệnhWillđược yêu cầu các tệp nhật ký mà không có mặt trong kho kèo bóng đá hom nay trữ; nó phải trả lại không khác nhau khi như vậy yêu cầu. Đây không phải là một điều kiện lỗi. Cũng nhận thức được rằng Tên cơ sở của%PĐường dẫn sẽ được khác với%F; Đừng mong đợi họ có thể hoán đổi cho nhau.
phân đoạn Wal không thể tìm thấy trong kho kèo bóng đá hom nay trữ sẽ Tìm kiếm trongpg_xlog/38049_38205pg_xlog/. Hệ thống sẽ không Ghi đè nội dung hiện có củapg_xlog/Khi truy xuất các tệp được kèo bóng đá hom nay trữ.
38382_38772recovery.conf. Bạn có thể chỉ định điểm dừng, được gọi là"kèo bóng đá hom nay mục tiêu"38908_39144
kèo bóng đá hom nay ý:điểm dừng phải sau kết thúc thời gian của bản sao kèo bóng đá hom nay cơ sở (thời gian của
pg_stop_backup
39365_39584
Nếu kèo bóng đá hom nay tìm thấy sự tham nhũng trong dữ liệu WAL thì kèo bóng đá hom nay Sẽ hoàn thành tại thời điểm đó và máy chủ sẽ không bắt đầu. TRONG Một trường hợp như vậy, quá trình kèo bóng đá hom nay có thể được chạy lại từ bắt đầu, chỉ định một"kèo bóng đá hom nay mục tiêu"Trước khi tham nhũng để phục hồi có thể hoàn thành bình thường. Nếu phục hồi không thành công cho một bên ngoài lý do, chẳng hạn như sự cố hệ thống hoặc nếu kho kèo bóng đá hom nay trữ wal đã trở thành không thể truy cập, sau đó sự phục hồi có thể được khởi động lại và nó sẽ khởi động lại gần như từ nơi nó thất bại. Khởi động lại phục hồ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ậtpg_controltệp để chỉ ra rằng Dữ liệu WAL đã được xử lý không cần phải được quét lại.
Các cài đặt này chỉ có thể được thực hiện trongrecovery.confTệp và chỉ áp dụng cho Thời gian kèo bóng đá hom nay. Họ phải được đặt lại cho bất kỳ kèo bóng đá hom nay sau đó bạn muốn thực hiện. Họ không thể đã thay đổi sau khi kèo bóng đá hom nay đã bắt đầu.
lệnh shell để thực thi để truy xuất một kèo bóng đá hom nay trữ Phân đoạn của loạt tập tin Wal. Tham số này là yêu cầu. Bất kì%FTrong chuỗi được thay thế bằng tên của tệp để truy xuất từ kèo bóng đá hom nay trữ và bất kỳ%P41476_41695%%Để nhúng một thực tế%ký tự trong yêu cầu.
Điều quan trọng là lệnh phải trả về số 0 thoát khỏi trạng thái nếu và chỉ khi nó thành công. LệnhWillđược hỏi cho các tên tệp 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. Ví dụ:
restore_command = 'cp/mnt/server/archivingir/%f "%p"' restore_command = 'copy/mnt/server/archivingir/%f "%p"' # windows
Tham số này chỉ định dấu thời gian cho đến đó kèo bóng đá hom nay sẽ được tiến hành. Nhiều nhất là một trong sốrecovery_target_timevàrecovery_target_xidcó thể được chỉ định. Mặc định là kèo bóng đá hom nay đến cuối của nhật ký Wal. Điểm dừng chính xác cũng là Bị ảnh hưởng bởirecovery_target_inclusive.
Tham số này chỉ định ID giao dịch lên đến kèo bóng đá hom nay nào sẽ tiến hành. Hãy nhớ rằng trong khi ID giao dịch được gán tuần tự tại Bắt đầu giao dịch, các giao dịch có thể hoàn thành trong một thứ tự số khác nhau. Các giao dịch sẽ thu hồi là những người cam kết trước đó (và Tùy chọn bao gồm) cái được chỉ định. Nhiều nhất là một trong sốrecovery_target_xidvàrecovery_target_timecó thể được chỉ định. Mặc định là kèo bóng đá hom nay đến cuối của nhật ký Wal. Điểm dừng chính xác cũng là Bị ảnh hưởng bởirecovery_target_inclusive.
Chỉ định xem chúng ta có dừng ngay sau khi được chỉ định Mục tiêu kèo bóng đá hom nay (TRUE) hoặc Ngay trước khi mục tiêu kèo bóng đá hom nay (Sai). Áp dụng cho cả hairecovery_target_timevàrecovery_target_xid,, Bất cứ điều gì được chỉ định cho sự kèo bóng đá hom nay này. Cái này cho biết liệu các giao dịch có chính xác mục tiêu cam kết thời gian hoặc id, tương ứng, sẽ Bao gồm trong sự kèo bóng đá hom nay. Mặc định làTRUE.
Chỉ định phục hồi thành một dòng thời gian cụ thể. Các mặc định là để phục hồi theo cùng một dòng thời gian hiện tại khi sao kèo bóng đá hom nay cơ sở được thực hiện. Bạn sẽ chỉ cần đặt tham số này trong việc phục hồi lại phức tạp tình huống, nơi bạn cần trở lại trạng thái Bản thân nó đã đạt được sau khi phục hồi thời gian. Nhìn thấyPhần 23.3.4để thảo luận.
46138_46559this46608_47219
Để giải quyết những vấn đề này,POSTGRESQLCó khái niệmTimelines47363_48157bất kỳTrạng thái trước, bao gồm cả trạng thái trong các nhánh dòng thời gian mà sau này bạn đã bỏ rơ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 Dòng thời gian nó 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 phân đoạn Wal phù hợp các tệp khi khôi phục từ một kho kèo bóng đá hom nay trữ chứa nhiều Thời gian. Do đó, chúng được kèo bóng đá hom nay trữ vào kho kèo bóng đá hom nay trữ Wal Khu vực giống như các tập tin phân đoạn Wal. Các tập tin 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 phân đoạn lớn). Bạn có thể, nếu bạn thích, thêm nhận xét vào một tệp lịch sử để thực hiện ghi chú của riêng bạn về cách thức và lý do tại sao dòng thời gian cụ thể này đến được. Những bình luận như vậy sẽ đặc biệt có giá trị khi bạn có một bụi của các mốc 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 dọc theo Tương tự thời gian 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 cố gắng phục hồi), bạn cần chỉ định ID dòng thời gian đích TRONGrecovery.conf. Bạn không thể kèo bóng đá hom nay vào các mốc thời gian phân nhánh sớm hơn cơ sở hỗ trợ.
Tại bài viết này, có một số hạn chế của Kỹ thuật kèo bóng đá hom nay trữ liên tục. Những thứ này có thể sẽ được sửa trong Các bản phát hành trong tương lai:
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. Được đề xuất cách giải quyết bằng tayReindexMỗi chỉ mục như vậy sau khi hoàn thành hoạt động kèo bóng đá hom nay.
Nếu APostgreSQL: Tài kèolệnh được thực thi trong khi sao kèo bóng đá hom nay cơ sở là được lấy, và sau đó là 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 đang được tiến hành, nhưng có thể Sự phục hồi đó sẽ khiến những sửa đổi đó được Truyền vào cơ sở dữ liệu được tạo là tốt. Đây là của khóa học 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 cơ sở hỗ trợ.
PostgreSQL: Tài liệu:Các lệnh được ghi lại với nghĩa đen Đường dẫn tuyệt đối, và do đó sẽ được phát lại thành không gian bảng sáng tạo với cùng một con đường tuyệt đối. Đây có thể là Không mong muốn nếu nhật ký được phát lại trên một máy móc. Nó có thể nguy hiểm ngay cả khi nhật ký đang phát lại trên cùng một máy, nhưng thành 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 ban đầu. Để tránh tiềm năng của cái này Sắp xếp, thực hành tốt nhất là có một bản sao kèo bóng đá hom nay cơ sở mới sau Tạo hoặc thả các 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 đĩa. Những bức ảnh chụp trang này là được thiết kế để hỗ trợ phục hồi sự cố, vì chúng ta 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 số 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 27Trướ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 lĩnh 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ằng cách 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 khoảng thời gian kiểm tra tham số nhiều như khả thi.