Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Được xuất bản lần đầu vào ngày 6 tháng 2 năm 2020, tại ObjectRocket.com/blog

Sao lưu thường xuyên và khả năng khôi phục chúng là một phần quan trọng của quản trị hệ thống cơ sở dữ liệu. Tại ObjectRocket, một công ty Công nghệ Rackspace, chúng tôi cung cấp cho bạn các bản sao lưu hàng ngày với thời gian lưu giữ hai tuần theo mặc định trên tất cả các sản phẩm cơ sở dữ liệu của chúng tôi.

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Việc cung cấp PostgreSQL® của chúng tôi thêm phần thưởng bao gồm Viết nhật ký phía trước (WAL) lưu trữ và khả năng khôi phục vào bất kỳ thời điểm nào trong khoảng thời gian lưu giữ của chúng tôi. Chúng tôi thường gọi đây là Khôi phục tại điểm trong thời gian (PITR) và bài đăng này sẽ hướng dẫn bạn cách hoạt động của dịch vụ của chúng tôi.

Sao lưu không phiền phức

Một thành phần chính là quy trình sao lưu hoàn toàn tự động. Chi phí của tất cả các trường hợp bao gồm sao lưu hàng ngày và chúng tôi luôn giữ lại các bản sao lưu có giá trị trong hai tuần. Bạn có thể xem thời gian sao lưu của mình và trạng thái của chúng trong bảng điều khiển của chúng tôi hoặc bằng cách sử dụng giao diện người dùng (UI).

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Nhiều tùy chọn khôi phục

Chúng tôi cung cấp một số tùy chọn để khôi phục bản sao lưu:

  • Khôi phục về bản cập nhật WAL được lưu trữ gần đây nhất.
  • Khôi phục về một bản sao lưu cơ sở cụ thể.
  • Khôi phục đến một thời điểm cụ thể.

Trong mọi trường hợp, chúng tôi khôi phục dữ liệu của bạn về phiên bản PostgreSQL mới. Tại thời điểm này, bộ nhớ phiên bản phải lớn hơn bằng dung lượng bộ nhớ trên phiên bản gốc. Chúng tôi gọi đây là một nhánh cơ sở dữ liệu. Tốt nhất, bạn nên khôi phục dữ liệu của mình thành phiên bản cơ sở dữ liệu mới và riêng biệt, để cả phiên bản cũ và mới vẫn hoạt động cho đến khi bạn xóa một.

Lưu ý: Phục hồi hiện chỉ được hiển thị thông qua API của chúng tôi. Nếu bạn cảm thấy thoải mái với API, thật tuyệt. Nếu không, nhóm hỗ trợ của chúng tôi có thể giúp thanh niên trong quá trình này. Chúng tôi dự định sẽ sớm thêm các khôi phục vào giao diện người dùng.

Khôi phục vào thời điểm mới nhất

Hãy phân tích một cơ sở dữ liệu đơn giản chỉ lưu trữ một dấu thời gian và một chuỗi mỗi phút, cho phép chúng ta xem vị trí dự phòng. Xem nhanh cơ sở dữ liệu của chúng tôi, chúng tôi thấy dấu thời gian cuối cùng là lúc 16:00:58 (UTC).

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Nếu chúng tôi muốn khôi phục về dữ liệu mới nhất trong cơ sở dữ liệu này, chúng tôi có thể làm điều đó bằng cách cung cấp phiên bản id từ nguồn của chúng tôi đến một cuộc gọi tạo phiên bản mới.

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Sau khi chúng tôi đã khôi phục phiên bản, chúng tôi có thể kết nối và kiểm tra dấu thời gian cuối cùng.

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Như bạn có thể thấy, tất cả dữ liệu đều ở đó và chúng tôi có một phiên bản Postgres mới, được cập nhật đầy đủ cho phiên bản Postgres nguồn. nguy cơ ảnh hưởng đến dữ liệu gốc.

Khôi phục về một bản sao lưu cụ thể

Tùy chọn thứ hai là khôi phục từ bản sao lưu cơ sở. Khi liệt kê các bản sao lưu, mỗi bản sao lưu có id riêng của nó mà chúng tôi có thể sử dụng để khôi phục:

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Trong ví dụ sao lưu trước đó, bạn thấy rằng nó được lấy lúc 15:36:15 (UTC). Để khôi phục về bản sao lưu chính xác này, chỉ cần thêm id dự phòng vào lệnh gọi tạo.

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Sau khi phiên bản hoàn tất tải, chúng ta có thể thấy rằng bản sao lưu có dữ liệu và dấu thời gian từ trước thời điểm sao lưu là 15:36:15.

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Khôi phục đến một thời điểm cụ thể

Phương pháp cuối cùng chỉ là chỉ định thời gian bạn muốn khôi phục. Hoàn thành việc này bằng cách cung cấp ID nguồn động lực và thời gian khôi phục:

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Tại đây, chúng tôi muốn khôi phục về 15:53:00. Sau khi quá trình khôi phục của chúng tôi hoàn tất, bạn có thể thấy rằng dữ liệu chỉ tồn tại đến thời điểm đó.

Bản sao lưu Postgres và cách khôi phục chúng trên ObjectRocket

Nếu bạn nhìn lại những hình ảnh trước đó, bạn có thể thấy rằng chúng tôi đã có một dấu thời gian khác lúc 15:53:00, nhưng dấu thời gian đó chỉ xuất hiện ở mức hơn 0,8 giây sau 15:53:00, vì vậy trường hợp này sẽ không bao gồm nó. Bạn có thể nhận được rất chi tiết với Khôi phục điểm trong thời gian để nhắm mục tiêu thời gian và trạng thái trong cơ sở dữ liệu.

Tiếp theo là gì?

Tất cả chức năng sao lưu và khôi phục đó đều có sẵn để bạn sử dụng ngay hôm nay. Tuy nhiên, chúng tôi liên tục bổ sung thêm nhiều tính năng và khả năng. Hãy cho chúng tôi biết nếu bạn có bất kỳ yêu cầu nào.

Tìm hiểu thêm về Dịch vụ dữ liệu Rackspace.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể nhấp vào Trò chuyện bán hàng để trò chuyện ngay bây giờ và bắt đầu cuộc trò chuyện.

Nhấp vào đây để xem Điều khoản dịch vụ của Rackspace Cloud.