[파이썬] PostgreSQL 데이터베이스 백업과 복구

PostgreSQL은 강력하고 안정적인 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 이 데이터베이스에 대한 백업과 복구는 매우 중요한 요소이며 시스템 장애 또는 데이터 손실 시 핵심적인 역할을 수행합니다.

이 블로그 포스트에서는 Python을 사용하여 PostgreSQL 데이터베이스의 백업과 복구를 실행하는 방법에 대해 알아보겠습니다.

1. psycopg2 설치

psycopg2는 PostgreSQL 데이터베이스에 Python 프로그램을 연결하기 위한 가장 인기있는 라이브러리입니다. 다음 명령을 사용하여 psycopg2를 설치합니다.

pip install psycopg2

2. 데이터베이스 백업

Python을 사용하여 PostgreSQL 데이터베이스를 백업하는 방법은 다음과 같습니다.

import psycopg2
import subprocess

# PostgreSQL 연결 정보
conn = psycopg2.connect(
    host="localhost",
    port=5432,
    database="mydatabase",
    user="myuser",
    password="mypassword"
)

# 백업 파일 경로
backup_file_path = "/path/to/backup.sql"

# 백업 명령 실행
subprocess.Popen(
    f"pg_dump -U {conn.variables['user']} -h {conn.variables['host']} -p {conn.variables['port']} -f {backup_file_path} {conn.variables['dbname']}",
    shell=True
)

위 코드는 psycopg2를 사용하여 PostgreSQL 데이터베이스에 연결한 다음, pg_dump 명령을 사용하여 백업 파일을 생성합니다. 백업 파일 경로는 backup_file_path 변수로 지정하십시오.

3. 데이터베이스 복구

Python을 사용하여 PostgreSQL 데이터베이스를 복구하는 방법은 다음과 같습니다.

import psycopg2

# PostgreSQL 연결 정보
conn = psycopg2.connect(
    host="localhost",
    port=5432,
    database="mydatabase",
    user="myuser",
    password="mypassword"
)

# 복구할 백업 파일 경로
backup_file_path = "/path/to/backup.sql"

# 데이터베이스 복구 쿼리 실행
with open(backup_file_path, "r") as file:
    backup_sql = file.read()

with conn.cursor() as cursor:
    cursor.execute(backup_sql)
    conn.commit()

위 코드는 psycopg2를 사용하여 PostgreSQL 데이터베이스에 연결한 다음, 백업 파일을 읽어들인 후 execute() 메서드를 사용하여 복구 쿼리를 실행합니다.

결론

Python을 사용하여 PostgreSQL 데이터베이스의 백업과 복구를 수행하는 방법에 대해 알아보았습니다. 이를 통해 데이터베이스의 안전한 백업과 데이터 복구가 가능해집니다. 데이터베이스 관리를 위해 이러한 기술을 사용할 수 있으며, 데이터 손실로부터 시스템을 보호하는 데 도움이 됩니다.