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 tỷ lệ kèo bóng đá tối nay cơ sở dữ liệu: chúng ta có thể kết hợp sao tỷ lệ kèo bóng đá tối nay cấp hệ thống tệp với sao tỷ lệ kèo bóng đá tối nay các tệp WAL.
Chúng tôi không cần sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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ố).tarhoặc một công cụ tỷ lệ kèo bóng đá tối 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ô thời hạn để phát lại, việc sao tỷ lệ kèo bóng đá tối nay liên tục có thể đạt được chỉ bằng cách tiếp tục tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay đầ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 đó.tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ tỷ lệ kèo bóng đá tối nay trữ: bản sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay lượng truy cập WAL phải được tỷ lệ kèo bóng đá tối nay trữ.
Để phục hồi thành công bằng cách sử dụng tỷ lệ kèo bóng đá tối nay trữ liên tục (còn được gọi làSao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ liên tục kéo dài ít nhất là thời gian bắt đầu của bản sao tỷ lệ kèo bóng đá tối 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 để tỷ lệ kèo bóng đá tối nay trữ các tệp waltrướcBạn lấy bản sao tỷ lệ kèo bóng đá tối nay 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ế tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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à tỷ lệ kèo bóng đá tối nay 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ủatỷ lệ kèo bóng đá tối nay dữ liệu ở đâu đó: Chúng tôi có thể sao chép các tệp phân đoạn tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối nayo bạn.
Để cho phép tỷ lệ kèo bóng đá tối nay 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 để tỷ lệ kèo bóng đá tối nay 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ể tỷ lệ kèo bóng đá tối 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ả 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 tỷ lệ kèo bóng đá tối nay trữ.
Lệnh tỷ lệ kèo bóng đá tối 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ư. Vì một loạt các tệp WAL được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ được bảo vệ khỏi mắt tò mò;
Điều quan trọng là lệnh tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay trữ; nó sẽ thử lại định kỳ cho đến khi nó thành công.
Lệnh tỷ lệ kèo bóng đá tối nay trữ thường nên được thiết kế để từ chối ghi đè lên bất kỳ tệp tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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ủ khác nhau đến cùng một thư mục tỷ lệ kèo bóng đá tối nay trữ).
Nên kiểm tra lệnh tỷ lệ kèo bóng đá tối 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 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 tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối nay trữ của bạn, hãy xem xét điều gì sẽ xảy ra nếu lệnh tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối nayo,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 tỷ lệ kèo bóng đá tối nay.)
Tốc độ của lệnh tỷ lệ kèo bóng đá tối 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 dữ liệu WAL. Hoạt động bình thường tiếp tục ngay cả khi quá trình tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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 quy trình tỷ lệ kèo bóng đá tối nay trữ để đảm bảo rằng nó đang hoạt động như bạn dự định.
Khi viết lệnh tỷ lệ kèo bóng đá tối nay trữ của bạn, bạn nên cho rằng tên tệp được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay giữ tên tệp (%F
).
tỷ lệ kèo bóng đá tối nay ý rằng mặc dù tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối 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.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 tỷ lệ kèo bóng đá tối nay bởi các quy trình sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ tỷ lệ kèo bóng đá tối nay 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. tỷ lệ kèo bóng đá tối nay ý rằng các tệp được tỷ lệ kèo bóng đá tối nay trữ được tỷ lệ kèo bóng đá tối nay 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ờ tỷ lệ kèo bóng đá tối nay trữ tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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.79.
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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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_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 tỷ lệ kèo bóng đá tối nay cơ sở là sử dụngpg_basebackupCông cụ. Nó có thể tạo một bản sao tỷ lệ kèo bóng đá tối nay cơ sở dưới dạng các tệp thông thường hoặc như một kho tỷ lệ kèo bóng đá tối nay trữ tar.pg_basebackupCó thể cung cấp là bắt buộc, bạn cũng có thể tạo bản sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay chạy từfull_page_writes
được ép buộc hiệu quả trong chế độ sao tỷ lệ kèo bóng đá tối nay.
Để sử dụng bản sao tỷ lệ kèo bóng đá tối nay, 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 tỷ lệ kèo bóng đá tối nay hệ thống tệp. Để hỗ trợ bạn thực hiện việc này, quá trình sao tỷ lệ kèo bóng đá tối nay cơ sở sẽ tạo ra mộtTệp lịch sử sao tỷ lệ kèo bóng đá tối nayĐiều đó ngay lập tức được tỷ lệ kèo bóng đá tối nay trữ vào khu vực tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay hệ thống tệp.0000000100001234000055CD
Tệp lịch sử sao tỷ lệ kèo bóng đá tối nay sẽ được đặt tên là một cái gì đó giống như0000000100001234000055CD.007C9330.Backup
. .
Tệp lịch sử sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay hoặc bản sao tỷ lệ kèo bóng đá tối nay sẽ được tự động hủy bỏ.
Theo mặc định,pg_start_backup
có thể mất nhiều thời tỷ lệ kèo bóng đá tối nay để 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 tỷ lệ kèo bóng đá tối nay đáng kể, theo mặc định một nửa khoảng thời tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. 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 tỷ lệ kèo bóng đá tối nay để sẵn sàng tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nayo một tệp có tênBackup_Label
Trong thư mục gốc của bản sao tỷ lệ kèo bóng đá tối nay. 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. 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 tỷ lệ kèo bóng đá tối nay trữ. Trên một chế độ chờ,Archive_Mode
phải làluôn luôn
Đểpg_stop_backup
Để chờ. tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay ý rằng nếupg_stop_backup
Kết thúc vì điều này sao tỷ lệ kèo bóng đá tối nay của bạn có thể không hợp lệ.
Nếu quá trình sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay dừng được ghi vào wal. Theo mặc định,pg_stop_backup
Sẽ đợi cho đến khi tất cả WAL đã được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ không được theo dõi chính xác thì bản sao tỷ lệ kèo bóng đá tối nay 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.
Quá trình sao tỷ lệ kèo bóng đá tối nay độ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 tỷ lệ kèo bóng đá tối nay này chỉ có thể được thực hiện trên một chính và không cho phép sao tỷ lệ kèo bóng đá tối nay đồng thời.PostgreSQL9.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 tỷ lệ kèo bóng đá tối nay không độc quyền nếu có thể.
Đảm bảo rằng việc tỷ lệ kèo bóng đá tối nay trữ Wal được bật và hoạt động.
38044_38239
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 tỷ lệ kèo bóng đá tối nay này.pg_start_backup
Tạo ANhãn sao tỷ lệ kèo bóng đá tối nayTệp, được gọi làBackup_Label
, Trong thư mục cụm với thông tin về bản sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay bảngTệp, được gọi làTablePace_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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay, 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 tỷ lệ kèo bóng đá tối nay để 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 tỷ lệ kèo bóng đá tối nay đáng kể, theo mặc định một nửa khoảng thời tỷ lệ kèo bóng đá tối nay 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.
39903_39978tarhoặ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 tỷ lệ kèo bóng đá tối nay này.
tỷ lệ kèo bóng đá tối nay ý rằng nếu máy chủ gặp sự cố trong quá trình sao tỷ lệ kèo bóng đá tối nay, 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.
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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay để sẵn sàng tỷ lệ kèo bóng đá tối nay trữ.
Một khi các tệp phân đoạn WAL hoạt động trong quá trình sao tỷ lệ kèo bóng đá tối nay được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. 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 tỷ lệ kèo bóng đá tối nay trữ. tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 hãy tỷ lệ kèo bóng đá tối nay ý rằng nếupg_stop_backup
Kết thúc vì bản sao tỷ lệ kèo bóng đá tối nay của bạn có thể không hợp lệ.
Một số công cụ sao tỷ lệ kèo bóng đá tối nay hệ thống tệp phát ra các 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 tỷ lệ kèo bóng đá tối nay 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ấtvà 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 tỷ lệ kèo bóng đá tối 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áo43772_43825
Để ẩ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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay các tệp trong cụmpg_wal/
SIPDIRECTORY. Điều chỉnh nhẹ này là đáng giá vì nó làm giảm nguy cơ sai lầm khi khôi tỷ lệ kèo bóng đá tối nay.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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay các tệp trong cụm của cụmPG_Replot/
Thư mục, do đó 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 tỷ lệ kèo bóng đá tối nay. Mặt khác, việc sử dụng bản sao tỷ lệ kèo bóng đá tối nay tiếp theo để tạo chế độ chờ có thể dẫn đến việc tỷ lệ kèo bóng đá tối nay 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 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay bao gồm chuỗi nhãn bạn đã đưa chopg_start_backup
, cũng như thời tỷ lệ kèo bóng đá tối naypg_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 tỷ lệ kèo bóng đá tối nay và xác định chính xác phiên sao tỷ lệ kèo bóng đá tối nay, 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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. tỷ lệ kèo bóng đá tối 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 để 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay chính xác.
Xóa bất kỳ tệp nào có trongpg_wal/
; Chúng đến từ bản sao tỷ lệ kèo bóng đá tối nay hệ thống tệp và do đó có thể bị lỗi thời hơn là hiện tại.pg_wal/
50043_50201
Nếu bạn có các tệp WAL không tồn tại mà bạn đã tỷ lệ kèo bóng đá tối nay trong bước 2, hãy sao chép chúng vàopg_wal/
. .
Tạo tệp lệnh Recoveryrecovery.conf
Trong thư mục dữ liệu cụm (xemChương 27). 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ự tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ mà nó cần.recovery.conf
đếnrecovery.done
51437_51543
Kiểm tra nội dung của cơ sở dữ liệu để đảm bảo bạn đã tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối naypg_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 một tệp cấu hình khôi tỷ lệ kèo bóng đá tối nay mô tả cách bạn muốn tỷ lệ kèo bóng đá tối nay hồi và thời gian tỷ lệ kèo bóng đá tối nay hồi sẽ chạy bao xa. Bạn có thể sử dụngrecovery.conf.sample
(thường được đặt trong cài đặtchia sẻ/
Thư mục) làm nguyên mẫu. Một điều mà bạn hoàn toàn phải chỉ định trongrecovery.conf
làrestore_command
, cho biếtPostgreSQLCách truy xuất các phân đoạn tệp WAL được tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ; Nó phải trả lại không khác nhau khi được hỏi.sigterm, được sử dụng như một phần của việc tắt máy chủ cơ sở dữ liệu) hoặc lỗi của shell (chẳng hạn như không tìm thấy lệnh), sau đó khôi tỷ lệ kèo bóng đá tối nay sẽ phá thai và máy chủ sẽ không khởi động.
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 tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ gần đây.pg_wal/
.
Thông thường, tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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ự tỷ lệ kèo bóng đá tối nay hồi bình thường sẽ kết thúc bằng mộtTệp không tìm thấyTin nhắn, văn bản chính xác của thông báo lỗi tùy thuộc tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay hồi đơn giản;Phần 25.3.5để thảo luận.
Nếu bạn muốn phục hồi tỷ lệ kèo bóng đá tối nayo 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 yêu cầuđiểm dừnginrecovery.conf
. Bạn có thể chỉ định điểm dừng, được gọi làMục tiêu tỷ lệ kèo bóng đá tối nay hồiHồi, theo ngày/giờ, được đặt tên là điểm khôi tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay đượ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 sau thời gian kết thúc của bản sao tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay cơ sở để phục hồi đến thời điểm mà bản sao tỷ lệ kèo bóng đá tối nay đó đang được tiến hành.
Nếu khôi tỷ lệ kèo bóng đá tối nay tìm thấy dữ liệu WAL bị hỏng, khôi tỷ lệ kèo bóng đá tối nay sẽ dừng lại 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 tỷ lệ kèo bóng đá tối nay hồi có thể được chạy lại ngay từ đầu, chỉ định AHồiMục tiêu tỷ lệ kèo bóng đá tối nay hồiTrướ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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối nayo 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 tỷ lệ kèo bóng đá tối 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 đượ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 tỷ lệ kèo bóng đá tối nay mà bạn đã từ bỏ trước đó.
Mỗi khi một dòng thời tỷ lệ kèo bóng đá tối nay mới được tạo,POSTGRESQLTạo ALịch sử dòng thời tỷ lệ kèo bóng đá tối nayTệp hiển thị thời gian nào 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 tỷ lệ kèo bóng đá tối nay trữ có chứa nhiều mốc thời gian.
Hành vi phục hồi mặc định là khôi phục theo cùng một dòng thời gian hiện tại khi sao tỷ lệ kèo bóng đá tối nay cơ sở được thực hiện. Nếu bạn muốn khôi phục vào một số dòng thời gian của con (nghĩa là, bạn muốn quay lại một trạng thái nào đó được tạo sau khi thử phục hồi), bạn cần chỉ định ID dòng đích trongrecovery.conf
. 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 tỷ lệ kèo bóng đá tối nay cơ sở.
Một số mẹo để cấu hình tỷ lệ kèo bóng đá tối nay trữ liên tục được đưa ra ở đây.
Có thể sử dụngPostgreSQLCác cơ sở sao tỷ lệ kèo bóng đá tối nay để sản xuất các bản sao tỷ lệ kèo bóng đá tối nay nóng độc lập. Đây là những bản sao tỷ lệ kèo bóng đá tối nay không thể được sử dụng để phục hồi thời gian, nhưng thường nhanh hơn nhiều để sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay cơ sở, cách dễ nhất để tạo ra một bản sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay sẽ được bao gồm trong bản sao tỷ lệ kèo bóng đá tối nay tự động và không cần hành động đặc biệt nào để khôi phục bản sao tỷ lệ kèo bóng đá tối nay.
Nếu cần có sự linh hoạt hơn trong việc sao chép các tệp sao tỷ lệ kèo bóng đá tối nay, 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 tỷ lệ kèo bóng đá tối nay nóng độc lập. Để chuẩn bị cho các bản sao tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ khi ASwitch Filetồn tại. Ví dụ:
archive_command = 'test! -f/var/lib/pgsql/backup_in_protress ||
Lệnh này sẽ thực hiện tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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
Tệp chuyển đổi/var/lib/pgsql/backup_in_protress
được tạo đầu tiên, cho phép tỷ lệ kèo bóng đá tối nay trữ các tệp WAL đã hoàn thành xảy ra. Sau khi sao tỷ lệ kèo bóng đá tối nay, 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 tỷ lệ kèo bóng đá tối nay của bạn.
Nếu kích thước tỷ lệ kèo bóng đá tối nay trữ tỷ lệ kèo bóng đá tối nay trữ là một mối quan tâm, bạn có thể sử dụnggzipĐể nén các tệp tỷ lệ kèo bóng đá tối nay trữ:
archive_command = 'gzip < %p/var/lib/pgsql/archive/ %f'
Sau đó, bạn sẽ cần sử dụngGunzipTrong quá trình tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trữ dữ liệu ngoài trang web
66105_66199
Giao thoa với phần mềm sao tỷ lệ kèo bóng đá tối 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
Khi sử dụngArchive_Command
tập lệnh, mong muốn kích hoạtLogging_Collector. Bất kỳ tin nhắn nào được ghi tỷ lệ kèo bóng đá tối nayostderrTừ 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 văn bản này, có một số hạn chế của kỹ thuật tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối 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. Các ảnh chụp nhanh trang này được thiết kế để hỗ trợ tỷ lệ kèo bóng đá tối nay 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 30Trướ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 tỷ lệ kèo bóng đá tối nay 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 khi đó, 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 tỷ lệ kèo bóng đá tối nay kiểm tra càng nhiều càng khả thi.