Khôi Phục Cơ Sở Dữ Liệu Từ Bản Sao Lưu Trong PostgreSQL

Khôi phục cơ sở dữ liệu từ bản sao lưu là một quy trình quan trọng trong quản trị cơ sở dữ liệu, đảm bảo rằng bạn có thể phục hồi dữ liệu khi gặp sự cố hoặc lỗi. Bài viết này sẽ hướng dẫn bạn từng bước để khôi phục cơ sở dữ liệu từ bản sao lưu trong PostgreSQL.

Các Phương Pháp Khôi Phục Dữ Liệu

PostgreSQL cung cấp hai phương pháp chính để khôi phục cơ sở dữ liệu từ bản sao lưu:

  1. Khôi phục từ bản sao lưu SQL (bản sao lưu logic): Là phương pháp khôi phục sử dụng tệp văn bản chứa các câu lệnh SQL để tạo lại cơ sở dữ liệu.
  2. Khôi phục từ bản sao lưu nhị phân (bản sao lưu vật lý): Là phương pháp khôi phục từ tệp sao lưu nhị phân, thường được tạo ra bởi công cụ như pg_basebackup hoặc thông qua các phương pháp sao lưu nhị phân khác.

Khôi Phục Từ Bản Sao Lưu SQL

Để khôi phục một cơ sở dữ liệu từ bản sao lưu SQL, bạn có thể thực hiện các bước sau:

Bước 1: Tạo Cơ Sở Dữ Liệu Mới

Trước tiên, bạn cần tạo một cơ sở dữ liệu mới để khôi phục vào. Bạn có thể thực hiện điều này bằng cách sử dụng lệnh createdb trong terminal hoặc sử dụng psql.

createdb ten_cua_co_so_du_lieu_moi

Hoặc từ psql:

CREATE DATABASE ten_cua_co_so_du_lieu_moi;

Bước 2: Khôi Phục Dữ Liệu Từ Tệp Sao Lưu

Sử dụng lệnh psql để khôi phục dữ liệu từ tệp sao lưu. Giả sử tệp sao lưu của bạn có tên là backup.sql, bạn có thể chạy lệnh sau:

psql -d ten_cua_co_so_du_lieu_moi -f backup.sql

Trong đó:

  • -d chỉ định cơ sở dữ liệu đích.
  • -f chỉ định tệp sao lưu.

Khôi Phục Từ Bản Sao Lưu Nhị Phân

Nếu bạn đã tạo bản sao lưu nhị phân, quy trình khôi phục sẽ khác một chút.

Bước 1: Dừng Dịch Vụ PostgreSQL

Trước khi khôi phục, bạn cần dừng dịch vụ PostgreSQL để tránh xung đột.

sudo systemctl stop postgresql

Bước 2: Khôi Phục Bản Sao Lưu

Sao chép các tệp từ bản sao lưu nhị phân vào thư mục dữ liệu của PostgreSQL. Giả sử bạn đã tạo bản sao lưu nhị phân trong thư mục /path/to/backup, bạn sẽ sao chép tất cả các tệp vào thư mục dữ liệu của PostgreSQL.

sudo rsync -av /path/to/backup/ /var/lib/postgresql/12/main/

Bước 3: Khởi Động Lại Dịch Vụ PostgreSQL

Sau khi đã sao chép tệp, bạn có thể khởi động lại dịch vụ PostgreSQL.

sudo systemctl start postgresql

Kiểm Tra Dữ Liệu Sau Khi Khôi Phục

Sau khi hoàn tất quá trình khôi phục, bạn nên kiểm tra xem dữ liệu đã được khôi phục thành công hay chưa. Bạn có thể kết nối vào cơ sở dữ liệu và thực hiện một số truy vấn đơn giản để xác minh tính toàn vẹn của dữ liệu.

psql -d ten_cua_co_so_du_lieu_moi

Sau đó thực hiện một số truy vấn như:

SELECT * FROM ten_bang;

Khôi phục cơ sở dữ liệu từ bản sao lưu là một quy trình cần thiết trong việc quản lý và bảo trì cơ sở dữ liệu. Bằng cách làm theo các bước hướng dẫn ở trên, bạn có thể đảm bảo rằng bạn có thể khôi phục dữ liệu của mình một cách nhanh chóng và hiệu quả.