Tại mọi thời điểm,PostgreSQLDuy trì AViết nhật ký trước(Wal) trongpg_wal/
thư mục của thư mục dữ liệu của cụm. Nhật ký ghi lại mọi thay đổi được thực hiện cho các tệp dữ liệu của cơ sở dữ liệu.phát lạiHồiCá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ý cho phép sử dụng chiến lược thứ ba để sao kèo bóng đá hôm nay và ngày mai cơ sở dữ liệu: chúng ta có thể kết hợp sao kèo bóng đá hôm nay và ngày mai cấp hệ thống tệp với sao kèo bóng đá hôm nay và ngày mai các tệp WAL.
Chúng tôi không cần sao kèo bóng đá hôm nay và ngày mai hệ thống tệp hoàn toàn nhất quán làm đ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 đá hôm nay và ngày mai 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ố).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ể kết hợp một chuỗi các tệp WAL dài vô thời hạn để phát lại, việc sao kèo bóng đá hôm nay và ngày mai liên tục có thể đạt được chỉ bằng cách tiếp tục kèo bóng đá hôm nay và ngày mai trữ các tệp WAL. Điều này đặc biệt có giá trị đối với cơ sở dữ liệu lớn, trong đó có thể không thuận tiện để có một bản sao kèo bóng đá hôm nay và ngày mai đầy đủ thường xuyên.
Không cần thiết phải phát lại các mục WAL cho đế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 như lúc đó.kèo bóng đá hôm nay và ngày mai hồi 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 kể từ khi sao kèo bóng đá hôm nay và ngày mai cơ sở của bạn được thực hiện.
Nếu chúng ta liên tục cung cấp cho chuỗi các tệp WAL cho một máy khác đã được tải với cùng một tệp sao kèo bóng đá hôm nay và ngày mai cơ sở, chúng ta 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.
pg_dumpvàpg_dumpallKhông sản xuất các bản sao kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai trữ liên tục. Những bãi rác như vậy làlogicvà không chứa đủ thông tin sẽ đượ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 chỉ có thể hỗ trợ khôi phục toàn bộ cụm cơ sở dữ liệu, không phải là một tập hợp con. Ngoài ra, nó đòi hỏi rất nhiều kèo bóng đá hôm nay và ngày mai trữ kèo bóng đá hôm nay và ngày mai trữ: bản sao kèo bóng đá hôm nay và ngày mai cơ sở có thể cồng kềnh và một hệ thống bận rộn sẽ tạo ra nhiều megabyte kèo bóng đá hôm nay và ngày mai lượng truy cập WAL phải được kèo bóng đá hôm nay và ngày mai trữ.
Để phục hồi thành công bằng cách sử dụng kèo bóng đá hôm nay và ngày mai trữ liên tục (còn được gọi làSao kèo bóng đá hôm nay và ngày mai trực tuyếnHồibởi nhiều nhà cung cấp cơ sở dữ liệu), bạn cần một chuỗi các tệp WAL được kèo bóng đá hôm nay và ngày mai trữ liên tục kéo dài ít nhất là thời gian bắt đầu của bản sao kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai trữ các tệp waltrướcBạn lấy bản sao kèo bóng đá hôm nay và ngày mai cơ sở đầu tiên của bạn. Theo đó, trước tiên chúng tôi thảo luận về cơ chế kèo bóng đá hôm nay và ngày mai trữ các tệp wal.
Theo nghĩa trừu tượng, chạyPostgreSQLHệ thống tạo ra một chuỗi dài vô hạn của WAL Records. Hệ thống chia vật lý trình tự này thành walTệp phân đoạn, thông thường là 16MB apiece (mặc dù kích thước phân đoạn có thể được thay đổi tronginitDB). Các tập tin phân đoạn được đặt tên số phản ánh vị trí của chúng trong chuỗi Wal trừu tượng.Tái chếKhănChúng bằng cách đổi tên các tệp phân đoạn không cần thiết hơn thành các số phân đoạn cao hơn. Người ta cho rằng các tệp phân đoạn có nội dung trước điểm kiểm tra cuối cùng không còn được quan tâm và có thể được tái chế.
Khi kèo bóng đá hôm nay và ngày mai trữ dữ liệu Wal, chúng ta cần ghi lại nội dung của từng tệp phân đoạn sau khi nó được điền và kèo bóng đá hôm nay và ngày mai dữ liệu đó ở đâu đó trước khi tệp phân đoạn được tái chế để sử dụng lại. Tùy thuộc vào ứng dụng và phần cứng có sẵn, có thể có nhiều cách khác nhau củakèo bóng đá hôm nay và ngày mai dữ liệu ở đâu đó: Chúng tôi có thể sao chép các tệp phân đoạn kèo bóng đá hôm nay và ngày maio thư mục gắn NFS trên máy khác, viết chúng lên ổ đĩa băng (đảm bảo rằng bạn có cách xác định tên gốc của mỗi tệp) hoặc ghép chúng lại với nhau và đốt chúng kèo bóng đá hôm nay và ngày maio CD hoặc một cách khác. Để cung cấp cho quản trị viên cơ sở dữ liệu 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 đá hôm nay và ngày mai trữ sẽ được thực hiện. Thay vì,PostgreSQLCho phép quản trị viên chỉ định lệnh shell được thực thi để sao chép một tệp phân khúc đã hoàn thành kèo bóng đá hôm nay và ngày maio bất cứ nơi nào cần thiết. Lệnh có thể đơn giản nhưCP
hoặ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 kèo bóng đá hôm nay và ngày maio bạn.
Để cho phép kèo bóng đá hôm nay và ngày mai trữ Wal, đặtWal_Leveltham số cấu hình thànhBản sao
hoặc cao hơn,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.conf
Tệp. TRONGArchive_Command
, %P
được thay thế bằng tên đường dẫn của tệp để kèo bóng đá hôm nay và ngày mai trữ, trong khi%F
chỉ được thay thế bằng tên tệp. (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.) Sử dụng%%
Nếu bạn cần nhúng một thực tế%
ký tự trong lệnh. Lệnh hữu ích đơn giản nhất là một cái gì đó như:
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 đá hôm nay và ngày mai 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ả các nền tảng.) Sau%P
và%F
tham số đã được thay thế, lệnh thực tế được thực thi có thể trông giố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 đá hôm nay và ngày mai trữ.
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ủa cùng một người dùng màPostgreSQLMáy chủ đang chạy như. Vì một loạt các tệp WAL được kèo bóng đá hôm nay và ngày mai trữ có chứa mọi thứ trong cơ sở dữ liệu của bạn một cách hiệu quả, bạn sẽ muốn chắc chắn rằng dữ liệu kèo bóng đá hôm nay và ngày mai trữ được bảo vệ khỏi mắt tò mò;
Điều quan trọng là lệnh kèo bóng đá hôm nay và ngày mai trữ trả về trạng thái thoát 0 khi và chỉ khi nó thành công. Khi nhận được kết quả bằng không,PostgreSQLsẽ cho rằng tệp đã được kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai trữ; nó sẽ thử lại định kỳ cho đến khi nó thành công.
Lệnh kèo bóng đá hôm nay và ngày mai trữ thường nên được thiết kế để từ chối ghi đè lên bất kỳ tệp kèo bóng đá hôm nay và ngày mai trữ nào có sẵn. Đây là một tính năng an toàn quan trọng để duy trì tính toàn vẹn của kho kèo bóng đá hôm nay và ngày mai 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ủ khác nhau đến cùng một thư mục kèo bóng đá hôm nay và ngày mai trữ).
Nên kiểm tra lệnh kèo bóng đá hôm nay và ngày mai 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 trong trường hợp này. 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ệtTest
Bước. Trên một số nền tảng Unix,CP
Có các công tắc như-I
Điều đó có thể được sử dụng để làm điều tương tự hơn một cách rõ ràng, nhưng bạn không nên dựa kèo bóng đá hôm nay và ngày maio những điều này mà không xác minh rằng trạng thái thoát bên phải được trả về. (Đặc biệt, GNUCP
Sẽ 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.)
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 điều gì sẽ xảy ra nếu lệnh kèo bóng đá hôm nay và ngày mai trữ không liên tục 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 kèo bóng đá hôm nay và ngày mai trữ hết không gian. Ví dụ, điều này có thể xảy ra nếu bạn viết băng băng mà không có autochanger;pg_wal/
Thư mục sẽ tiếp tục điền kèo bóng đá hôm nay và ngày maio các tệp 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_wal/
điền kèo bóng đá hôm nay và ngày maio,PostgreSQLSẽ tắt máy hoảng loạn. Không có giao dịch cam kết nào sẽ bị mất, nhưng cơ sở dữ liệu sẽ vẫn 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 đá hôm nay và ngày mai 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 dữ liệu WAL. Hoạt động bình thường tiếp tục ngay cả khi quá trình kèo bóng đá hôm nay và ngày mai trữ bị tụt lại phía sau một chút.pg_wal/
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 đá hôm nay và ngày mai trữ, cuối cùng có thể vượt quá không gian đĩa có sẵn. Bạn nên theo dõi quy trình kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai trữ của bạn, bạn nên cho rằng tên tệp được kèo bóng đá hôm nay và ngày mai trữ có thể dài tới 64 ký tự và có thể chứa bất kỳ sự kết hợp nào của các chữ cái, chữ số và dấu chấm ASCII. Không cần thiết phải bảo tồn đường dẫn tương đối ban đầu (%P
) Nhưng cần phải kèo bóng đá hôm nay và ngày mai giữ tên tệp (%F
).
kèo bóng đá hôm nay và ngày mai ý rằng mặc dù kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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.conf
và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 đá hôm nay và ngày mai bởi các quy trình sao kèo bóng đá hôm nay và ngày mai hệ thống tệp thông thường của bạn.Phần 19.2Để biết cách di chuyển các tệp cấu hình.
Lệnh kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai lượng truy cập WAL (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 giữa việc hoàn thành giao dịch và ghi lại an toàn trong kèo bóng đá hôm nay và ngày mai trữ kèo bóng đá hôm nay và ngày mai trữ.archive_timeoutĐể buộc máy chủ chuyển sang tệp phân đoạn Wal mới ít nhất là thường xuyên. kèo bóng đá hôm nay và ngày mai ý rằng các tệp được kèo bóng đá hôm nay và ngày mai trữ được kèo bóng đá hôm nay và ngày mai trữ sớm do công tắc bắt buộc vẫn có độ dài tương đương với các tệp hoàn toàn đầy đủ.archive_timeout
- Nó sẽ làm mờ kèo bóng đá hôm nay và ngày mai trữ kèo bóng đá hôm nay và ngày mai trữ của bạn.Archive_Timeout
Cà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_wal
Nếu bạn muốn đảm bảo rằng một giao dịch vừa hoàn thành được kèo bóng đá hôm nay và ngày mai trữ càng sớm càng tốt. Các chức năng tiện ích khác liên quan đến quản lý Wal được liệt kê trongBảng 9.84.
KhiWal_Level
làtối thiểu
Một số lệnh SQL được tối ưu hóa để tránh ghi nhật ký Wal, như được mô tả trongPhần 14.4.7. Nếu việc kèo bóng đá hôm nay và ngày mai trữ hoặc sao chép phát trực tuyến được bật trong khi thực hiện một trong những tuyên bố này, WAL sẽ không chứa đủ thông tin để phục hồi kèo bóng đá hôm nay và ngày mai trữ.Wal_Level
Chỉ có thể được thay đổi khi bắt đầu máy chủ. Tuy nhiên,Archive_Command
có thể được thay đổi với tải lại tệp cấu hình. Nếu bạn muốn tạm thời ngừng kèo bóng đá hôm nay và ngày mai 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_wal/
cho đến khi làm việcArchive_Command
được thiết lập lại.
Cách dễ nhất để thực hiện sao kèo bóng đá hôm nay và ngày mai cơ sở là sử dụngpg_basebackupCông cụ. Nó có thể tạo một bản sao kèo bóng đá hôm nay và ngày mai cơ sở dưới dạng các tệp thông thường hoặc như một kho kèo bóng đá hôm nay và ngày mai trữ tar.pg_basebackupCó thể cung cấp là bắt buộc, bạn cũng có thể tạo bản sao kèo bóng đá hôm nay và ngày mai cơ sở bằng API cấp thấp (xemPhần 25.3.3).
Không cần thiết phải lo lắng về lượng thời gian cần thiết để tạo bản sao kèo bóng đá hôm nay và ngày mai cơ sở. Tuy nhiên, nếu bạn thường chạy máy chủ vớifull_page_writes
bị vô 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 đá hôm nay và ngày mai chạy từfull_page_writes
được ép buộc hiệu quả trong chế độ sao kèo bóng đá hôm nay và ngày mai.
Để sử dụng bản sao kèo bóng đá hôm nay và ngày mai, bạn sẽ cần giữ tất cả các tệp phân đoạn Wal được tạo trong và sau khi sao kèo bóng đá hôm nay và ngày mai hệ thống tệp. Để hỗ trợ bạn thực hiện việc này, quá trình sao kèo bóng đá hôm nay và ngày mai cơ sở sẽ tạo ra mộtTệ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ữ vào khu vực kèo bóng đá hôm nay và ngày mai trữ Wal. Tệp này được đặt tên theo tệp phân đoạn Wal đầu tiên mà bạn cần cho bản sao kèo bóng đá hôm nay và ngày mai hệ thống tệp.0000000100001234000055CD
Tệp lịch sử sao kèo bóng đá hôm nay và ngày mai sẽ được đặt tên là một cái gì đó giống như0000000100001234000055CD.007C9330.Backup
. .
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ó chứa chuỗi nhãn bạn đã cung cấp chopg_basebackup, cũng như thời gian bắt đầu và kết thúc và các phân đoạn Wal của bản sao kèo bóng đá hôm nay và ngày mai. Nếu bạn đã sử dụng nhãn để xác định tệp kết xuất được liên kết, thì tệp lịch sử được kèo bóng đá hôm nay và ngày mai trữ là đủ để cho bạn biết tệp kết xuất nào để khôi phục.
29539_29998
Quy trình tạo bản sao kèo bóng đá hôm nay và ngày mai cơ sở bằng cách sử dụng API cấp thấp chứa một vài bước so vớipg_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 hiện theo trình tự và thành công của một bước được xác minh trước khi tiến hành bước tiếp theo.
Sao kèo bóng đá hôm nay và ngày mai cơ sở cấp thấp có thể được thực hiện theo cách không độc quyền hoặc độc quyền. Phương pháp không độc quyền được khuyến nghị và phương pháp độc quyền được không dùng nữa và cuối cùng sẽ bị xóa.
31124_31287pg_basebackup).
Đả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.
31649_31844
chọn pg_start_backup ('nhãn', false, false);
WHEREnhãn
là 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 đá hôm nay và ngày mai này. Gọi kết nốipg_start_backup
phải được duy trì cho đến khi kết thúc bản sao kèo bóng đá hôm nay và ngày mai hoặc bản sao kèo bóng đá hôm nay và ngày mai sẽ được tự động hủy bỏ.
Theo mặc định,pg_start_backup
có thể mất nhiều thời gian để 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 trải ra 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 của bạn (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.TRUE
, sẽ phát hành điểm kiểm tra ngay lập tức bằng cách sử dụng nhiều I/O như có sẵn.
Tham số thứ ba làSai
Tellspg_start_backup
Để bắt đầu sao kèo bóng đá hôm nay và ngày mai cơ sở không độc quyền.
33190_33265tarhoặcCPIO(khôngpg_dumphoặcPG_DUMPALL). 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.Phần 25.3.3.3Để mọi thứ cần xem xét trong bản sao kèo bóng đá hôm nay và ngày mai này.
Trong cùng một kết nối như trước đây, việc đưa ra lệnh:
Chọn * từ pg_stop_backup (false, true);
Điều này chấm dứt chế độ sao kèo bóng đá hôm nay và ngày mai. Trên một chính, nó cũng thực hiện một công tắc tự động sang phân đoạn WAL tiếp theo.pg_switch_wal
Trên chính để thực hiện công tắc thủ công. Lý do cho công tắc là sắp xếp cho 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 đá hôm nay và ngày mai để sẵn sàng kèo bóng đá hôm nay và ngày mai trữ.
Thepg_stop_backup
sẽ trả về một hàng với ba giá trị. Thứ hai của các trường này sẽ được ghi kèo bóng đá hôm nay và ngày maio một tệp có tênBackup_Label
Trong thư mục gốc của bản sao kèo bóng đá hôm nay và ngày mai. Trường thứ ba phải được ghi vào một tệp có tênTablePace_Map
Trừ khi trường trống. Các tệp này rất quan trọng đối với hoạt động sao kèo bóng đá hôm nay và ngày mai và phải được viết byte cho byte mà không cần sửa đổi, có thể yêu cầu mở tệp ở chế độ nhị phâ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 đá hôm nay và ngày mai được kèo bóng đá hôm nay và ngày mai trữ, bạn đã hoàn thành. Tệp được xác định bởipg_stop_backup
giá trị trả về đầu tiên là phân đoạn cuối cùng đượ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 đá hôm nay và ngày mai. Trên chính, nếuarchive_mode
được bật vàWait_for_archive
tham số làTRUE
, pg_stop_backup
Không quay lại cho đến khi phân đoạn cuối cùng được kèo bóng đá hôm nay và ngày mai trữ. Trên một chế độ chờ,Archive_Mode
phải làluôn luôn
Đểpg_stop_backup
Để chờ. kèo bóng đá hôm nay và ngày mai trữ các tệp này sẽ tự động xảy ra 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 đá hôm nay và ngày mai trữ của mình để đảm bảo không có sự chậm trễ.pg_stop_backup
, Đặt một bộ phận thích hợpstatement_timeout
Giá trị, nhưng kèo bóng đá hôm nay và ngày mai ý rằng nếupg_stop_backup
Kết thúc vì điều này sao kèo bóng đá hôm nay và ngày mai của bạn có thể không hợp lệ.
Nếu quá trình sao kèo bóng đá hôm nay và ngày mai theo dõi và đảm bảo rằng tất cả các tệp phân đoạn WAL cần thiết cho bản sao kèo bóng đá hôm nay và ngày mai được kèo bóng đá hôm nay và ngày mai trữ thành công thìWait_for_archive
tham số (mặc định là true) có thể được đặt thành false để cópg_stop_backup
Trả lại ngay khi bản ghi sao kèo bóng đá hôm nay và ngày mai dừng được ghi vào wal. Theo mặc định,pg_stop_backup
Sẽ đợi cho đến khi tất cả WAL đã được kèo bóng đá hôm nay và ngày mai trữ, có thể mất một thời gian. Tùy chọn này phải được sử dụng một cách thận trọng: Nếu WAL kèo bóng đá hôm nay và ngày mai trữ không được theo dõi chính xác thì bản sao kèo bóng đá hôm nay và ngày mai có thể không bao gồm tất cả các tệp WAL và do đó sẽ không đầy đủ và không thể được khôi phục.
Phương thức sao kèo bóng đá hôm nay và ngày mai độc quyền không được dùng và nên tránh. TrướcPOSTGRESQL9.6, đây là phương pháp cấp thấp duy nhất có sẵn, nhưng giờ đây tất cả người dùng nên nâng cấp các tập lệnh của họ để sử dụng các bản sao kèo bóng đá hôm nay và ngày mai không độc quyền.
Quá trình sao kèo bóng đá hôm nay và ngày mai độc quyền chủ yếu giống như đối với một bản không độc quyền, nhưng nó khác nhau trong một vài bước chính. Loại sao kèo bóng đá hôm nay và ngày mai này chỉ có thể được thực hiện trên một chính và không cho phép sao kèo bóng đá hôm nay và ngày mai đồng thờ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.
38540_38735
Chọn pg_start_backup ('nhãn');
WHEREnhãn
Có 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 đá hôm nay và ngày mai này.pg_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 thông tin về bản sao kèo bóng đá hôm nay và ngày mai của bạn, bao gồm thời gian bắt đầu và chuỗi nhãn. Chức năng cũng tạo ra mộtBản đồ không gian bảngTệp, được gọi làTABLESPACE_MAP
, Trong thư mục cụm với thông tin về các liên kết tượng trưng cho bảng không gian trongPG_TBLSPC/
Nếu có một hoặc nhiều liên kết như vậy có mặt. Cả hai tệp đều quan trọng đối với tính toàn vẹn của bản sao kèo bóng đá hôm nay và ngày mai, nếu bạn cần khôi phục từ nó.
Theo mặc định,pg_start_backup
có thể mất nhiều thời gian để 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 trải ra 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 của bạn (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.
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 càng nhanh càng tốt.
Thực hiện bản sao kèo bóng đá hôm nay và ngày mai, sử dụng bất kỳ công cụ hỗ trợ hệ thống tệp thuận tiện nào nhưtarhoặcCPIO(khôngpg_dumphoặcpg_dumpall). 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.Phần 25.3.3.3Để mọi thứ cần xem xét trong bản sao kèo bóng đá hôm nay và ngày mai này.
Như đã kèo bóng đá hôm nay và ngày mai ý ở trên, nếu máy chủ gặp sự cố trong quá trình sao kèo bóng đá hôm nay và ngày mai, có thể không thể khởi động lại cho đến khiBackup_Label
Tệp đã bị xóa thủ công khỏiPGDATA
Thư mục. kèo bóng đá hôm nay và ngày mai ý rằng điều rất quan trọng là không bao giờ loại bỏBackup_Label
Tệp khi khôi phục bản sao kèo bóng đá hôm nay và ngày mai, vì điều này sẽ dẫn đến tham nhũng. Sự nhầm lẫn về thời điểm thích hợp để xóa tệp này là nguyên nhân phổ biến của tham nhũng dữ liệu khi sử dụng phương pháp 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à người dùng có quyền chạy PG_STOP_Backup (Superuser hoặc người dùng đã được cấp thực thi trên chức năng) và ban hành lệnh:
chọn pg_stop_backup ();
Hàm này chấm dứt chế độ sao kèo bóng đá hôm nay và ngày mai và thực hiện chuyển đổi tự động sang phân đoạn WAL tiếp theo. Lý do cho công tắc là sắp xếp cho phân đoạn Wal cuối cùng được viết trong khoảng thời gian sao kèo bóng đá hôm nay và ngày mai để sẵn sàng kèo bóng đá hôm nay và ngày mai trữ.
Một khi các tệp phân đoạn WAL hoạt động trong quá trình sao kèo bóng đá hôm nay và ngày mai được kèo bóng đá hôm nay và ngày mai trữ, bạn đã hoàn tất. Tệp được xác định bởipg_stop_backup
kết quả là phân đoạn cuối cùng đượ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 đá hôm nay và ngày mai. Nếu nhưarchive_mode
được bật,pg_stop_backup
không trả lại cho đến khi phân đoạn cuối cùng được kèo bóng đá hôm nay và ngày mai trữ. kèo bóng đá hôm nay và ngày mai trữ các tệp này sẽ tự động xảy ra 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 đá hôm nay và ngày mai trữ của mình để đảm bảo không có sự chậm trễ.
Khi sử dụng chế độ sao kèo bóng đá hôm nay và ngày mai độc quyền, điều bắt buộc là phải đảm bảo rằngpg_stop_backup
Hoàn thành thành công ở cuối bản sao kèo bóng đá hôm nay và ngày mai. Ngay cả khi bản sao sao kèo bóng đá hôm nay và ngày mai không thành công, ví dụ do thiếu không gian đĩa, không gọipg_stop_backup
sẽ để máy chủ ở chế độ sao kèo bóng đá hôm nay và ngày mai vô thời hạn, khiến các bản sao kèo bóng đá hôm nay và ngày mai trong tương lai thất bại và tăng nguy cơ khởi động lại trong thời gianBackup_Label
tồn tại.
Một số công cụ sao kèo bóng đá hôm nay và ngày mai hệ thống tệp phát ra cảnh báo hoặc lỗi nếu các tệp họ đang cố gắng sao chép thay đổi trong khi bản sao được tiến hành. Khi lấy bản sao kèo bóng đá hôm nay và ngày mai cơ sở của 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à lỗi.rsyncTrả lại mã thoát riêng choTệp nguồn đã biến mấtKhănvà 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 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 được với 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 và sau đó thoát với 1 nếu một tệp được thay đổi trong quá trình sao kèo bóng đá hôm nay và ngày mai 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áo44996_45049
Để ẩn các thông báo cảnh báo liên quan.
Hãy chắc chắn rằng bản sao kèo bóng đá hôm nay và ngày mai của bạn bao gồm tất cả các tệp trong thư mục cụm cơ sở dữ liệu (ví dụ:/usr/local/pgsql/data
). Nếu bạn đang sử dụng các không gian bảng không nằm bên dưới thư mục này, hãy cẩn thận bao gồm chúng (và chắc chắn rằng các liên kết biểu tượng kèo bóng đá hôm nay và ngày mai trữ sao kèo bóng đá hôm nay và ngày mai của bạn 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 nên bỏ qua bản sao kèo bóng đá hôm nay và ngày mai các tệp trong cụmpg_wal/
Subdirectory. Điều chỉnh nhẹ này là đáng giá vì nó làm giảm nguy cơ sai lầm khi khôi kèo bóng đá hôm nay và ngày mai.pg_wal/
là một liên kết tượng trưng chỉ ra 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 vì lý do hiệu suất. Bạn cũng có thể muốn loại trừPostmaster.pid
vàPostmaster.opts
, ghi lại thông tin về việc chạyPostmaster, không phải vềPostmasterCuối cùng sẽ sử dụng bản sao kèo bóng đá hôm nay và ngày mai này. (Những tệp này có thể nhầm lẫnPG_CTL.)
thường là một ý tưởng tốt để bỏ qua bản sao kèo bóng đá hôm nay và ngày mai các tệp trong cụm của cụmPG_Replot/
Thư mục, để các khe sao chép tồn tại trên chính không trở thành một phần của bản sao kèo bóng đá hôm nay và ngày mai. Mặt khác, việc sử dụng bản sao kèo bóng đá hôm nay và ngày mai tiếp theo để tạo chế độ chờ có thể dẫn đến việc kèo bóng đá hôm nay và ngày mai giữ các tệp WAL không xác định ở chế độ chờ và có thể tăng vọt trên Master nếu phản hồi dự phòng nóng được bật, bởi vì các máy khách đang sử dụng các khe sao chép đó vẫn sẽ được kết nối và cập nhật các khe cắm trên Master, chứ không phải dự phòng.
Nội dung của các thư mụcpg_dynshmem/
, pg_notify/
, pg_serial/
, pg_snapshots/
, pg_stat_tmp/
vàpg_subtrans/
(nhưng không phải chính các thư mục) có thể được bỏ qua từ bản sao kèo bóng đá hôm nay và ngày mai vì chúng sẽ được khởi tạo khi khởi động bưu điện. Nếu nhưSTATS_TEMP_DIRECTORYđược đặt và nằm trong thư mục dữ liệu thì nội dung của thư mục đó cũng có thể được bỏ qua.
Bất kỳ tệp hoặc thư mục nào bắt đầu bằngPGSQL_TMP
có thể được bỏ qua từ bản sao kèo bóng đá hôm nay và ngày mai. Các tệp này được xóa khi bắt đầu bưu điện và các thư mục sẽ được tái tạo khi cần thiết.
PG_Internal.init
Các tệp có thể được bỏ qua từ bản sao kèo bóng đá hôm nay và ngày mai bất cứ khi nào một tệp của tên đó được tìm thấy. Các tệp này chứa dữ liệu bộ đệm quan hệ luôn được xây dựng lại khi khôi phục.
Tệp nhãn sao kèo bóng đá hôm nay và ngày mai bao gồm chuỗi nhãn bạn đã đưa chopg_start_backup
, cũng như thời gianpg_start_backup
Đã được chạy và tên của tệp WAL bắt đầu. Trong trường hợp nhầm lẫn, do đó, có thể nhìn vào bên trong một tệp sao kèo bóng đá hôm nay và ngày mai và xác định chính xác phiên sao kèo bóng đá hôm nay và ngày mai, tệp kết xuất đến từ đó.PG_TBLSPC/
và đường dẫn đầy đủ của mỗi liên kết tượng trưng. Những tệp này không chỉ dành cho thông tin của bạn;
Cũng có thể tạo bản sao kèo bóng đá hôm nay và ngày mai trong khi máy chủ bị dừng. Trong trường hợp này, rõ ràng bạn không thể sử dụngpg_start_backup
hoặcpg_stop_backup
, và do đó bạn sẽ được để lại cho các thiết bị của riêng mình để theo dõi bản sao kèo bóng đá hôm nay và ngày mai nào là và các tệp WAL liên quan đi được bao xa. Nói chung là tốt hơn để tuân theo quy trình kèo bóng đá hôm nay và ngày mai trữ liên tục ở trên.
Được rồi, điều tồi tệ nhất đã xảy ra và bạn cần phục hồi từ bản sao kèo bóng đá hôm nay và ngày mai của mình. Đâ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ộ thư mục dữ liệu cụm và bất kỳ không gian bảng nào vào một vị trí tạm thời trong trường hợp bạn cần chúng sau này. kèo bóng đá hôm nay và ngày mai ý 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 để chứa hai bản sao của cơ sở dữ liệu hiện tại của bạn.pg_wal
Subdirectory, vì nó có thể chứa các bản ghi không được kèo bóng đá hôm nay và ngày mai trữ trước khi hệ thống đi xuống.
Xóa tất cả các tệp và thư mục con hiện có trong 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.
Khôi phục các tệp cơ sở dữ liệu từ bản sao kèo bóng đá hôm nay và ngày mai hệ thống tệp của bạn. Hãy chắc chắn rằng chúng được khôi phục với quyền sở hữu phù hợp (người dùng hệ thống cơ sở dữ liệu, không phảiroot
!) Và với các quyền đúng. 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/
Đã đượ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_wal/
; Chúng đến từ bản sao kèo bóng đá hôm nay và ngày mai hệ thống tệp và do đó có thể bị lỗi thời hơn là hiện tại.pg_wal/
Sau đó, sau đó tạo lại nó với các quyền thích hợp, 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.
Nếu bạn có các tệp phân đoạn WAL chưa từng thấy mà bạn đã kèo bóng đá hôm nay và ngày mai trong bước 2, hãy sao chép chúng vàopg_wal/
. .
Đặt cài đặt cấu hình khôi kèo bóng đá hôm nay và ngày mai trongPostgreSql.conf
(xemPhần 19.5.4) và tạo một tệprecovery.signal
Trong thư mục dữ liệu cụm. Bạn cũng có thể muốn sửa đổi tạm thờipg_hba.conf
Để ngăn người dùng thông thường kết nối cho đến khi bạn chắc chắn rằng sự kèo bóng đá hôm nay và ngày mai hồi đã thành công.
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 được kèo bóng đá hôm nay và ngày mai trữ mà nó cần.recovery.signal
52718_52824
Kiểm tra nội dung của cơ sở dữ liệu để đảm bảo bạn đã kèo bóng đá hôm nay và ngày mai hồi về trạng thái mong muốn. Nếu không, hãy quay lại bước 1. Nếu tất cả đều tốt, hãy cho phép người dùng của bạn kết nối bằng cách khôi kèo bóng đá hôm nay và ngày maipg_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 kèo bóng đá hôm nay và ngày mai mô tả cách bạn muốn kèo bóng đá hôm nay và ngày mai hồi và thời gian kèo bóng đá hôm nay và ngày mai hồi sẽ chạy bao xa. Một điều mà bạn hoàn toàn phải chỉ định làRESTORE_COMMAND
, cho biếtPostgreSQLCách truy xuất các phân đoạn tệp WAL được kèo bóng đá hôm nay và ngày mai trữ. Giống nhưArchive_Command
, Đây là chuỗi lệnh shell. Nó có thể chứa%F
, được thay thế bằng 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 tệp nhật ký thành. (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. Lệnh hữu ích đơn giản nhất 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 đá hôm nay và ngày mai trữ trước đó từ thư mục/mnt/server/archivingir
. 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ể là một tập lệnh shell yêu cầu người vận hành gắn mộ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 khi bị lỗi. LệnhWillđược gọi là các tệp yêu cầu không có trong kho kèo bóng đá hôm nay và ngày mai trữ; Nó phải trả lại không khác nhau khi được hỏi.sigterm54806_54975
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 đá hôm nay và ngày mai ý 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 đá hôm nay và ngày mai trữ sẽ được tìm kiếm trongpg_wal/
; Điều này cho phép sử dụng các phân đoạn không kèo bóng đá hôm nay và ngày mai trữ gần đây.pg_wal/
.
Thông thường, kèo bóng đá hôm nay và ngày mai hồi sẽ tiến hành thông qua tất cả các phân đoạn WAL có sẵn, do đó khôi kèo bóng đá hôm nay và ngày mai cơ sở dữ liệu về thời điểm hiện tại (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 đá hôm nay và ngày mai hồi bình thường sẽ kết thúc bằng mộtTệp không tìm thấyKhănTin nhắn, văn bản chính xác của thông báo lỗi tùy thuộc kèo bóng đá hôm nay và ngày maio 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 khôi kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai hồi đơn giản;Phần 25.3.5để thảo luận.
Nếu bạn muốn kèo bóng đá hôm nay và ngày mai hồi đến 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ạn có thể chỉ định điểm dừng, được gọi làMục tiêu kèo bóng đá hôm nay và ngày mai hồiHàng, theo ngày/giờ, được đặt tên là điểm khôi kèo bóng đá hôm nay và ngày mai hoặc hoàn thành ID giao dịch cụ thể. Theo văn bản này, chỉ có ngày/giờ và các tùy chọn điểm khôi kèo bóng đá hôm nay và ngày mai được đặt tên 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ẽ sử dụng.
điểm dừng phải là sau thời gian kết thúc của bản sao kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai cơ sở để phục hồi đến thời điểm mà bản sao kèo bóng đá hôm nay và ngày mai đó đang được tiến hành.
Nếu khôi kèo bóng đá hôm nay và ngày mai tìm thấy dữ liệu WAL bị hỏng, việc kèo bóng đá hôm nay và ngày mai hồi sẽ tạm dừng tại thời điểm đó và máy chủ sẽ không bắt đầu. Trong trường hợp như vậy, quá trình kèo bóng đá hôm nay và ngày mai hồi có thể được chạy lại ngay từ đầu, chỉ định AHồiMục tiêu khôi kèo bóng đá hôm nay và ngày maiTrước khi tham nhũng để phục hồi có thể hoàn thành bình thường. Nếu việc phục hồi không thành công vì một lý do bên ngoài, chẳng hạn như sự cố hệ thống hoặc nếu kho kèo bóng đá hôm nay và ngày mai trữ Wal đã không thể truy cập được, thì việc 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.pg_control
Tệp để chỉ ra rằng dữ liệu WAL đã được xử lý không cần phải được quét lại.
Khả năng khôi phục 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ư các 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ảng quan trọng kèo bóng đá hôm nay và ngày maio lúc 5:15 chiều tối thứ ba, nhưng không nhận ra sai lầm của mình cho đến trưa thứ Tư.thisLịch sử của vũ trụ cơ sở dữ liệu, bạn không bao giờ bỏ bảng. Nhưng giả sử sau đó bạn nhận ra đây không phải là một ý tưởng tuyệt vời, và muốn trở lại kèo bóng đá hôm nay và ngày maio sáng thứ Tư trong lịch sử ban đầ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 đá hôm nay và ngày mai 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 được tạo sau khi phục hồi đó.anyTrạng thái trước, bao gồm các trạng thái trong các 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 ALịch sử dòng thời gianTệp hiển thị thời gian nào mà nó phân nhánh từ và khi nào. Các 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 khôi phục từ kho kèo bóng đá hôm nay và ngày mai trữ có chứa nhiều mốc thời gian.
Hành vi phục hồi mặc định là phục hồi về dòng thời gian mới nhất được tìm thấy trong kho kèo bóng đá hôm nay và ngày mai trữ. Nếu bạn muốn phục hồi theo dòng thời gian hiện tại khi bản sao kèo bóng đá hôm nay và ngày mai cơ sở được đưa vào dòng thời gian con cụ thể (nghĩa là bạn muốn quay lại một trạng thái nào đó được tạo ra sau một nỗ lực phục hồi), bạn cần chỉ địnhhiện tại
hoặc ID dòng thời gian đích trongrecovery_target_timeline. Bạn không thể khôi phục thành các mốc thời gian được phân nhánh sớm hơn so với bản sao kèo bóng đá hôm nay và ngày mai cơ sở.
Một số mẹo để cấu hình kèo bóng đá hôm nay và ngày mai trữ liên tục được đưa ra ở đây.
Có thể sử dụngPostgreSQLCác cơ sở sao kèo bóng đá hôm nay và ngày mai để sản xuất các bản sao kèo bóng đá hôm nay và ngày mai nóng độc lập. Đây là những bản sao kèo bóng đá hôm nay và ngày mai không thể được sử dụng để phục hồi thời gian, nhưng thường nhanh hơn nhiều để sao kèo bóng đá hôm nay và ngày mai và khôi phục so vớipg_dumpbãi rác. (Chúng 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 đá hôm nay và ngày mai cơ sở, cách dễ nhất để tạo ra một bản sao kèo bóng đá hôm nay và ngày mai nóng độc lập là sử dụngpg_basebackupCông cụ. Nếu bạn bao gồm-x
Tham số Khi gọi nó, tất cả nhật ký ghi được yêu cầu để sử dụng bản sao kèo bóng đá hôm nay và ngày mai sẽ được bao gồm trong bản sao kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai.
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 đá hôm nay và ngày mai, một quy trình cấp thấp hơn cũng có thể được sử dụng cho các bản sao kèo bóng đá hôm nay và ngày mai nóng độc lập. Để chuẩn bị cho các bản sao kèo bóng đá hôm nay và ngày mai nóng độc lập cấp thấp, hãy chắc chắnWal_Level
được đặt thànhbản sao
hoặc cao hơn,Archive_Mode
đếntrên
, và thiết lập mộtArchive_Command
chỉ thực hiện kèo bóng đá hôm nay và ngày mai trữ khi achuyển đổi tệptồ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 đá hôm nay và ngày mai trữ khi/var/lib/pgsql/backup_in_protress
tồn tại và nếu không thì âm thầm trả về trạng thái thoát không (cho phépPOSTGRESQLĐể tái chế tệp WAL không mong muốn).
Với sự chuẩn bị này, một bản sao kèo bóng đá hôm nay và ngày mai có thể được thực hiện bằng cách sử dụng một tập lệnh như sau:
Touch/var/lib/pgsql/backup_in_protress
Tệp chuyển đổi64990_65025
được tạo đầu tiên, cho phép kèo bóng đá hôm nay và ngày mai trữ các tệp WAL đã hoàn thành xảy ra. Sau khi sao kèo bóng đá hôm nay và ngày mai, tệp chuyển đổi được xóa.tarTệp. Vui lòng nhớ thêm xử lý lỗi vào tập lệnh sao kèo bóng đá hôm nay và ngày mai của bạn.
Nếu kích thước kèo bóng đá hôm nay và ngày mai trữ kèo bóng đá hôm nay và ngày mai 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 đá hôm nay và ngày mai 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 đá hôm nay và ngày mai hồi:
restore_command = 'gunzip </mnt/server/archivingir/ %f %p'
Archive_Command
ScriptNhiề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.conf
mụ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 quy trình kèo bóng đá hôm nay và ngày mai trữ. Điều 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 đá hôm nay và ngày mai trữ dữ liệu ngoài trang web
Các tệp WAL hàng loạt để chúng được chuyển cứ sau ba giờ, thay vì một lần
Giao thoa với phần mềm sao kèo bóng đá hôm nay và ngày mai 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
Khi sử dụngArchive_Command
tập lệnh, mong muốn được bậtLogging_Collector. Bất kỳ tin nhắn nào được ghi kèo bóng đá hôm nay và ngày maiostderrTừ 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 bị lỗi.
Tại bài viết này, có một số hạn chế của kỹ thuật kèo bóng đá hôm nay và ngày mai trữ liên tục. Chúng có thể sẽ được sửa trong các bản phát hành trong tương lai:
Nếu ATạo cơ sở dữ liệuLệnh được thực thi trong khi sao kèo bóng đá hôm nay và ngày mai cơ sở đang được thực hiện, 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 đá hôm nay và ngày mai cơ sở vẫn đang được tiến hành, có thể 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. Điều này tất nhiên là không mong muốn.
Tạo không gian bảngCác lệnh được ghi bằng đường dẫn tuyệt đối theo nghĩa đen, và do đó sẽ được phát lại dưới dạng các sáng tạo không gian bảng với cùng một đường dẫn tuyệt đối. Điều này có thể không mong muốn nếu nhật ký được phát lại trên một máy khác.
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ó bao gồm nhiều ảnh chụp nhanh trang đĩa. Các ảnh chụp nhanh trang này được thiết kế để hỗ trợ kèo bóng đá hôm nay và ngày mai hồi sự cố, vì chúng ta có thể cần sửa các trang đĩa được viết một phầ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 ảnh chụp nhanh trang 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 đá hôm nay và ngày mai trữ bằng cách xóa các bản sao trang không cần thiết ngay cả khifull_page_writes
là trên. Trong thời gian chờ đợi, các quản trị viên có thể muốn giảm số lượng ảnh chụp nhanh trong WAL bằng cách tăng các tham số khoảng thời gian kiểm tra nhiều như khả thi.