Nâng cấp PostgreSQL 9.2 - 9.6 với thời gian chết bằng không


9

Tôi phải nâng cấp từ PostgreSQL 9.2 lên 9.6. Sau đây là những thách thức mà tôi đang phải đối mặt:

  1. Vì chúng tôi đã thiết lập sao chép phát trực tuyến và PostgreQuery không hỗ trợ nâng cấp phiên bản thấp hơn lên trên khi ở chế độ sao chép phát trực tuyến, khi tôi nâng cấp bản gốc, tôi phải xây dựng lại các nô lệ và phải mất 3 giờ. Tôi không có thời gian rảnh rỗi. Tại bất kỳ thời điểm nào, chúng tôi cần một nô lệ và một chủ có sẵn. Có cách nào khác để nâng cấp mà không phải xây dựng lại nô lệ, sử dụng nhân rộng trực tuyến không?

  2. Để xây dựng sao chép logic, chúng tôi đã nghĩ đến việc sử dụng slony nhưng slony có một số hạn chế ở chỗ nó không tự động sao chép:

    • Thay đổi đối tượng lớn (BLOBS)
    • Thay đổi được thực hiện bởi các lệnh DDL
    • Thay đổi đối với người dùng và vai trò
      ... và ứng dụng của chúng tôi có các lệnh tạo liên tục. Vì vậy, chúng tôi không thể sử dụng slony.

Vui lòng đề xuất một cái gì đó để tránh xây dựng lại nô lệ và thực hiện nâng cấp với thời gian chết tối thiểu và một chủ nhân và một nô lệ đã sẵn sàng.


3
Các vấn đề tương tự ngăn bạn sử dụng Slony sẽ khiến bạn ngừng sử dụng các công cụ khác như Bucardo, Londiste, pglogical, v.v. Bạn sẽ cần điều chỉnh ứng dụng, vì vậy nó không tạo ra liên tục. Và vâng, LOB sẽ là một vấn đề.
Craig Ringer

Câu trả lời:


1

Nâng cấp cơ sở dữ liệu sẽ cần thời gian chết trên máy chủ của bạn. Để giảm thiểu thời gian chết, tôi khuyên bạn nên cài đặt phiên bản mới hơn trong một máy chủ mới, tạo một thiết lập sao chép trên đó và kết xuất tất cả dữ liệu từ phiên bản cũ ở đây và thay đổi máy chủ trỏ để ứng dụng trỏ đến máy chủ mới để kết nối với cơ sở dữ liệu.


2
Chà, gần đây chúng tôi đã nâng cấp cơ sở dữ liệu 9 TB từ 9.3 lên 9.6, bằng cách sử dụng pg_upgrade. Phải mất vài phút (kết hợp giữa chủ và nô lệ), trong khi đi một mình thì cần hơn 3 giờ.
dezso

Nhưng đi đổ rác không cần thời gian chết.
Lohit Gupta

Hoàn toàn, điều tôi muốn nói (và quên thêm) là việc khôi phục bản sao lưu mất ít nhiều thời gian giống như lấy nó, nghĩa là một vài thời gian chết của chúng ta trong trường hợp của chúng ta.
dezso

Cảm ơn về lời đề nghị, vì vậy những gì tôi đang làm là nâng cấp chủ và xây dựng lại nô lệ, đây có phải là quy trình đúng không
Mitchhat

1
Bước 2 sẽ không hoạt động. Định dạng WAL không tương thích giữa các phiên bản chính, do đó cần phải có pg_upgrade.
dezso
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.